Elliptical stair

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


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


Next, I explored the ‘Pick Lines’ tool thinking it may be a valid workaround. However, upon further investigation I discovered that Revit won’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 OFTB Revit stair tool is incapable of creating an elliptical stair. So what are the workarounds?

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’ which means 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 it 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

Since the geometry is elliptical it is not possible to simple draw a profile and use a revolve or sweep to generate the form. We need to work in plan and draw extrusions for each individual tread. This sounded painful and quite tedious so I generated 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 possibly work. However, it was decided that the family’s constraints were highly susceptible to breaking when flexed, and therefore, the family would likely need to be rebuilt several time in order to achieve the desired outcome. This methodology was therefore aborted.


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.


The Grasshopper script utilises the Elefront (Lite) 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, tread thickness, etc. as well as 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.


Once the stair has been generated and baked into Rhino it is simply a matter of exporting the geometry as a *sat file, creating 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’ and will therefore require some Revit gymnastics 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 easily. Of course it would be ideal if Autodesk could develop Revit’s capability so that we could generate the elliptical stair intuitively within Revit, but until then, this is the best workaround I’ve discovered.

9 Comments on “Elliptical stair

  1. downloaded the grasshopper file and elefront.
    Opened the grasshopper file with elefront installed.
    jiggled the grasshopper parameters.
    looked for some button to generate stairs …
    what do I do next? Am I missing a rhino model? Do I attach the parameters to a model that I must create?

    • You don’t need to do anything in Grasshopper. Just enable the Grasshopper geometry preview in the top right of the UI. In Rhino, go zoom extents and you should see it.

      • I downloaded the plugin but I can´t find the script.
        Where can i find it?

  2. The ellipses dont appear when i open the document so im blindly changing sizes because i cant visualize it, is there a way to fix this?

  3. This issue has already been raised in previous comments. Just enable the Grasshopper geometry preview in the top right of the UI. In Rhino, go zoom extents and you should see it.

    • Hi Ivana. The link is already there at the bottom of the page

      • Many thanks for the prompt reply. I am not able to visualize it in grasshopper though. I can only bake each time..is it a cluster issue?

        • You need to enable the geometry preview as mentioned in earlier comments.

Leave a Reply to paulwintour Cancel reply

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