Elliptical stair

5 min read

Recently I was asked to create an elliptical stair in Revit. For anyone that has tried to create ‘complex’ forms in Revit, you’ll understand how difficult it can be to make these forms. I tried several methods within Revit to generate the stair, all of which proved impossible or inadequate. In the end, I created the stair using Grasshopper, which was significantly faster and a much more robust workflow. The workflows detailed below outline both the failed Revit attempts as well as the successful Grasshopper script.

Stair by component limitations

Intuitively, one would think that the first place to generate an elliptical stair would be the stair tool. However, upon exploration of the ‘Stair by Component’ tool it became evident that Revit only allows you to create a full-step spiral or a centre-ends spiral stair, neither of which will generate an elliptical stair. Even if you select ‘Create Sketch’ the only curve options available to you are based on arcs or circles. So again, not that useful in creating an elliptical stair.


Pick-lines and ellipse limitations

Next, I explored the ‘Pick Lines’ tool thinking it may be a valid workaround. However, upon further investigation, I discovered that Revit wouldn’t allow you to pick a pre-generated ellipse, such as a model line, even if the ellipse is split into two segments. Interestingly, this is also true if you try to create an elliptical wall, with the only workaround being to create a mass and then use the wall by face tool. So in sum, the OOTB Revit stair tool is incapable of creating an elliptical stair. So what are the workarounds? 


Model In-Place limitations

Logically, the next place to look was the ‘Model In-Place’ component. The first issue with this methodology is that there is no category for ‘Stair’. This limitation means that even if we were successful in modelling the elliptical stair, we wouldn’t be able to tag or schedule it easily and would require even more workarounds. The positive though is that within the sketch environment, Revit allows you to draw ellipses and/or use the Pick Line tool on existing ellipses.  

Revit_Inplace mass_1800x650

Mass family

Since the geometry is elliptical, it is not possible to draw a profile and use a revolve or sweep to generate the form. We need to work in plan and draw extrusions for each tread. This process sounded painful and quite tedious. So I created a mass family to act as a rig for the geometry. A mass family was chosen over a Generic Model family for its ability to generate Reference Points hosted at the intersections of reference lines/planes.

With quite a bit of work, this methodology could work. However, it was decided that the family’s constraints were highly susceptible to breaking when flexed. Therefore, the family would likely need to be rebuilt several times to achieve the desired outcome. This methodology was, consequently aborted.


BIM ecosystem

For a long time now, I have been a big advocate of open BIM. In my opinion, this means harnessing the power of various software, since no software can do everything, and then combine this data/geometry into a single integrated BIM model. For this reason, I have no hesitation in integrating Rhino/Grasshopper models into a Revit model.


Grasshopper workflow

The Grasshopper script utilises the Elefront plug-in and will need to be installed for the script to work. The elliptical stair is fully parametric with the ability to change stair width, floor-to-floor height, and tread thickness. Also included is the ability to reverse the stair and change its start position along the ellipse. Two variations of the script are provided. The first method treats the stringer as a solid, continuous balustrade. The second method has a stepped stringer at the landing. The script does not generate geometry for additional balustrade or handrails.


Revit interoperability

Once the stair has been generated and baked into Rhino, it is merely a matter of exporting the geometry as a *sat file. Next, create a new Generic Model family in Revit and import the *sat file. Like the Model In-Place method described earlier, this methodology still won’t allow you to set the category of the generic model family to ‘Stair’. Therefore, some Revit gymnastics are required to schedule and tag correctly within the project.


Although this method means that editing the geometry in Revit is near impossible, the ability to quickly make changes in Grasshopper and update the Revit family means that managing design changes is quick and relatively easy. Of course, it would be ideal if Autodesk could develop Revit’s capability so that we could generate the elliptical stair intuitively within Revit. Still, until then, this is the best workaround I’ve discovered.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Sync Room Parameters

Sync room parameters

A Dynamo workflow to synchronise instance-based room parameters, such as apartment number, nested within a Revit model group.

Rhino Inside Revit for Dynamo users

Rhino.Inside Revit for Dynamo users

Learn some of the key differences between Dynamo and Rhino.Inside Revit and discover the benefits of migrating certain Dynamo workflows to Rhino.Inside Revit.

Views from Sun with Rhino.Inside Revit

Views from sun with Rhino.Inside Revit

Learn how to generate views from the sun using Rhino.Inside Revit to visually verify the results of a Ladybug solar access heatmap.


© 2023 Parametric Monkey
Parametric Monkey and the Parametric Monkey logo are trademarks of Parametric Monkey Pty Ltd.


Drop us a message and someone from our team will be in touch with you shortly.


Thank you for your interest. Someone from our team will be in touch soon.


To find out about upcoming public workshops or to organise a private workshop, please submit the following contact form and we’ll be in touch soon.