Tuesday, August 26, 2014


This is something that I developed for my Urban Design explorations talk at RTC Chicago.  The idea was to take the basic "blob on a stick" tree that is often used at an Urban scale, and make it more parametric.  Hence the universal lollipop tree.

It wasn't too hard to set up.  A revolve made from quarter ellipses.  You can vary the shape by moving the "waist" up and down, also by changing the proportion of width to height.

The family I used in my presentation looked fine in the images, but in reality was less than perfect.  The way I had hooked up the parameters led to somewhat counter-intuitive behaviour.  For example, increasing the trunk height factor would actually decrease the proportion of trunk to canopy.

So this weekend I decided to fix that family, make it more user friendly, and offer it up to the general public.  Version 2 was much better.

There are subtle changes to the formulae that make them work more as you would expect from the given names.  I set up 15 types, with names that I thought would be easier to follow.

That's all good, but the names really refer to shapes.  At one point I was actually adding the height to the type name, but this just seemed to make things more complicated.

I decided to go for a version 3 where height would become an instance parameter.  You probably know that the different family templates have slightly different behaviours baked into them.  The Planting Template has a "Height" parameter that you can't delete and you can't change to "Instance"  So I had to resort to creating a new parameter named "_Height"

Because all the "driven" values are ultimately dependent on "_Height" these also have to be instance parameters.  Revit won't let you have two instances of the same type with different Type Parameters (which is what could happen if you allow a Type Parameter to be dependent on an Instance Parameter)

Because of the way the parameters are all interconnected, I had to delete all the formulae (copy-paste them into a text document) change the parameters to instance, then copy all the formulae back in.

The end result is a tree whose shape is determined by four type parameters, and whose height is controlled by a single instance parameter.  There are a bunch of greyed out "formula driven" parameters that appear in the "other" section of instance parameters.  These record the actual dimensions of any given family instance.

So that what I decided to do with my lollipop.  You can probably get by with the 15 types built into the family, but it's quite easy to tweak them, if so desired.

Hope you like it.  Download from here.


1 comment:

  1. You can change any of the built-in parameters to instance by selecting the parameter in a view (Front in this case) and selecting the Instance Parameter checkbox on the Options Bar.



I've been getting a lot of spam so had to tighten up comments permissions. Sorry for any inconvenience. I do like to hear from real people