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.