Sunday, August 26, 2012


Building Design Suite.  I've had mine for about a month now.  Amazing value ... or not ?  It's nice to play with all these programmes ... legally.  But there is a feeling that I will be using Revit 95% of the time and it's a lot to pay for the occasional dabble with everything else.  In my case "One Box" is immediately useful, because we have acquired an MEP division and I have to help them make the transition to a BIM world.  So I am learning Revit MEP, at least to the point where I can help people out when they get stuck. 

I have never had a legal copy of MAX before, and I don't know my way around very well.  It would be nice to think I could learn to model soft furnishings etc that are tricky to do in Revit, and really don't need to be in the Revit model anyway, if only I can master the process of linking Revit into Max, placing entourage etc and figuring out how the vastly more complex rendering interface works.  Add this to the long queue of things I have to get around to doing.

Showcase has been a bit of a disappointment so far.  So slow.  It really doesn't like the size and complexity of a medium-size Revit project.  It was made for industrial design products after all.  So I haven't quite given up yet, but it's not the quick and easy solution to a model viewer that we might have hoped for.

There are some interesting non-photoreal effects and storyboard tools for putting together presentations.  Haven't really mastered these yet.  Sadly those RPC trees/people/cars you added for presentation purposes are not going to translate via FBX.  Maybe there is another way, but I haven't found it yet. 

Some good news that I discovered by accident (haven't seen this documented anywhere.)  A 3d DWF exported from Revit 2013 now has edges.  Bring it into Design Review or Navis Freedom, and "shaded with edges" actually works.  This is a very small thing that makes a huge difference.  Suddenly we do have free model viewers that allow you to move around in a perspective view that looks OK.  It still doesn't look quite as good as it did in Revit, but those thin black lines do make a huge difference to the clarity of the image and to the perception of depth as you move around. 

Of course this immediately brings other niggles into the limelight.  Why does Design Review default to orbit.  Turntable would be much better.  I want to send this to a client or a partner, a first-time user.  First thing that happens is the building tips over sideways.  They get annoyed.  Also perspective view defaults to an extreme wide-angle lens.  Not clever.  Navis Freedom is better on both counts, but Design Review has a better markup system. 

So I'm not quite sure which way to jump.  Maybe I have to wait for the Newforma/VEO combination to make everything else irrelevant.  Not exactly free though.  My opinion for what its worth ?  Design Review is Autodesk's free view & markup tool.  It is just a few small tweaks away from being really useful to the Revit community.  DR 2014 could be so cool ... with almost no effort at all.

I'm not going to review AutoCAD.  It was my best friend for over a decade, but these days ... more like a "necessary evil".  I need it when someone sends me a CAD file with an origin so far off the page that Revit throws a tantrum.  With luck I can solve this in a couple of minutes.  Sometimes there are so many nested blocks in there with origins all over the place that it takes half an hour of cursing and swearing to make the file useable.  Then there are those clever ones with the same xref clipped in different ways to place 8 different house types, multiple times into a masterplan.  Explode those and the screen just fills up with lines. 

We also need AutoCAD to check exports, because many consultants & most contractors still live in a CAD world.  Each release of Revit improves the CAD export process in various ways, but a diehard AutoCAD user is still going to be disappointed.  You would like to select the block for a tree and redefine it.  No problem, except that every block instance is unique.  The other trees don't update.  I don't see a solution to this.  Revit families have instance parameters.  How is the computer to know whether these instance parameters have an effect in this particular view ?  How is it to know whether the tree is partially obscured by a balcony projection ?  Ideally we would like to XCLIP the block in this situation, but I can't see the developers finding time to figure that one out.  Much more important things on the "to do list".

Basically a CAD export from Revit is fine to use as a background if you want to overlay furniture, or ducts, or just check the positions of your structural columns.  But don't expect to turn it into a shop drawing that you can edit in the same way as a file that was drawn in CAD.  You will face a lot of frustrations.  We face that problem with senior architects who come into the practice without Revit experience, jump onto a project, ask the Revit guys for a CAD export so they can figure out some design changes, then discover that it is much harder to edit than they were expecting.  Blame Revit if you like, but I don't think we are ever going to see CAD exports that meet those standards.  The gap between CAD & BIM is too great.  Learn to use Revit guys.  It's a much simpler solution.
Navisworks Simulate.  I think this one is going to be useful.  Still finding my way around.  There are all kinds of painterly effects in there, easier done with Gimp so I don't see me using these much.  You can look over the shoulder of a man in a boilersuit as you walk around.  Not bowled over by that either, but it's OK. 

Much more exciting to me is the Timeliner.  Took a little time to find this in the interface.  Also struggled a while to locate the selection tree, which is very nice.  Can select by Revit category, family & type very easily.  Using the selection tree and the timeliner together it's pretty easy to simulate a construction sequence for your building.  My first attempt is very crude, so don't laugh too loud. 

You can link this up to Microsoft Project or Primavera, so it's easy to see how Contractors could use this both internally and in meetings with the design team.  In fact it can't be too long before people are saying "how did we manage without this ?"  My mind is heading off in different directions though.  I could use this on a much smaller scale to animate my thoughts on how a particular detail could be assembled.  For example I did a study about 4 years ago using "hide element in view" to simulate a construction sequence.  I'm looking forward to doing this kind of thing in Navis.  It's easy to move to a different viewpoint and re-run the simulation, for example. 


Thursday, August 23, 2012


These exercises just reminded me of organ pipes.  Then there is a secondary allusion to the  monkey that generates heart-rending melodies by the turn of a handle.  If Revit is the organ then Excel would be the grinder.

Start with a generic model.  I have a starter file that I often use as a springboard.  It's a rectangular extrusion with 5 parameters already set up.  Took just a couple of minutes to adjust this, make Height & Depth instance parameters, rename Thickness to "Base Offset" (also instance) , leave Width & Material as they are.  Thickness was a parameter with nothing to do in my seed family, so I had to draw a reference plane, stretch down the extrusion and lock it, place a dimension, assign it to Thickness (Renamed to Base Offset).  Done.

Load this family into another new generic model.  Create a whole series of parallel reference planes and use a parameter called "Spacing" to control just that.  Lock one instance of the nested family to each of these. Finally, link the type parameters to equivalents in the host family.  Now load into project.

You might want to try adjusting this family manually.  It will help to give a sense of how helpful the Excel link can be.

I am using Revit Excel Link (REL) from within Family Editor.  Once again my aim is to randomise the Instance Parameters.  REL will export these parameters to an excel sheet, then I set up formulas using the Randbetween function.  There are 3 columns and each of them is randomised separately.  The formulas for the 3 columns are very similar, but reference different fixed cell locations.  These fixed locations contain values that I can vary in order to fine tune the effect. 

I've used colour coding to make this clearer.  The Height is coded pink.  I am generating values that range between 1500 and 2200 in 100mm steps.  So the formula refers to 4 locations: a start value (1500) an increment (100) and limit values for the increment multiplier (1 & 7)  The Randbetween function generates random values between 1 & 7, multiplies these by 100 and adds the result to 1500.  


Load these values back into Revit check what it looks like, then adjust the start values and increments and reload.  It took me 3 or 4 iterations of this to get the right balance between height and base offset.  Just to be clear, you need 2 worksheets in Excel.  One is the export from Revit, the other is where the formulas reside. The columns are linked together so that the Randomly generated data will replace the original values imported from Revit.

Then it's all down to rolling the dice.  Take a look, see what that suggests: play with Revit a bit; roll the dice again. Here's a GIF to convey the impression of rolling dice.

Now for some variations that are pure Revit.  Let's see what happens if we tweak a few type parameters, vary the width and spacing for example.

Here's a version that I quite like.  Be prepared for some happy accidents. 

Oops, that wasn't quite what I intended, but it opens up another avenue for exploration.

Roll the dice again.  Maybe a different view will trigger off some ideas, or perhaps an interlude of self-indulgent image processing.  I deserve a break from all this formula stuff anyway. 

What if we stretch the spacing out really wide ?

And it's fun to play with materials.  For example reflective materials work much better when the slats are more like boxes.  Timber is good when they are tall and spiky.  I haven't even begun to contemplate metal sections painted in a range of primary colours.  That will have to be another post. Too much to think about.

Chrome is interesting though.  Better with a dark background.  Hardwood perhaps.  I need to put some stuff in the model to show in the reflections, which turn out to suffer from appropriately random distortions.  That's nice.  Had to put Florence in there to indicate that whimsy is coming into play.  She's my signal that you are entering pumkinland.  Remember to go into render properties of an RPC object and turn on Reflections.

I think the interesting part of all this is the flip-flop between Revit and Excel.  Decide on your parameters, some instance, some type.  Manipulate the instance parameters from Excel, adjust the type parameters within Revit.  Makes for an interesting game and generates a lot of different variations very quickly.

Thursday, August 16, 2012


I'm back on curtain walls again.  Sometimes you need to start walking away from an idea to get fresh inspiration.

What about a curtain panel family with 16 equally spaced holes ?  I used the face-based generic model family template and made a void extrusion with a radius parameter.  Nest this into a curtain panel family and  link the radius to a matching parameter in the curtain panel,  Now we will be able to control the hole sizes from Excel.  It has to be an instance parameter, and I also made mine a shared parameter so it can appear in schedules.  The void families are all locked to reference planes that have equality constraints.

For my first 2 experiments I am going to use the random function.  This makes life easier, because I actually don't need to know exactly where each panel is.  I can leave my Excell file as a vertical column and just apply a formula to randomise the values.  In this case I wanted 6 different hole sizes and to step up the size by the same interval each time.  The formula is quite simple, and flexible too.  I can change the number of different panels by changing one of the two fixed cells which are referenced.  Notice the use of the dollar symbol to indicate a fixed reference rather than a relative link.

If I had been a bit more careful, I could have put the value "40"  into a fixed reference cell also.  Then I would be able to easily vary the amount by which the radius of the hole is successively increased.  How carefully you set up the formula has a big influence on the ease with which you can explore different design iterations.

It's easy to make a schedule that displays the hole size and number of instances for each panel "type" (They are not types in the Revit sense of the word)  You can also use a schedule to select a group of panels, right click and "show".  Cycle through avaiable views, use temporary isolation if you like, and change the material of a group of panels based on hole size.

The second experiment doesn't require any more work in excel.  I just want to change the shape of the holes.  I copied the generic model void family with a different name so I can keep both versions in my curtain panel family.  Then I just select all instances and swop between the families.  They will remain locked to the reference planes, but you need to repeat the parameter linking.

Load it back in and we get the same random effect, but with square holes.  I didn't change the name of the curtain panel family because that would have messed up all the instance values for the hole sizes.

That's enough randomising.  What about a diagonal gradient ?  The curtain panel is based on one that I did for my first Excel post, so it already has X & Y values.  These are just text fields (instance parameters) that allow me to identify the position of each panel in the horizontal and vertical grid. 

It's a bit tedious, but once done gives  you much more control.  Select the first vertical row and label it A, do this ten times using B, C, D etc.  Now select horizontal lines and label them 1 to 10.  By using separate parameters we only needed to make 20 selections to label 100 panels. 

Now export to excel.  You need to do a custom sort on the data.  This requires unprotecting the worksheet. (Review tab)  You will need a password.  You can set this during the process of exporting to excel.  Select all the data (blue and white), but not the grey headings.  Do a two level sort: first alphabetic on the X values, then numeric on the  Y values.  The data is now organised in blocks of ten that match the vertical rows of the curtain wall. 

Now we set up a rectangular array in another worksheet and link the columns to the equivalent blocks in our vertical data stream.  If you want to use Excel with Revit, you need to practice your linking skills.  Set up the first link in the top left corner.  Must be relative.  Then propagate it down to all 10 cells in the A column.  Now do the same thing for B, etc.  Maybe some excel genius can come up with a macro that automates this process. 

You will also need to hone your formula writing abilities.  Once again, I set out to place key values as fixed references.  This one works, but I end up with a lot of different panel types which may not be cost effective.  I case you are worried that the diagonal gradtient is reversed in the rendering, it's simple, we are viewing the wall from the other side.

Some adjustments in excel reduce the number of different panel types.

But the visual effect of a continuous gradient is not really affected.

The next experiment returned to random patterns but using a panel based on a blend. 

Within the Revit family I set up simple formulae to tie the positon, & size of the top rectangle to the same parameter controlling the depth of projection.  This is a second iteration which swops in two extrusions in place of the single blend.

Which works better as a random pattern.

Once again I have just 6 different panel variations and I can use a schedule to select them and apply materials.  Remember these are not true Revit types.  We are using instance parameters throughout for the Revit Excel Link method to work. 

So we have a range of techniques for generating variety, based on Excel linking, use of family editore & selecting panels via schedules.

Here is a version of the squares using the gradient formula in excel.  It gives quite a subtle effect

Finally back to the blend.  This time using the gradient effect, and introducing a void sweep around the top edge.  This has an interesting and unanticipated effect. 

As the angle of the pyramids becomes shallower towards the top left corner, the shelf created by this void sweep becomes much broader very rapidly.

Wednesday, August 15, 2012


Still on the Excel theme, but taking a new direction.

Three years I tackled the problem of how to model an "African Hut".  This is a familiar and important challenge with very broad implications.  Steel & glass is easy.  Even the organic version of high-tech is relatively approachable: nurbs surfaces & panellisation etc.  Rough and ready indigenous is much harder.  How do you get that random irregularity ?

My earlier attempt relied heavily on manual intervention.  Take a circular array of poles, ungroup it, then grab a few and give them a small arbitrary rotation.  Select an irregular selection and substitute a different family with a bendy version of the pole based on a sweep.  Instead of a cylinder, base the pole on a blend between a circle and an elipse.

It worked to some extent, but it's not very parametric.  You can't imaging resizing the hut, or typing in a new number of poles.

Could Excel linking and "RANDBETWEEN" be the answer ?  It's worth a shot. 
First of all I want to get away from the circular array, so I'm using a massing family and creating a spline between 6 points.  The number of points is quite important.  Too many and you'll hardly see the difference from a circle.  Too few and it will be more of an egg.

A trick from my pumpkin experiments came into play to create radius parameters from a central point.  Now I can resize the whole thing without distorting the basic shape.  Excellent !
I used "create form" to extrude the line into a surface, then divided this into panels.  Make the grid say 1 x 50. 

I need a curtain panel with a pole down the middle, which is quite easily knocked up using the rectangular template.  I started with a simple cylinder.  Now let's fire up Excel.  I'm using "Revit Excel Link" from CTC, basically because it's much cheaper.  I don't know if it's the right choice or not, but it works & I'm enjoying using it.

At first I though I was out of luck.  No mention of pattern-based curtain panels, or adaptive components when the category list came up.  But as it happens it recognises my poles as standard "curtain panels" and it finds the Radius parameter even though it's not shared.  Magic !

Export to Excell, type in a formula for the first cell under "R" (=RANDBETWEEN (50,75) )   Propagate this down the column by pulling down the little black square & we get a nice scattered set of values. 
Save the worksheet & import back into Revit. By chance 4 of the values haven't changed (so REL tells me)  Wait a few seconds and check out the results.  Not bad really.
Load the family back into my project.  Make two instances and resize one.  Works perfectly.

Now I may want to work at my pole family.  The degree of variation is fine, but it still looks more like a turned wooden baluster than a real tree branch.  But the basic process I am following is very promising.  I like the shape of the hut.  I can type in instance values for Radius, Height and No of Poles which is a vast improvement in terms of parametrics.

It would be nice to have a slight variation in pole height.  I had this before based on "tedious manual input".  But once again that's probably just an hour or so refining my pole family.

I decided to end with a freebie so download your copy of my "work-in-progress Afri-Huts" from here ...
revit file

This includes 2 of my favourite little tricks for object style settings.  You'll see what you mean when you open your present.  (2012 version file)