Thursday, February 14, 2008


I was in a state of baluster frustration last week as I came across a couple of things that flustered me for some time until I realised that I wasn't losing my mind!

Railings can be quite complex and I see users struggle with them quite often. You can pretty much achieve any design you want, but it takes some serious muscle to master this tool and a lot of trial and error.

The railing tool is a System Family made up of a series of horizontal Rails and vertical Balusters. Rails are defined through Profile families - imagine them as beeing sweeps. You define a vertical height, a horizontal offset, a profile & a material and you're done. Balusters are a little more complex and we need to assign the main pattern and then define the posts by selecting a Baluster family and defining the spacing rules, offsets and materials. Balusters could be a simple round or square post or a complex panel, depending on your design.

To master this tool, you have to spend some time experimenting and trying out what each parameter does. The most challenging part is building a complex baluster panel family that flexes correctly with the angle of the stairs/ramp in your project. But here, I'll highlight just a few problematic baluster issues so you can steer around them and not get stumped.

In the Railing Type Properties dialog, the parameter Baluster Offset offsets the baluster in the same direction as the Offset value in the Edit Rails Dialog. However, the Offset value in the Edit Baluster Placement dialog moves the baluster in the OPPOSITE direction of the other two parameters. This was reported and confirmed as a known "defect".

The main problem with this is that for example, if I use an offset of 3" for my rail and then I type in an offset of 3" inside the Edit Baluster Placement dialog, I end up with a 6" gap between the centerlines of the rail and baluster, whereas you would expect their centerlines to coincide! If I then type an offset of -3" in the Edit Baluster Placement dialog instead, the rail and baluster centerlines coincide, but the baluster top will not stop at the underside of the rail and will instead go to the top of the rail.

For the post top to properly clean up, the two baluster offset settings have to be either the same value, or the offset in the Edit Baluster Placement dialog has to be zero. This means that one should avoid the use of that offset value and instead use the type parameter "Baluster Offset". If you have multiple baluster patterns with different offsets, that might not be possible.

Another issue is that the Baluster family origin seems to be fixed. If you move the reference planes that have the option "Defines origin" checked together with the 3D geometry and then you reload the family back into the project, the baluster geometry will move. This shouldn't happen because these reference planes are supposed to define the origin. Since the relative distance between them didn't change, the geometry shouldn't move when the family is reloaded in the project. This seems to be an issue with the baluster family templates.

One last the stair image above, notice that the leftover spaces are filled with vertical baluster posts that go all the way down to the host surface. If we look in the Baluster Placement dialog, you'll notice that there is no control over the Top and Base (plus offsets) of the "Excess Length Fill" optional balusters.

If you want the vertical fillers to be located off the host surface, you might have to create a custom baluster with the correct offsets and number of balusters built into the family. I'll go into more detail about this in a future post.



Anonymous said...

Great points.

So based on your explanations I am not seeing a way I could do horizontal railings that are parallel with the ground and not with the line of the staircase...

Is that correct?

Dave Baldacchino said...

The railings themselves are going to slope with the host (ramp or stair). You can have horizontal rails on flat floors. But you can create baluster panels with horizontal elements if you want. You can add a rotation parameter and you'd type in the angle of the stair into your balster family (type parameter) and those elements would rotate to be horizontal. Is this what you're talking about?

Tim Howlett said...

Hey, could you please create a tutorial on how to create the rail that is shown in the picture, as I need to create one very very similar for a clients project.

Dave Baldacchino said...

Hi Tim, I suspect what you're really looking for is how to do the baluster panel (the "X" panel), correct? I'll do my best to post about that soon.

Understudy said...

Hey Dave,

Seems like you are the person I've been looking for. Great post, this one helped me understand the rail vs baluster much better.

I created a baluster and figured I could just replace the glass panel in the stair revit railing with mine.

It worked except, where the glass panel tilted to match the rise of the stairs my exchange panel remained parallel to the ground.

How do I correct this so some are parallel to the landing and others to the rise angle of the stair??


Dave Baldacchino said...

Hi Steven

Make sure you take a look at the other baluster post I have here (go to the link below to see all related posts)

Sounds like you want a baluster panel. In that case, you need to make sure your geometry is constrained to the sloped ref. planes called "Slope Angle (Top)" and "Slope Angle (Bottom)". You also have to make sure that BOTH these ref. planes are constrained with the parameter "Slope Angle". This will flex your panel depending on the host (whether it's on a flat slab such as at a landing or a sloped stair run). The other parameters "Top Cut Angle" and "Bottom Cut Angle" are used by baluster families, as the base and top can have different slopes. For example the baluster can be sitting on a stair thread (flat) and the top will be trimmed at the top rail angle.

Anabel said...

Hi Dave,

Good things to know about editing railings. I wanted to ask you how can I edit a stair railing panels in order to get the panels spaced iqualy when changing direccion and when in landing?.I have tried making the railing using in place families but I can't attach the panels to the railing. I there any solution?

thank you,


Dave Baldacchino said...

Hi Anabel,

What you want is a bit tricky to do. Unfortunately Revit's current toolset is very limited and not design-friendly at all. So you have to know what your railings look like before you input the data into your family type so you get the desired result. Which is why in most cases, going for the in-place route is less frustrating! However if you build a baluster panel that flexes correctly, you can create a few types with the required sizes and use them when defining the railing.

Let's say you have a railing where the sloped run has 4 panels of width X and the landing has 2 panels of width Y. You can do the following:

Method 1: In one railing type, define exactly 4 "X" panels with one line item for each at the correct spacing. Then do the same for the other 2 "Y" panels at the correct spacing. When you sketch, Revit will see the pattern as these 6 panels and will repeat it after the 6th panel is modeled.

Method 2: Define a unique railing type for the sloped run and a unique railing for the landing.

The nice thing about Method 2 is that you can now use each of the defined types in other project areas, whereas the type in Method 1 is very specific and probably wouldn't work somewhere else. The other problem with Method 2 is that your plan representation might show incorrectly (probably the landing section will not show properly when a hidden representation is expected since that part of the railing might not be intersected with the cut plane since it would be modeled as a separate piece). I would recommend Method 1, even though it's a bit of a pain.

Post a Comment