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?
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...
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 it...no 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.
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?
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!!