Monday, January 2, 2012


I was looking through Zach Kron's parametric patterns series, which is still  available on his Buildz website, and well worth a look if you missed it.  The  INCREMENT SPIRAL caught my eye and I started wondering "how would I convert this into a fully parametric spiral stair"

I took the family that Zach created: just a spiral line, with parameters for height, radius, rotation angle.  (You can vary the top and bottom radius separately to make a cone, but I just wanted a cylinder.)  The goal was to make a spiral surface, divide it, then populate it with curtain panel families that emulate stair treads.  The divided surface gives you a neat way to vary the number of vertical divisions.

My first attempt at a surface turned out to be a DNA style double helix.  Then I realised I could get what I wanted using the spiral plus a simple vertical line.  The heights of both are linked to  the same parameter.  I divided the surface and created a parameter called "no of risers"

Tried out a curtain pattern family with a cylinder on one edge.  Changed the panel rotation angle to get this edge in the right place.  Then replaced the cylinder with a triangle. The challenge now was to get this to sit up into the horizontal plane.

Curtain pattern families are designed to lie in the plane of a curved or twisted surface.  I needed to push one corner of my tread up, so I hosted a point on a point, gave it an offset value.and linked this to a parameter called "riser height".  Withing  the stair family, this can be tied to a formula that divides the total height by the number of risers.

So far so good and I was getting excited.  But if you look carefully they're not quite level.  I spent  some time working out trigonometric formulae, which was fun, but in the end I decided that there had to be a better way.  I had a nice family with lots of instance parameters so I could copy it around and explore lots of different sizes and shapes.  But the fact remains that each stair is made out of a series of identical components. 

So why was I fighting against the curtain panel geometry all the time trying to keep all the bits aligned to horizontal and vertical when I flex the family and the pitch of the spiral changes ?

Why not make the whole tread assembly as a nested component and simply align it with the vertical line ? (ie the post in the centre of the stair)  So I went back to an old-fashioned generic model template and made lots of extrusions.  I had to have parameter that I could link back to the host family (riser height, radius, angle etc) But at least now it was much easier to offset the baluster in from the edge of the tread and to be confident that everything would stay in the horizontal and vertical plane. 

This family was then nested into a 3 pick adaptive component.  Reporting parameters record the distance between points so as to control the riser height and radius.  So when I place the adaptive component in a curtain panel family it will automatically have the right size and alighment (pick, pick, pick)

It worked a treat, and the rest was down to designing my tread assembly.  Because curtain panels & adaptive components are shared families by default, I could just open the adaptive component directly from the project.

To prove that the result is truly orthogonal I set up some dummy construction details.  Everything dimensions very nicely

Being shared families you can select individual treads and isolate them in a view, over-ride by instance, etc.  Not sure I would use these stair families directly in a big project.  Puts a bit of a load on the processor.  But for exploring the geometry of a spiral stair it's great.  You can play with rotation angles and radii, go past 360 degrees, change the number of risers.

Once you have the configuration you want, it's possible to make a reasonable version using the Revit stair tool.  Use that in the main model, then maybe have a separate detailing file where you show the full design intent using this kind of family.  Gives you a much finer level of control than the system family tool. 

Closing with an image as usual.  Rendered and shaded views combined in Photoshop.  One extra little trick here.  Have two layers, one sharp and one blurred, then use a soft mask to fade from sharp in the midldle to blurred at the edges.  Give the illusion of depth of field


  1. Hi Andy,
    This is Lira from Autodesk. Thank you for the great post. Can you please let me know how long did it take you to make this staircase? What were the biggest hurdles in terms of figuring stuff out / usability? Also would it be possible to see the file?
    Thanks, best,
    Lira.Nikolovska AT

  2. spiral staircase is a type of stairway characterized by its spiral shape staircase design

  3. this is some really great tech! You really could figure out how to perfectly fit a Spiral Staircase into your home with this kind of software. I had one installed awhile back and it has been just a dream come true

  4. Hello - how did you create the railing ? can't seem to extrude anything along such a path ...

  5. Are you able to share this stair family?

  6. Thanks for sharing this informative post as I want first-rate home remodeling services in the Radcliff area. Keep sharing such posts.
    Clay Block Homes Design Engineer

  7. This comment has been removed by the author.

  8. Nice article, the information you have shared here is really helpful, keep sharing them.
    Build a deck Elizabethtown, Ky


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