Friday, 24 April 2015

Weird Revit Railing Stuff - part 5 - Extensions / Terminations

In my previous post I described how top rail / handrail terminations in Revit are not visible in plan, thus rendering them useless for 2d documentation.  They have another 'feature' that makes them unreliable for use in any model:

Unreliable Rail Extension Length

When you first define a new railing type, with a top rail that has a termination and extensions, the termination goes outside the length of the extensions:
If you then change the railing for some other railing type, and then change it back to the original type (with extension + termination), the termination is now within the extension length - meaning that the whole railing length gets shorter.

Of course you can't see the extensions (unless you select the railings) - but the rail just looks shorter.

This has been acknowledged by Autodesk as a bug, so no doubt it will be fixed in due course.  Let us hope that they also fix the visibility issue, which is not yet acknowledged as a bug - last I heard it was "As Designed".

Possible Workaround

If you really want to use terminations, and don't mind about the plan visibility issue, there is a workaround to the extension length issue:
  • Go to a section view and select the top rail
  • Make sure you get the top rail by Tab-Select, otherwise you'll get the whole railing
  • Click on Edit Rail in the ribbon
  • The extension line will show blue, but note that the termnation has already moved
  • Edit Path (note the Edit Rail Path is different from normal Edit Path)
  • The extension sketch lines are now editable - drag the extension sketch line to exactly where you want it

  • When you finish editing, the termination will be where you want it to be, and will not move without your permission
The main problem with this workaround is that you have to edit every single instance of the extension/termination.  The other option might be to just make the extension longer than required (by the termination length), and live with the fact that Revit will shorten it - of course you need to swap the type to make it do so.

Organic Railings

  • While you are editing the extension path, you could have a bit of fun, and curve the extension line.  Antonio Gaudi would be proud of you

  • Or you could go really crazy

  • But even Gaudi wouldn't like this result as his designs were always very considered even when looking arbitrary

Railing designed by Antonio Gaudi, Barcelona

Dimensioning Terminations

Another issue:
You cannot dimension terminations in section (or plan, obviously), which is a limitation for serious documentation.
Perhaps you could create a detail view and place a separate termination component that is invisible in all other views?   Another nasty workaround - but what else can we do?

Monday, 20 April 2015

Weird Revit Railing Stuff - part 4 - Handrail Terminations

Staircase on Kukulkan Temple at Chichen Itza, Mexico

Railing Termination Visibility

The great temples at Chichen Itza (Mexico) were built well over a thousand years ago.  The Mayan/Toltec architects and engineers who designed them created some grand staircases.  They didn't have the same building regulations and OH&S concerns that we have today, so their concepts of railings and balustrades was a bit different.  However, they did love to put grand terminations at the base of their balustrades - in this case, representations of Kukulkan, the feathered serpent deity:
Kukulkan Serpent balustrade terminations

Of course they didn't use CAD, let alone BIM to help them design the stairs - they were brilliant mathematicians, who probably worked it all out in their heads.  The angles of the stairs were not designed to make it easy to climb up or down them - it was more about astronomical significance and perfect acoustics so that massed crowds at the base could hear the leaders speaking from the top of the stairs.  The Toltecs also practised human sacrifice of a rather gruesome nature.

At around the same time on the other side of the world, another culture was also creating impressive architecture with similarly steep staircases - at Angkor Wat in the Khmer Empire (now Cambodia).  They went in for some pretty substantial stone railings, with elaborate terminations in the form of seven-headed serpents (Nagas).

Angkor Wat railing terminations
What has all this to do with Revit?  Well, in version 2013 a new feature was added to the railing functionality:  Top/Hand rail 'terminations'.  The developers probably did not have in mind representations of serpents heads - but there are plenty of modern day uses.

Revit Railing Terminations

First a quick description of how to create rail terminations in Revit, as it is very convoluted.
Step 1 - Termination Family
  • First you have to create a termination family from the '(Metric or Imperial) Railing Termination' template.  This has an inbuilt 'Extension Length' parameter.
  • Once loaded into a project, this family has a category of 'Terminations' and could be placed on its own (but you would not normally do so).  In the family browser it is listed as a subcategory of Railings (with whatever name you give it).
Step 2 - Adding a termination to a Railing 
  • Terminations cannot be added directly to railings - you have to define them as part of either a 'Top Rail' or 'Handrail' (both new features in v2013);  these can then be selected as part of a railing.  So, they can only be used if your railing has one of these new features.
Top rail type properties
Railing type properties
  • The termination will be added to the end of the top rail (or handrail), perpendicular to the rail.  Normally it will be on the end of the rail but some strange behaviour can go on there - to be described later.

  • Terminations can be used in combination with 'Extensions' - another new feature in v2013, which are a property of Top Rails and Handrails.
  • You can add an extra tread length at the base of the stair, which maintains the railing slope
  • You can also add a further extension length, which would typically be horizontal if you already added the extra tread
Extra tread plus 300mm extension as per Australian BCA

  • The 3D view of the railing will display whatever you have modelled - my ambitions for scaring people were quite modest compared with the Mayans/Toltecs/Khmers, but might be appropriate for renovating a Gothic mansion or the bat-cave.

Rail Termination Visibility

Within the family editor,  you have typical controls as expected:
  • Revit will not allow you to create subcategories, which is to be expected, as the termination is itself a subcategory.
  • None of the family Category settings make any difference to the behaviour of the family in the project, except the category itself

  • Rail terminations have standard Revit visibility settings (Plan, Front, Left; coarse, medium, fine) for selected 3d forms within the family.

The problems start once you get into the project environment:
  • Rail Terminations are visible in 3D, section and elevation - but terminations are not visible in plan.  It makes no difference what view settings you use, they are just plain invisible.
  •  If you hover the cursor over the railing, you can see the termination there
  •  Select the railing, and there it is, plain as day, but it disappears as soon as you deselect the railing
This is a bug that has been in the software since Terminations were introduced in v2013.  It has been reported to Autodesk by various people and documented elsewhere (18 months ago).  There are several references to this in various forums, but they remain unanswered by Autodesk.

Terminations Terminated

The upshot of this bug is that Terminations are effectively useless to us if we want to document anything in plan.  The industry has not yet achieved the goal of supplying 3D models for final information to contractors, so we still rely on 2d documentation.
There is another bug to do with extensions and terminations in combination, which does not help matters either.
It is technically possible to use newel posts (balusters) to achieve this end, but they have all sorts of other issues - not the least of which is the difficulty of keeping them on the end of the rail, at the correct angle.

What would the ancients have done?  Well, they probably managed to build their serpent terminations without 2D plans, but they would not have been impressed by the lack of attention to detail shown by modern day software developers.  The Mayans and Khmers might have let them off with just a severe scolding.  But I'm not so sure about the Toltecs?  Did I mention that they introduced human sacrifice?

Antonio Gaudi probably would not have been very impressed either.
Staircase termination by Antonio Gaudi, Barcelona

Naga handrail terminations - Wat Hanchey, Cambodia

More about top rails:
Top Rail Properties in Revit Railings
Weird Stuff in Railings - part 1 - Top Rail Transitions
Weird Stuff in Railings - part 2 - Railing Extents
Weird Stuff in Railings - part 3 - Rail Offsets 
Weird Stuff in Railings - part 5 - Rail Extension Length

Saturday, 11 April 2015

Moves with Nearby Elements (Walls) - The Rules

In my previous posts on the Revit feature 'Moves with Nearby Elements' I described when you might use this property:  for keeping Area Boundary Lines or non-hosted plumbing fixtures aligned to walls without actually locking them together.

Now we need to analyse the rules of exactly what happens when you set the property and then move the walls:

Revit Help

The Revit help files state that:
The following restrictions apply to the Move With Nearby Elements option:
  • Only straight lines that are parallel to a wall are affected by this option. It is not available for detail lines, sketch-based elements, and families.
  • For arc lines, the radius remains at a constant offset from the arc wall, even if the radius of the wall changes. . . . .
  • If you copy a line or component that is set to move with nearby elements, the copy also moves with the element.
  • If you move the line or component toward another element, it then moves with that new element. For example, suppose that a straight line moves with a wall. When you move the line closer to another straight wall with which it is parallel, the line now moves with the new wall. However, if you place a wall closer to the line or component, it does not move with that new wall. It retains its movement with the first wall.
These statements are full of contradictions and puzzles.  Let us look at each case in turn to figure out what it means:

Moves with Elements

When Revit refers to moves with 'Elements' in this context,it means 'Walls' and only Walls.


1. Orientation
  • Only certain categories and non-hosted types of components will move with walls - refer to 'Moves with Nearby Elements' for details of which ones.
  • Components must be parallel or perpendicular to the wall - in the following example, all four components have "Moves with nearby Elements' set. 
  •  The components at 0 and 90 degree rotations move with the wall;  the one at 45 degrees and a random angle do not;  this appears to be still the case, even if the family has a 45 degree angled strong reference plane in it, that is parallel to the wall
  • It seems to be a fundamental system rule that does not depend on the content of the family.  Even if the original geometry and front/back/left/right reference planes are removed from the family, and replaced with geometry at 45 degrees (parallel to the wall), it still only works at parallel and perpendicular orientations of the original component template (to the wall).
  •  The wall itself can be at any angle, and the components must still be parallel or perpendicular to it

2.  Rotation
  • If a wall is rotated, the components do not move or rotate with it

3. Origin
  • The origin of the component (placement point) is important relative to the end points of the wall:  The origin point must be within a zone parallel to the ends of the wall when the 'Moves with Nearby Elements' property is actually set.
  • If the component origin is placed outside the wall extents it will not move with the wall
  •  If the component origin is placed within the wall extents when set it will move with the wall
  • The extents of the component itself are irrelevant. 
  • But, if the wall extents are changed after the property is set, it goes by the original relationship of the component origin and wall extents - this is one of the reasons why it seems so unpredictable to the end user. A component may still move when its origin is outside the wall extents, if the wall extents are changed after the setting is applied:
  •  The wall extents could be well away from the component origin
  • To reset it and prevent this from happening, you would need to set the property to off, and then back on again
  • The origin of a component appears to mean the placement point of the component, not by the original x=0, y=0 origin - normally these are one and the same, unless someone changes the placement point by setting reference planes to define the origin
4. Move / Copy
  • If you Move a component (that already has its property set to 'Moves with Nearby Elements') from outside a wall's extents into the wall extents, then that component is treated as if its property has been reset - so it will move with the wall even though it was not moving with the wall prior to relocation.
  • If you Move a component (that already has its property set to 'Moves with Nearby Elements') from within a wall's extents to outside the wall extents, then the association is broken, and the component no longer moves with the wall.
  • Similar behaviour occurs using the Copy command
This behaviour is pretty much as expected but is the opposite of what happens when you change the length (extents) of a wall so that a component moves in or out of its extents.

Straight Lines

This example shows what happens if you apply the setting to Area Boundary lines on an area plan (where Area Rules are not applied) - in the hope that your areas will stay somewhat more up to date.  Normally the lines would be placed on the face or centre of a wall, but in order to understand the rules, the line has been placed some distance from the wall.
  •  When 'Moves with Nearby Elements' is set, the lines will associate with the closest wall - in this case the free line in the middle is closer to the wall on the right.  When the right hand wall is moved, so is its associated line.

  •  Undo the wall move, then move the line so it is closer to the left side wall
  • The line re-associates itself to the wall on the left as it is closer - as can be seen when the left wall is moved
  • Check this by trying to move the right-hand wall again - the association was broken so it does nothing
  • Undo the moves, so that the line is associated with the right wall again;  move the line so it is equidistant
  • Try moving each wall - in this situation, it will remain associated with the last wall it was linked to (right), even though both walls are the same distance
  • Then move the line so it is only 1mm closer to the left wall, and it re-associates to the left wall
  • Test this out, but move the left wall so the line ends up very close to the right wall
  • Try moving the right-hand wall and see that it has not re-associated itself with the right wall even though it is much closer
  • The difference here was that the line was not moved by the user, it was moved as a result of being associated with a wall that was moved - subtle distinction!  This is yet another cause of confusion - and apparent unpredictability


If you want lines to move with the closest wall regardless of how they were manipulated, you need to reset the association:
  • Select the line (or all the Area Boundary lines in the view), and untick the 'Moves with Nearby Elements' checkbox
  • Then retick the checkbox - making sure to use the one on the Options Toolbar (not the properties palette), because of the bug that prevents the setting from working for Area (and model) lines if you use the properties palette

Arc Lines

If you have an arc wall, it is possible to set a parallel arc Model Line, Area Boundary or Room Separation Line to move with the wall - this includes changing its radius, providing it can stay parallel.
  • In this example a model line is parallel to an arc wall (with an offset of 600mm)

  •  The model line (arc) has its properties set to Move with the wall, and keep concentric
  • When the radius of the wall is increased, the radius of the model line arc is increased by the same amount;  its arc length also increases so that its extents angle remains the same
  • The same thing happens when the wall radius is reduced;  both cases assume the wall is set to 'Keep Concentric' while being changed

  • However, if the wall is not set to 'Keep Concentric' while being changed
  •  The model line remains concentric to the wall, and both arc origin points move;  the model line arc angle remains the same so its arc length changes

Reveal Constraints

The new  'Reveal Constraints' function does not work for 'Move with Nearby Elements' properties.  At first this seems logical because it is a rule-based constraint;  but then Revit does remember which order the elements were placed and the property set - so that information must be stored in the database somewhere, in which case it ought to be able to display it for us.

For more information on the use of this feature refer back to previous posts:
     'Moves with Nearby Elements
     non-hosted plumbing fixtures aligned to walls