Parametric Patterns VI: Increment



“Drive change through a series of closely related values.”

This is a technique that has been employed in various forms in Revit for a number of years.  The basic idea is that you have a loaded family that contains 2 things:

  • a piece or pieces of math that describe a shape or geometric change (ex, 15 degree rotation, sin(x))
  • an integer value that places the family somewhere within the shape or change described by the math.

The classic Revit incarnation of this is the twisty tower, this one by Vincent Poon:


Each horizontal slice is  a single loaded family with an integer instance parameter.  The integer tells the family where it should be in the order of slices, and formulas within the family tell each slice where it should be and how it should be configured.  For instance, the family might have an offset from the ground plane and a rotation.  Instance #3 would be 3 times a 10’ offset and 3 times a 15 degree rotation, which would put it 30’ off the ground and at a 45 degree rotation.  Instance #4 would be 40’ and 60 degrees, etc, etc.  If you haven’t seen this presentation by Vincent Poon, Phil Read, and Matt Jezyk from Autodesk University 2007, you should do so right now.  Many secrets, including this one, will be revealed, at high speed.

More recently, William Lopez Campo wowed spectators conjuring up this piece of geometry in 20 minutes using the same technique and some crazy formulas.


In all these instances, the drudgery comes in the placing and numbering of many instances of a family.  This is pretty manageable with 20 or 30 instances, but kind of a hassle for larger numbers.  Once the instances are placed, there is a huge amount of flexibility in what you can do with the families.

[Edit:  I have made a couple of tools to help with placement and numbering of many instances.  Read this.]

Snail Curve
Snail Curve


Circular and Conical Helix

Create various spiral forms:  This video dissects a more complex family that relies on the basic incrementation principles shown in the Snail Curve video, but used in the context of a more generalized tool.


Download sample files from here