Wednesday, July 29, 2009

Instance Parameters: The Double Agent

This is going to be particularly helpful to those of you working on large projects. Some of you may already be aware of it, but I haven't seen it documented anywhere so here goes...

I call this technique the Double Agent because the Instance Parameters discussed here will temporarily act like Type Parameters under the right conditions. Why would I want an Instance Parameter to act like a Type Parameter? you ask. Well, quite often, but not always we want to apply the same Instance Parameter value (like a comment that is repeated for MOST instances of a Family Type) to many of the same Doors, Windows, Sheets, or other families. Comments are typically Instance Parameters that you have to change one at a time. But I don't want to change comments one at a time when there are so many of the same comment value. I want them to update once and simultaniously like a Type Parameter would, without having to use a Type Parameter (because I may still want one or two comment values to remain unique. Well, how do you do it? The Answer: With Schedules

Here is the procedure. Go to your door schedule for example.

You'll notice that I have four door types (71,66,17,64). I need to add the Remark 1hr rated to types 66 & 64. Rather than enter the value one field at a time for the Instance Parameter called Remark, lets add the value to all 8 fields once and simultaniously. Here's how.

Go to View Properties... Sorting Grouping... Now make a mental note (or write it down if you wish) of the current Sorting/Grouping settings because, like a good double agent, you're going to have to restore the schedule to its original identity when we're all done. Now change the setting to what you see below.

You can isolate the From Room: Name (or Type Mark parameter). It is very important to uncheck the Itemize every instance option. This is what you'll see.

Now Type in the Remark 1HR Rated for all doors without a room name... then change the Sorting/Grouping setting back to their original state and You'll have added the Value 1HR Rated to the Instance Parameter Remarks for all doors without a room name.

These are the rules of the game: You have to sort the schedule by some Type Parameter or by some Instance Parameter with equal values already present.

Now that I have the value 1HR RATED for all of the 1HR doors, lets say I want to change the value to 1.5HR RATED. Just isolate the REMARKS parameter from the Sorting/Grouping settings and exchange the old value for the new value.

So once again, why not just make your Instance Parameter a Type Parameter? Because the Instance Parameter value you choose may not always apply to every instance of a Family Type. This is just a custom way to update multiple fields once and simultaniously.

I hope you'll enjoy exploring the many applications of The Double Agent technique.


Wim Tas said...

I posted a thread on the Revit MEP Whishes forum related to this topic.
Title of the thread: 'Type like behavior for instance parameters'

David Duarte said...

From what I can tell Revit already has this capability.

Travis Johnson said...

You can also just select all the rows in your schedule, then hit the show (or tile a floor plan next to your schedule).
Then hit the properties button, and change all of them simultaneously via the properties....basically using your schedule like a "Filter".

I Have written a little tutorial on the subject.