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

Friday, 4 July 2014

Revit Repeater Instance Parameters

I mentioned in my last post that I learnt two new Revit Repeater tricks at RTC Australasia 2014 in Melbourne - both from Helen Gorina from the NY office of Perkins+Will, in her Lab "Applying Math and Logic to Facade Design".

The second trick was to do with how to access instance parameters of components in a repeater - I had already worked out one method for doing this, but Helen showed us a second way.  This concept has led me to analyse what exactly is happening with components in repeaters.

What happens to the original component when a Repeater is created?

When you select an adaptive component (or several) and turn it into a repeater, the original component disappears and new copies of it are created in a pattern.  You can select the whole repeater as one element, or you can tab-select individual components within a repeater.   When you select one of the components in a repeater, you will notice that it does not display all its normal instance parameters in the properties palette (or they may be grayed out) - so you cannot change its Mark, Comment or user defined parameters.  More of that later.

In the mass family editor (in-place or external), if you check the element IDs of two adjacent components within a repeater you will notice that they are not consecutive numbers - there will be a gap in the numbers.   eg.  ID# 85340 and ID# 85342.

So what has happened to the missing ID number between ( ID# 85341)?  It seems that Revit still has a copy of the component hidden away behind the repeater component.  You can't normally get at that hidden component.

Interestingly, if your repeater adaptive components are "Shared" and your mass family is In-Place, you can tab-select the components when not in mass edit mode - Revit will give you a different set of IDs, and these will be consecutive.  So that means that each component within a repeater has 3 element IDs - The mystery deepens.

Instance Parameters

There are also some interesting variations as to when you can or cannot see the instance parameters of selected components within a repeater:
  • If you select a component in the external mass family editor, it will normally display the type selector as "Default Component", and its instance system parameters (Mark & Comments) will be hidden (except for "Flip").
  • If you edit an in-place mass family in a project, and select one of the components in a repeater, it displays nothing in the Type Selector, and it displays user defined instance parameters, but not the system parameters (Mark & Comments).
  • If you are not in mass edit mode and you select a (shared) component within a repeater within an in-place mass family, you get quite different results again:  You can see the system instance parameters - Mark & Comments;  you can also change those values (but not the user defined instance parameters).  

And that was my trick for accessing the instance parameters of individual components within a repeater!

Helen's trick lets you get at the instance parameters within the external mass family editor:
  • Select one of the repeater components - it will list as "Default Component"
  • Change its type from the default component to the actual family/type that it was created from (show images).  Hey presto, - you can now access its parameters.  
  • This only works for external families.  For an in-place mass family it won't let you change it, sadly.

So, there are 3 different rules depending on the situation.  More complex Revit rules to learn!

To make use of this trick, you probably want to change all of the components within a single repeater.  But it is tricky to select them all in one go.  More of that in another post on this subject. . . . . Refer to Selecting Individual Components in a Repeater