Xrev API Tools: Increase Productivity!



Wednesday, September 09, 2015

Revit Railings - Long Standing Issues

I'm sure I'm not the only one he gets frustrated by the Railing tools in Revit.  I thought I'd put together this post to point out the type of day to day frustrations they cause and what I'd like to see implemented to solve the problem.

Extensions and Terminations

Here it can be seen a 180° railing termination and a standard 300mm extension.
As you can see, dimensionally its accurate.
But look at the Length I had to give to achieve this?
As you can see that dimension doesn't seem to correlate to anything?
  • I've checked the Termination family and its origin is set as the Centre Left/Right Reference Plane which is located exactly where the 300mm dimension is, and the Extension Length is set to 0, as I don't want it to be subtracted from the Extension Length.  IE: It should be 300mm and then the return.
  • If I switch the Extension style to Floor and ditch the termination, I see it correctly ends exactly at 300mm with an extension length of 300mm.  Although it stops exactly 163.424mm short of the floor...  NOTE: That just happens to be exactly how far extra I had to offset the Extension Length by.  But where is this value coming from?
  • Similarly if I switch the Extension style to Post, its still 163.424mm short of the end of the Railing sketch.  Anyone have any ideas where this number is coming from?
Another issue with Terminations is the fact that they do not display in linework in Plan.  It seems they are there when you hover over them, but they never show the edges.  If this is because of some standard elsewhere in the world, that's fine, but don't hard code it this way, make terminations a sub-category that we can control visibility of separately.  Unfortunately, there is absolutely no smart workaround to fix this.  Even masking regions and linework in the termination family don't show through...

Baluster Placement

Oh how I wish for Instance parameters!
  1. For Posts we can set "Space" adjustments for Start, Corner & End Posts.  But lets say I want my posts to be spaced Equally.  In this example, 2000mm spacing.  I set my Main Pattern "Dist. from previous" value to 2000mm.  Rarely do I want to have a post exactly where by Railing starts/finishes when hosted on a Ramp or Stair.  There is always a change in level meaning I need to offset to allow the base plate to fit.  In this case I've sent a start spacing of 100mm.  But as you can see my first and second balusters are now 1900mm, and this space is not factored in by the rule...
  2. Similarly, if we have a space, either mid rails and bottom rails should automatically stop at the first and last baluster, or rails should also have "Space" parameters to allow us to make them stop short in these circumstances:
  3. Railings need instance parameters, so we can override Baluster placement.  Sure we can make excessively long baluster placement rules that individually set out each baluster, but what a waste of time and we end up with potentially hundreds of Railing types in our project becoming a management nightmare!  Why doesn't it work more like Curtain Wall Grids and Supports, where we can define a rule, but at the instance level unpin them and position them exactly where we want them, and even add extra ones if required.
  4. Why not have placement controls for Stair Posts such as "Centre on the first and last Tread of each run" with maximum spacings for intermediate Posts, that also default to centred on the Tread.  WE DON'T PLACE POSTS ON THE NOSING!
  5. Corner Balusters, sometimes use base plates or brackets/supports.  Because we have no control over their orientation we end up having to make 4 different versions for the different corner styles.  We also have no connection to the angle of the corner.

Baluster Properties

  1. Give us access to the instance parameters!  We have instance parameters available for Top Cut Angle, Slope Angle, Bottom Cut Angle & Height.  However we can't drive other instance parameters from these as they don't get updated!  For example, in a particular modular baluster, it has brackets to hold the rails.  The bracket type varies depending on whether the Rail is flat or sloped.  Now if instance parameters worked I could use an IF statement to ensure the appropriate bracket is visible.
  2. Visibility parameters seem to have weird glitches.  EG: If you turn off parts of the balusters, some times they still display in section and elevation, but not in 3D.
  3. Corner Balusters should have their own special type with extra parameters to be able to use the angle of the corner in formulas.
  4. Instance based Width parameters for Panels!  This way we can create proper Glass Patch fitting style Railings without workarounds...

Railing Properties

  1. Landing Height Adjustment options are needed on Top Rails and Hand Rails.  If you have a bottom Rail, you don't want its height to be adjusted as well!
  2. Why is it we can't have a Hand Rail on its own! Its the only rail type that allows us to have supports and adjust their positions per instance...
  3. Offsetting Rails from the edge of Stairs upsets transitions in slope. 
AUTODESK WE ARE TIRED OF WORKAROUNDS!  These issues have existed for many many years now...  Please help us!


Unknown said...

"As you can see that dimension doesn't seem to correlate to anything?"
I believe the 463.424 mm would be from the start of your extension to the outside extend of your curved return.

Chris said...

Unfortunately not. And this offset issue occurs even if the Termination is set to none...

Unknown said...

I have had same issue with getting the balusters to be equally spaced on a exterior stair with some different level to level heights. I'm kind of new to revit (not new to drafting though), but I have spent hours researching revit railings online and at this point I am forced to model the entire railing system which consists of 8 levels!

Jeff in Pensacola

Anonymous said...

Thanks for the post Chris, trying to do this exact AS1428 compliant handrail now.

Does any Aussie handrail company have this type of Revit handrail family available for download?

Chris said...

Which one? The samples I've shown are for Moddex (which I've recently done updates for) and Miami Stainless. Both are accessible through "Design Content".

Andrew Scanlon said...

Yup. Some of the issues are just ridiculous - I work for a railing manufacturer, so between building the families and placing accurately in the project, according to codes and engineering, I can testify to how badly we need fixes. I end up with tremendous lists in the baluster placement editor, with a dozen types and then the workarounds.. I do a good amount of modeling in-place (esp with complex bend geometry and sometimes terminations), which defeats the purpose, but is easier than feeling like I'm in a MMA match with Revit.. Not sure the source of your termination mystery, would gladly look at the file. Not at all surprised though, terminations are so glitchy.

Found your blog while looking around for any way to have a particular instance parameter actually translate into the project environment. Like you mentioned, seems simple, I need a part to change dimensions at certain angles (different part for rakes/horizontal runs)- and naturally it flexes perfectly in the template, but thats it..

That the editor template and the project environment don't correspond drives me mad. I basically have to flex everything twice before I know it will actually work..