Thursday, June 02, 2005

Sharing Parameters - An Overview

Ready? Here we go!

The big ultimatum!

If you use them everyone in your firm must use the same shared parameter file. Big office, little office, one man firm no matter. Makes sense right? No?...maybe we need to explain them a little more?

The Explanation!

Shared Parameters are how we can talk about a piece of information (use it in a project and a family) and tell Revit that when we use this parameter we really are talking about the same thing. Time for an example you say? Funny I was just thinking the same thing...

The Example!

A door often has a feature we affectionately call "Undercut", the portion of the door at the very bottom that hopefully doesn't catch on that throw rug in the hall. Let's say you like to schedule this piece of information and you want to also make the 3D geometry of the door family show a real undercut.

It's easy to make the geometry change right? Add a reference plane, a dimension...lock this or that and add a label...good to go. But what happens when you put it in a project? You can change the Undercut parameter in the family and see it change, no worries right? But now try to schedule Undercut parameter in the field list. Why? The parameter is part of the family and the project doesn't know a thing about it.

Enter Shared Parameters to the rescue!!

Now if we back up and use a shared parameter in the door family when we apply a label to the dimension that constrains the undercut...guess what? We'll find that we now have a parameter to schedule when we load the door into the project. Why? Revit will bring a shared parameter along for the ride and allow it to be used in a project.

Umm...What if?

Now what about a door detail? If we want to schedule the relevant detail number for a door's jamb detail, that's something we aren't going to need in a family to constrain and flex geometry. It's just information right?

Time for...

Steve's Family Rule #(well, honestly, a little undecided about the number)
Shared parameters belong in a family only when it must appear in schedules AND constrain or flex the geometry in the family.

Family parameters are for constraints and flexing your geometry.

Checking for anyone sleeping!!

To add this Door Jamb Detail parameter to my door, I just add it to the door family and then load it into a project...good right? NOOOOOooooooo!!! You haven't been listening!!

Back to the Explaining!!

Information only parameters need to be added to the project and assigned to the door category as project parameters. This particular example doesn't even need to be a Shared Parameter because it doesn't need to be shared between the family and the project. It is only relevant in the project. Unlike the Undercut parameter which has a role in both the family geometry and the project schedule data. Think of the width or height parameters that are built into families as a system or native shared parameter that the "factory" builds for us. Shared parameters are the user created version of these.

Clear as mud?

Next should I outline how to actually do it?

The big Oh by the Way!!

When I proclaim you have to use the same file, it's very true. But you can have many files as long as they don't declare the same parameters. So you could have a separate file for doors and windows. But hey, why do that? They gave you the ability to group them in the same file already. Just being clear, you can use more than one file, just not for the same parameter. Oh...why? Because each parameter actually gets some code applied to it so it is unique in the world as far as Revit is concerned. In fact, don't edit the file outside of Revit...the file tells you not to! How do I know? Sorry I can't admit that I opened one and saw the warning...oops I just did?

The big Oops!!

If you mess up and lose the file, panic not! There is an option to export shared parameters from a project to recover. Better read the help docs for an explanation on this. I'm running out of ink!!


Anonymous said...


With regard to "Steve's Family Rule" that states you only use a shared parameter when you need to schedule AND flex geometry:

It is my understanding that only shared parameters can show up in schedules. Revit tells you so when you select one versus the other. So even if the parameter does not flex any geometry, if it needs to display in a schedule (as in your jamb detail example) it needs to be a shared parameter.

Am I missing something here?

Steve said...

Hi David,
Project and Shared parameters can both appear in Schedules. Project parameters can not appear in Tags. This is because tags are built outside the project and can't know about a project parameter. The shared parameter makes it possible to add a project parameter so that the same information can be tagged as well.

If you want the jamb detail info to appear in a schedule you only need to define a project parameter for it and assign it to the door category. All doors will provide a place to store this information automatically and you can edit it there or in your schedule.

Does this help?

Anonymous said...

Ok. So there are 3 types of parameters. Shared Parameters can show in tags and schedules, Project Paramters can show in schedules only and Family Parameters cannot show in tags or schedules, right?

When building a family, you only have access to Shared Parameters and Family Parameters. But to standardize office-wide on a door schedule that shows detail numbers, hardware sets requires the use of Project Parameters. So . . .

How do you standardize Project Parameters office wide? Build them into your project template?

Steve said... them into your project template?...

Indeed! That IS the best route!

If you find a project developing some new or better process, you can copy and paste the resulting schedule in your template to update it. Just remember to put the good schedule on a sheet, copy then paste onto a sheet in the template file.

Anonymous said...

Thanks for the info Steve.

It had not occured to me that the parameters would follow into a project attached to the schedule. I was envisioning having to recreate all these project parameters in each template then manage any change as well.

Anonymous said...

So why not just make all parameters shared? What are the cons of using a shared parameter when it's not needed?

Steve said...

How rigorous are you? Are you committed to really managing every parameter your firm wants to use diligently? Will you make sure that a request for a new parameter is added to your office Shared Parameter file immediately?

If all answers are yes then there is nothing wrong with making all your parameters shared first.

So if you consider being organized, diligently and highly responsive valuable qualities then there are no negatives. Put in that light who would disagree? 8-)

The issue usually comes down to the shared parameter file is set to read only which means that only certain people can add them which introduces control issues and committees to decide if a parameter is acceptable or desireable. These are perhaps necessary but it invites "end runs" around the governing authority to get "things" done.

Just something to consider!