Sunday, 14 September 2014

Weird Stuff with Revit Railings - Part 2 - Railing Extents

We often create railings that consist of only the handrail, be it the old style rail or new (v2013) Top Rail or Handrail.  The reasons for this are varied:
  • Often we are only interested in seeing a railing in plan
  • Everyone knows that balusters in Revit railings are um, tricky, to say the least!
  • Balusters, fixings, transitions etc are incredibly difficult to get right in Revit railings so many people just do those in 2d in a section view.  Yes, very "un-Revit", but pragmatic
In Revit pre v2013, with the old style railings, this did not cause any problems aside from the usual ones of controlling railing locations.  However, from v2013 onwards, you can get all kinds of weird stuff happening, particularly with railing extents  . . . .

Top Rail Railing Extents

With the new style of v2013 railings you can still use the old method of horizontal rails, described in my earlier post on Top Rails in Revit Railings.  If you do this, there would be no issues with railing extents.
If your railing has only a Top Rail, but no balusters, no supports, no old style rails, then it will cause problems. 
No rail structure, no balusters
In this situation, the actual railing containing the Top Rail may have large extents:  In v2013 the extents will always include the 0,0,0 origin point in your project; in more recent versions the origin may vary, and may depend on whether the stair has been moved from its original location.

This problem shows up in two situations: groups and selection by click and drag.


If you create a group that contains a railing with only Top Rails, the overall extents of the group will include the extents of the railing, and hence your project origin point (in v2013).  This could result in a group with very large extents, causing all kinds of confusion.
In Revit Sundial (test version of Revit 2015 subscription enhancements, yet to be released), the code has been changed a little so that the extents do not include 0,0,0 but instead seem to include the previous location of a stair/railing that has moved.  Each time you move the stair/railing, the extents remember the previous location.  How weird is that?  Not sure when this was changed.


If you select a stair and railing by dragging across them from left to right (to include them wholly), it would normally include the stair, its sub-components, the railing and its sub-components (inc. top rails).  NB. check this in the filter selection

However, if your railing has only Top Rails, but no other sub-components, the extents of the railing would most likely be bigger so that the railings are not selected.  This is very confusing because the Top Rails are selected, which visually looks like railings are also selected - check the selection filter to see that they are not.
If Top Rails are selected, they will most likely display pins;  you will also notice that the Create Group command is greyed out - this is because Revit will not allow you to create a group that contains Top Rail sub-components, but not the parent railings.

In this situation you would need to manually add in the railings to your selection.  You might be tempted to select by dragging from right to left, which would capture the railings because it crosses their extents - but any good Revit user knows that this is seriously bad practise because it could also include hidden elements (That is the number one Autocad habit that new Revit users must unlearn!).  Once the parent railings have been added in to the selection set, the Create Group command becomes available.

Good news:  In Revit Sundial, the list of railing sub-categories has been tidied up so they are listed together by adding a "Railing:" prefix (like the stairs).  Its only a little thing, but it makes life easier - thanks Factory.

Top Rail Properties in Revit Railings
Weird Stuff in Railings - part 1 - Top Rail Transitions

Tuesday, 9 September 2014

Weird Stuff with Revit Railings - Top Rails part 1

In my previous post I described the properties for "Top Rails" in the new railing types.  Now it is time to show some of the weird differences between old and new horizontal rails.
Goose-neck Transition

Rail Transitions

The Revit help describes the "Transition" property as:
         Specifies the type of transition used in the handrail or top rail.
  • None. In a stair system that includes a landing, the inside rail will end at the nosing of the first or last tread on the landing
  • Gooseneck. Used where there are tight transitions and complex rail profiles
  • Simple. Used where there are tight transitions with a circular rail profile
What the help file does not explain is the subtle differences between these 3 options and the traditional rail transition (over which we have no control).  Nor does it explain how we further manage these transitions.
Here are some examples of what transitions you get on a half landing where the railing turns through 180 degrees on the inside.  In this example the top riser of the lower run aligns with the first riser of the upper run (not good design but common enough in tight fire-escape stairs):

Old Style railing (with the rail set to represent the handrail but with no balusters, for clarity).  Note that the rail actually breaks with vertical cuts.  No options for transition.

Top rail only - None Transition.  Revit does a slightly better job with the joins for the upper run, but still fails on the top of the lower run (but the cut is in a different location to old style railings).  However, it gives a warning message, saying that the rail is not continuous.

Top rail only - GooseneckTransition.  Would you show a railing like this to your builder?  No!  The Revit help file shows a 90 degree corner where it looks marginally less ridiculous

Top rail only - Simple Transition.  This looks exactly the same as the None transition, but does not give a warning message - so this is probably the better option to go with.

Old Style railing with the a one tread stagger in the riser alignments - better design but Revit still cannot handle it even if a builder could.

Here are the four options at larger scale with a one tread stagger of the risers on the landing:
Old style railing
Top Rail None Transition
Top Rail Gooseneck Transition
Top Rail Simple Transition

If you add both the old style rail and the new top rail at the same height, Revit does not give any error messages - it will create both occupying the same space, but with different transitions.  This won't show in plan but looks messy in 3D (even more so if you made the transition a gooseneck.
Old style railing and top rail combined

This differentiation is further complicated by the plan offsets of the rail relative to the stair edge.  All the above examples were done with the centreline of the rail being coincident with the stair edge (where the railing sketch line goes by default).
Railing centred on stair edge
If you change the plan offset so that the railing sits over the actual stair treads (and landing), you would expect the railing transition to work better as it has a little more length to make the turn in (half a railing width).
Sometimes it works better, and sometimes not. . . . .
(NB.  In order to make that horizontal offset, it is somewhat confusing - see below **).

The old style railing behaves somewhat better when you offset the railing - it gets the upper transition right but still can't cope with the lower transition even though it is plainly "buildable" in real life:
Old style railing offset from centreline
The new Top Rail option finally works in 3D when you offset the top rail by half a rail width (for None and Simple transitions).
 Top Rail offset from centreline

Aaaargh!  When you do that it gives the Non-Continuous rail warning message.  You had better check your plan view to see what it has done - yes, it breaks it in plan to give a totally unacceptable representation.
Non-continuous rail in plan
 The gooseneck transition works fine in plan, but is crazy in 3D - unacceptable again.

So it looks like we are snookered!  None of the options work effectively in both plan and 3D.  There will be more on this in a future post - perhaps a solution?  There is also much more to know about weird railing behaviour in Revit . . . . (to be continued)

How to change the rail horizontal offset

Warning: the next section will give you a headache.

**  To change the plan offset of a rail is confusing:  There is an instance property for each railing, but using instance properties for such global changes is a nightmare for inconsistency.
Not only is it unwise to use the "Tread/Stringer Offset" instance property, but it has a default value of 25.4mm (which is a nasty one inch in imperial units) - a value that you cannot pre-set, so you always get 25.4, which really should be set to zero for consistency.
There are three type properties you could use:
For the old style railings, you have to go into the Rail Structure settings and find an Offset property for each rail.  This is fairly logical (albeit hidden away) and it allows different offsets for each rail.

For the new style Top Rails, you can change the "Baluster Offset" which also moves the top rails along with balusters.  NB. this setting has absolutely no effect on old style rails.

In addition to this setting, there is also a "Hand Clearance" type property belonging to the Top Rail type , which cannot be accessed from the Railings type dialog box - you have to find it in your project browser.  This value will offset your top rail sideways, and it will change the "Projection" property (clearance plus handrail size) - so for a top rail on a stairwell it could be zero or -25mm to make it centred on the sketch line;  for a wall mounted handrail it could be about 50mm  but you would be better off using "Handrails" for that purpose, which have their own hand clearance property - it would be easier for users to understand if the two sub-categories are kept for two distinct purposes.

Headache yet?  No, well in that case you need to be a juggler, and keep those 4 horizontal offset properties coordinated for every railing situation you have - and you might just make it as a Revit model manager, or even a BIM manager.

Saturday, 30 August 2014

Top Rails in Revit Railings

Revit 2013 introduced a whole new way of building stairs.  At the same time some subtle changes were made to railings in Revit - in particular the new concept of a "Top Rail" as a separate sub-component of the railing definition.  This can cause confusion as the old rail structure still remains in Revit, and the two methods can sometimes perform the same function - but with different behaviour. . . . . .

The railings type properties dialog boxes have always been complex (particularly balusters, but that is another matter).
  • Old style horizontal rails in a railing family:

  • Horizontal Rail Structure in old style railings:
  • From Revit 2013 new properties were added:  "Top Rail", "Handrail 1" and "Handrail 2".  For the moment we are only interested in the Top Rail, which can do the same job as the highest rail (old style), including controlling baluster heights.  Even if you upgrade an old project (or template) you may not see the new properties on old railings - you have to swap them over for new railing types that are supplied in the new project templates (and then match all the other settings you want).

  • Top Rail properties in a Railing only have two settings - a height and a Type.  By default the type is set to "None", which means you won't get anything.

  • You have to select from a drop down menu to get a predefined top rail type.  You cannot change the properties of the top rail here.
  • It is the same old three-step trick in Revit:  close the dialog box, go to the Project Browser, find the new "Top Rail Type" system family (subset of Railings category) - modify, duplicate, rename etc.  It will have some interesting new properties - the most important being "Profile" where you can select a 2d profile family (another 3 steps to change that if you need to!);  other interesting properties include Extensions and Terminations, but that is for another time.
  • One other important property is "Transitions", which controls how the top rail behaves at changes of angle in the rail.  What this does will be demonstrated in the next blog post.

The new Top Rail and old Rail structure can coexist, or you can have one or the other;  you cannot have neither though, as the railing must have at least one horizontal component.  Depending on which combination you have, Revit will give quite different results, and can display some weird behaviour - to be described in following blog posts:

Friday, 11 July 2014

Selecting Individual Components Within a Revit Repeater

Repeaters in Revit are made up of an array of adaptive components that have been placed on one or more nodes of divided path/surfaces, and then arrayed using the Repeat command.  This can only be done within the Conceptual Massing Environment (CME) or the "Point World" as Andy Milburn refers to it - this means that it could be done in an external mass or adaptive family, or within an In-Place Mass family in a project. 

Once a repeater is created, Revit treats it as a single object, but you can also select individual components within the repeater. When you try to select a component, Revit will always go for the whole repeater by preference, and it can be tricky to actually select a number of individual components.  Here are some notes on the curious inconsistencies between different situations, and some hints on how to make the process easier.

Select Components Within a Repeater

  • You can hover the cursor over a component and press the TAB key to highlight it, before selecting it.  This is a standard Revit technique but it is not as easy as usual, particularly if you try to select more than one component - after picking the first component, when you press the Tab key it often highlights an element within the adaptive component or even a different component to the one that the cursor is on.
  • You cannot select components inside a repeater by dragging the cursor around them.
  • There is no command for selecting all the components in one row or column on the repeater.  It would be really useful if there was a method somewhat like selecting mullions on a curtain wall.
  • You can use the "Select All Instances" command by right-clicking on a selected component within a repeater - but it has some limitations (see next section):

Select All Instances

Different rules again, that you need to learn:
  • In the external mass family editor, you can right-click on a selected component within a repeater to pick all instances in the view or family.  This means that you could select and change multiple instances - particularly useful for resetting all back to the default family type.
  • In a project, In-Place mass (edit mode) - If you select one of components in the repeater, then right-click, both Select All Instances options are greyed out - this is seriously restrictive as this would be the most useful situation to be able to change multiple instances, particularly by view.  
  • In-Place mass (edit mode) - If you select the family type from the Project Browser, then Select All Instances you get different results, depending on what you try to do:
    • If you select a type that has been used in the active mass family, then Select All Instances Visible in View will be available - however, it just selects the whole repeater as a single entity (not the components within it) 
    • If you select a type that has not been used in the active mass family, then Select All Instances Visible in View will not be available
    • Select All Instances in Entire Project will be available whichever type you select - and it does select individual components. However, it will also select instances outside of the active mass in the project - seriously restricting what you can do
    • None of the element properties are available - this is because it selects the repeater as well as the individual components.
    • Try reducing the selection by excluding the repeater - it then displays some of the system parameters (comments and Mark), but the type selector is greyed out, even if this type has not been used elsewhere in the project. 
  • In a project, but outside the in-place mass editing environment, you can Select All Instances in Entire Project only. This means it will select components inside repeaters within in-place masses for which you cannot change the selected components to another type (because they are inside a mass) - unless you edit the mass.  It is a "Catch 22" situation.

So the end result of all this is that in a project (in-place mass) you have to select them all individually.  This can be a slow and tedious process, but there is one way to improve it slightly:

Hot Tip

The best way to quickly pick a number of components is to select the whole repeater, then isolate it in the view - then it is much easier to individually select each component in the repeater (usually no need to tab-select)
Once you have selected multiple instances of components within a repeater, you may want to change some of their properties - refer to Repeater Instance Properties