BILT Speaker

BILT Speaker
RevitCat - Revit Consultant

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.

Components

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

Reset

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

Monday, 6 April 2015

Stairway to Heaven - RevitCat goes to RTC Gold Coast

 
 This year I will be running a Lab Session  titled 'Stairway to Heaven' at RTC Australasia 2015 at the Gold Coast. 

This session will look at ways of making the new Stair & Railing tools in Revit work better for you.  It will start you off on the 'Stairway to Heaven' instead of languishing in the 'Stair & Railing Hell' that most Revit users live in.  *


* Disclaimer:  The aims stated above are of course restricted by the limitations of Revit software.


Stairway to Heaven


In this hands-on lab session I will be teaching new material, not previously shown on this blog, and elaborating on some concepts similar to those already described - including:
  • How to create BCA compliant winder stairs in Revit (Building Code of Australia)
 
  • Using the sketch tools for unusual shaped stairs
 
  • How to make railings do what you want in Revit
 
  • How to eliminate warnings from multistorey stairs and railings
 



So, if you want to learn more about stairs in Revit, and how to bend railings to your will, why not attend the next Revit Technology Conference on the Gold Coast, 14-16th May 2015




Wednesday, 1 April 2015

Revit Railing Selection Fix in v2015 R2

Last year I described how the selection filter was really hard to read because the railing subcategories were jumbled up with other categories.

old Revit 2013/14 selection filter

The sorting of selected items in the properties palette drop-down list was similarly confusing
old Revit 2013/14 properties category list


Good News
This has been fixed in Revit 2015 R2, which means for those few people not yet on subscription, it will no doubt show up in Revit 2016.
Selection Filter - Revit 2015 R2

Properties Palette - Revit 2015 R2

This may be a minor issue, but it helps to make Revit easier to work with - we are less likely to make mistakes if we can isolate all the railing subcategories in a list.

Friday, 27 March 2015

Moves with Nearby Element - Non-Hosted Revit Families

Following on from my previous post about 'Moves with Nearby Element' in Revit, here is another use case for this under-appreciated feature:

Plumbing Fittings: Use 'Moves with Nearby Element' Instead of Wall-Hosting

The logical Revit methodology for placing plumbing fittings is to make them "wall-hosted" - and that is how most of the Autodesk supplied libraries are set up.  The obvious reason for doing this is the fact that wall-mounted basins, WCs, urinals etc need to be attached to a wall - and when that wall moves, so should they.
However, many long-time Revit users and BIM managers are trying to avoid using wall-hosted families for a number of reasons:
  • Wall-hosted plumbing fittings will be deleted if the host wall is deleted - seems logical, but how many times has this happened unintentionally?  It is especially easy to do when the fitting is off screen on a very long (or high) wall.  The plumbing fittings may have all kinds of data and annotation attached so it is no joke replacing them.
  • If the wall and fittings are part of groups, you will almost certainly run into trouble sooner or later.  Someone will inevitably put the fitting in a group, but not the host (or vice-versa);  worse still, they could be included in different groups.  Either way, a hosted object and its parent not in the same group becomes very hard to manage, and you will most likely end up with conflicts of group ownership or ghosted plumbing fittings (excluded from an instance of the group) - a very messy situation that only expert Revit users can resolve.
  • Non-hosted plumbing fittings can be used in varied situations like in vanity units without needing to have two versions (non hosted & wall-hosted), or nested families
There are a number of ways that people avoid these issues:

Face-Hosted
One technique is to create "face-hosted" components, which do not get deleted when their host is deleted.  I am not so keen on this option for a few reasons:
  • 'Always vertical' is not an option with face-hosted families, so they may become hosted directly to floors instead of walls, in the wrong plane.  
  • They also need to be modelled in the 'wrong' orientation, which is counter-intuitive
  • The plumbing fittings can end up above the view range cut-plane, if you don't adjust the height first (there are clever ways to avoid this with non-hosted)
  • The extra placement options can cause confusion 
Face-hosted placement options
Non-Hosted
My preferred technique is to use non-hosted plumbing fittings, in combination with 'Moves with Nearby Element'

Advantages:
  • Components are not deleted when wall is deleted
  • No issues with missing hosts in groups, automatically excluded members, or group edit ownership clashes
Disadvantages:
  • Components will not rotate with the wall when the nearby wall is rotated
  • User needs to remember to tick the checkbox (either during or after placement)
 
  • Angled placement is not so simple - user needs to force component rotation (using the space bar):
Angled placement
  • Hover the cursor over the wall edge
  • Press the space bar while wall edge is highlighted - component rotates to match wall
  • It even works on curved walls

Work Plane-Based
Some people like to make their (non-wall-hosted) plumbing fittings 'Work plane based', so that they can avoid issues with them getting 'stuck' to floors that Revit automatically hosts them to - an issue that occasionally shows up when components are grouped and copied to other levels - but that is a bug, which should not happen.


Unfortunately work plane-based families do not allow 'Moves with Nearby Element' so you cannot combine the two techniques.

Sunday, 22 March 2015

Revit Moves With Nearby Elements Command

I was recently looking at ways to streamline the production of Area Plans in Revit - in particular how to keep them up to date as the model changes.  I found some interesting behaviour when using Revit's 'Moves With Nearby Elements' command - a very under-used capability.

Many Revit experts do not like to use this command because the end results can be very unpredictable.  I figured it might be worth trying to make it more predictable by documenting its behaviour.  But first, an analysis of why you might use this command instead of other methods of locking things in Revit - in particular Area Boundary Lines locked to walls:

Locking Area Boundary Lines in Revit

  • When you first create an area plan, it asks if you want to 'Automatically create area boundary lines associated with all external walls?'  - I always say NO to this because it almost certainly won't end up with what I want.
  • Then when you start placing Area Boundary Lines, it assumes that you want to 'Apply Area Rules' - presumably these are USA based area measurement rules?  It has a checkbox in the options toolbar that is always ticked.  This drives me nuts as I always have to untick it, as I do NOT want my area lines locked to the centreline of walls

  • I would normally use the 'Pick Lines' tool, so I can pick wall edges.  At this stage you have the option to lock the lines to the wall edges so they will move when the walls move (in the Option Toolbar).  Conventional Revit wisdom says that for Area Boundaries, you should not tick this box because you would end up with way too many explicit constraints in the model - any changes to the model have to check the explicit constraints, and if you have too many your model gets bogged down.  In addition, any changes to the model that conflict with explicit constraints will evoke warning messages, and may even prevent you making the changes [the worst example of this is when sketch lines inside a floor or ceiling are locked to walls and impossible geometry stops you in your tracks].
  • Using the 'Align Tool' and then locking Area Boundary lines to walls would have similar issues - way too many constraints, potentially hundreds for each area plan.  Such locks should be reserved for a few very important constraints.
  • 'Moves With Nearby Elements' is an implicit kind of locking - the relationship is controlled by a set of (somewhat mysterious) system rules, rather than a user defined relationship.  However, the rules are not as simple as "moves with nearest appropriate wall" - it does depend on the order of placement or moving of elements, and also the timing of setting the 'Moves With Nearby Elements' property, so Revit must be storing some kind of information about "when" the implicit relationships came into being [it would be great if someone from the 'Factory' could comment].  I will try to explain this later.
My current workflow for Area Boundaries is to place the lines using the pick line tool, but not set up any locks.  Then there is always a checking/updating process to be performed before printing drawings or exporting area schedules - a lot of aligning boundary lines to walls needs to take place.  Not ideal, but common practise.

But why not use the 'Moves With Nearby Elements' method?  It could take care of the majority of updates without bogging down the model - making the checking process much faster.  If you use this method, you need to understand the rules and bugs.


When to use 'Moves With Nearby Elements'

Firstly, this functionality is wrongly named - it should be 'Moves With Nearby Walls', as that is what it does, and the Revit help file states:
"Use the Moves with Nearby Elements option to specify that lines and components near a wall move a corresponding distance whenever that wall is moved"

It is only available for certain Revit elements: 
Revit help rather unhelpfully states that:
"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"  -
  • what is the difference between components and families in this context?
  • In fact it does work for parallel arcs (not just straight lines), as described in the next line of the help notes.


It does work for:
  • some external families (components) - non-hosted only (but not all categories)
  • model lines, 
  • Room separation lines, 
  • Area boundaries,
It does not work for:
  • Hosted external families (face-hosted, floor, wall or ceiling hosted etc)
  • Work plane based external families
  • Columns and structural column families
  • Adaptive components
  • System families (walls, stairs, railings etc)
  • Sketch lines within system families
  • In-Place families (even if they contain a reference plane), despite the fact that the properties palette has the check-box available (but option toolbar does not) 
  • Detail components or lines
  • Annotation of any kind (symbols, tags,  regions etc)

How to use 'Moves With Nearby Elements'


When placing an eligible component or lines, the properties palette will have a checkbox for 'Moves With Nearby Elements' - so you can set it before placing elements.


You can also select an element(s) and apply the setting by ticking the same checkbox in the properties palette after the element has been placed.

In addition to this there is a checkbox that appears on the options toolbar when you select an element that is eligible for this setting.  In theory it makes no difference which checkbox you tick, it should apply the rules to the selected element(s).  In reality there are some bugs to watch out for (see below).

To see what actually happens when you apply this setting, as well as my take on the rules that they follow refer to my post on The Rules

Bugs in 'Moves With Nearby Elements'

There are three bugs in the software that I know of - each making this feature seem even more unpredictable in its operation:

Bug 1
In Revit 2013 and earlier, if you selected already placed elements and applied the setting using the checkbox in the properties palette (dialog box), then the setting just plain did not work.  If you ticked the checkbox in the options toolbar, it did work.  once applied there is no way of telling which checkbox was used.   I reported this bug to Autodesk a few years back, and I notice that this has been fixed for most element types in v2014 and later.

Bug 2
I just discovered that in Revit 2015, the bug described above had still not been fixed for Area Boundary lines and Model Lines.  I have reported this but it is not likely to be fixed for a while yet.  The rule here is that you should either tick the checkbox before placing the Area Boundary lines, or else use only the options toolbar for selected area boundary lines.

Bug 3
Not sure if this is a bug or just a UI inconsistency - In-Place families have the checkbox only in the properties palette, not on the Options toolbar.  Regardless of whether it is supposed to be there or not, the setting does not work.

For more information on this feature refer to other posts:
- Non-Hosted external Families
- Moves with Nearby Elements - The Rules