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. 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.


    1. Sure, there are a couple of ways to make the change to individual parameters. The difficulty is that you are not allowed to have an instance parameter controlling a type parameter via a formula because that would create conflicts. Sometimes you can just be careful with the order in which you change the parameters, but in this case it was easier to just remove all the formulas, change the parameters to instance, then paste the formulas back in.

  2. thank for the wonderful post , lots of information gained , visit us Revit Modeling in uk

  3. The link does not work.
    Can you fix it?
    Thank you so much

  4. Hi, The download link doesnt work anymore, could you re upload this file, it looks amazing i would love to try this

  5. Do you have the old version still as the link doesn't seem to work anymore?

  6. Hi, do you have a video tutorial for this?

  7. Also the download link does not work. I am new to Revit and really need to learn this. I would appreciate the help.

  8. Any chance you could reload the link? Would love to use this.

  9. Would like to use this, but link is not working any more.


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