BILT Speaker

BILT Speaker
RevitCat - Revit Consultant
Showing posts with label nearby. Show all posts
Showing posts with label nearby. Show all posts

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