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.
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.
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 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.
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.
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.
Alejandro André Salazar
I downloaded the plugin but I can´t find the script.
Where can i find it?
Alejandro André Salazar
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?
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, could you share the script please, thank you
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.
Hi, thank you for providing the codes. For me I can only see the stairs if I bake the model in Grasshopper. Is this how it should be? It does not allow me to make any changes
As per previous comments, the geometry preview was turned off. Just turn it back on and you’ll be able to see it.
Hi Paul, thank you for the post! Sorry to bother you with this but cant find the link to download the file on the bottom of your page… do you think you could share it by email? Many thanks! Cheers
Hi Angelica. I’ve put back up the link. Preview is on by dafault now.
Thanks for the great article. I have two questions:
– Have there been any improvements in the latest versions of revit to make this work with OOTB tools or a native revit solution?
– Can you please repost a link to the original grasshopper script? It seems to have disappeared from the article.
Hi Patrick. No, I don’t believe it is possible to use the OOTB tools, even with Revit 2023. I’ve put back up the link. I hope that helps.