AECbytes Tips and Tricks Issue #58 (Aug 11, 2011)
Dan Stine, CSI, CDT
Registered Architect and Author
Revit has many features which are unique when compared to other building design programs; one of these is Shared Parameters. The big idea with Shared Parameters is to be able to manage parameters across multiple projects, families and template files. This feature allows Revit to know that you are talking about the same piece of information in the context of multiple, unconnected files. This article will cover the basics of setting up Shared Parameters, some of the problems often encountered and a few tricks.
The main reason for using Shared Parameters is to make custom information show up in tags; however, there are a few other uses which will be mentioned later. In contrast, a Project Parameter is slightly easier to make in a project but cannot appear in a tag; Revit has no way of knowing that the parameter created in the family (info to be tagged) and the parameter created in the tag are the same bit of information. Both Project and Shared Parameters may appear in schedules.
The image below depicts the notion of a common storage container (i.e., the Shared Parameter file) from which uniquely coded parameters can be loaded into content, annotation, and projects, thereby creating a connected common thread between several otherwise disconnected files.
Creating a Shared Parameter is fairly straight forward; managing them afterward is where some get into trouble. Select Manage > Shared Parameters from the Ribbonto open the Edit Shared Parameters dialog box. This dialog basically modifies a simple text file, which should not be edited manually. If a text file has not yet been created, you will need to select the Create button and provide a file name and location for your Shared Parameter file.
It is important to keep in mind that this file will be the main record of all your Shared Parameters. From this file, you create Shared Parameters within Projects, Templates and Families. Therefore, I recommend you have only one file for the entire firm (even if you have multiple locations). Of course, there is always an exception to the rule. This single file should be stored on the server and the software deployment should be set up to automatically point user computers to the Shared Parameters file. This can also be done manually by clicking the Browse button in the Edit Shared Parameters dialog.
Once a Shared Parameter is loaded into a project, template or family, the text file is no longer referenced. So you technically do not need to send this file with your project file when transmitting to a consultant or contractor.
The name of the file should be simple and easy to find. You should create a new text file for each version of Revit you are using—include this in the file name. Some newer parameter types will cause older versions of the software to reject the text file.
In the Edit Shared Parameters dialog box, you can easily create Groups and Parameters. Groups are simply containers, or folders, used to organize the multitude of parameters you will likely create over time. When starting from scratch, you must first create one Group before creating your first Shared Parameter.
To create a new Group, click the New button under the Groups section. In a multi-disciplinary firm, you should have at least one group for each discipline. Parameters can be moved around later, so don’t worry too much about that at first.
Clicking the New button under Parameters allows you to create a new parameter in the current Group. You only need to provide three bits of information, as shown below: Name, Discipline, and Type of Parameter. In this example, we will create a parameter called “Clear Width” which will be used in our door families (but which can be used with other categories as this is not specified at this level). The other standard options, such as Instance versus Type, are assigned when the parameter is set up in the project or family.
The Discipline option simply changes the options available in the Type of Parameter drop-down, which, in turn, lets Revit know what type of information will be stored in the parameter you are creating. Many programing languages require parameters to be declared before they are used and cannot later be changed. Revit is basically a graphical programming language in this sense.
When a new Shared Parameter is created, a unique code is assigned to it. The image below shows the code assigned to the Clear Width parameter we just created. For this reason, it is not possible to simply create another Shared Parameters file a few months from now and have it work the same way.
Now that you have created the framework for your Shared Parameters, i.e., the text file, you can now begin to create parameters within content. The next section covers creating Shared Parameters in project files.
Open a family file—in this example, we will open the Single-Flush.rfa file. Select the Family Types icon. Click the Add button on the right. Now choose Shared Parameter in the Parameter Properties dialog that opens up, as shown below, and then the Select button. This will open the shared parameter text file previously created. Select “Clear Width” and then OK.
Now you only have two bits of information left to provide in the Parameter Properties dialog. Specify whether this is a Type or an Instance parameter; also, specify the option for Group parameter under, which controls which section the parameter shows up under.
Notice how the bits of information specified in the Shared Parameters file are grayed out here? They cannot be changed, as this would cause discrepancies between families and project files. This information is essentially “hard wired” and cannot be changed.
Once the parameter has been created in the family, it can be used just like a Family Parameter. In this example, we created a formula to subtract the frame stops and the hinge/door imposition on the opening, as shown in the Family Types dialog below. Keep in mind that this value could now appear in a custom tag if desired, thus listing the Clear Width for each door in a floor plan. Maybe the code official has required this. Using Shared Parameters is the only way to achieve this, short of using dumb text.
Next we will look at creating a door tag that lists the clear width. This is similar to the steps just covered for the door family, as a tag is also a family. The only difference is that this parameter will be associated to a Label.
Open the default Door Tag.rfa family. Do a Save As and rename the file to Door Tag - Clear Width.rf. Delete the linework (if desired). Select the text and click the Edit Label button on the ribbon. In the Edit Label dialog, you need to create a new parameter by clicking the icon in the lower left (see image below). Your only option here is to select a Shared Parameter; as previously mentioned, only Shared Parameters can be tagged. Once the new parameter is created, click to move it to the right side of the dialog, in the Label Parameters column. Next, select the original Mark parameter and remove it. Finally, edit the Sample Value to something like 2’-10” – this is what appears in the family to give you an idea of what the tag will look like in the project.
Note: The Mark parameter could be left in the tag if you wanted both the Mark and Clear Width to appear together. The other option is to have two separate tags which can be moved independently. Keep in mind that it is possible to tag the same element multiple times. In this case, you would have two door tags on the same door—each tag being a different type.
Load your new door and door tag families into a new project file. In the next section, you will see how these work in the project environment.
Now that you have set up your content and tags, you can use them in the project. First, draw a wall and then place an instance of the Single-Flush door (turn off Tag on Placement). Select the door and notice that the Clear Width parameter is showing up in the Properties palette; it is an Instance Parameter. Add another door to the right of this one and change the width to 30” via the Type Selector. Notice the Clear Width value has changed.
Next, you will tag the two doors. Select the Tag by Category icon from the Quick Access toolbar. Uncheck the Leader option and select each door. In the image below, the tag was also set to be Vertical via the Options bar. If the tag placed is the door number, select the door tag and change it to the Clear Width option via the Type Selector.
Note: if the text does not fit on one line, you have to go back into the family and increase the width of the text box and reload the family into the project.
Only content which contains the Shared Parameters will display the parameter placeholder in a project. Try loading another door family (e.g., Double-Flush) into your test project without changing it in any way. Place an instance and then notice the Clear Width option does not appear in the Properties palette. This means that all content must have the Shared Parameter added to it. It is possible to create a Project Parameter in the project/template file, but you have to specify Instance or Type. If this varies, you cannot use a Project Parameter. The Project Parameter takes precedence and will change loaded content.
Selectively associating parameters with content is a great trick when it comes to certain categories that have a variety of items: categories such as Furniture or Mechanical Equipment. Only loading Shared Parameters into file cabinets or air handling units (AHU) will ensure that those parameters do not appear in your lounge chairs or VAV boxes. I first learned this trick a few years ago from the Revit MEP guru, Plamen Hristov.
Note: This also works with Family Parameters, but this information cannot be tagged or scheduled.
A number of problems can be created when Shared Parameters are not managed properly. The most common is when two separate Shared Parameters are created with the same name. This often happens when new users delete or otherwise lose a Shared Parameter file. They then try to recreate it manually, not knowing that the unique code (mentioned previously) is different and Revit will see this as a different Shared Parameter. The first place this problem typically shows up is when a schedule in the project has blank spaces even though the placed content has information in it. In this case, the schedule is using one specific version of the Shared Parameter and only the content using that same version of the Shared Parameter will appear in that schedule.
The fix for this problem is to open the bad content and re-associate the parameters with the correct Shared Parameter. It is not necessary to delete the bad parameter—which is good as this could cause problems with formulas.
If you get content from another firm you are working with and they have used Shared Parameters, it is possible to export those parameters from the family editor into your Shared Parameter file. They will initially be located in the Exported Parameters group, but can then be moved to a more appropriate location. This allows that unique code to be recreated in your file.
If you have a shared parameter with the same name as another firm you are working with on the same model, it presents a problem. You will have to decide whose version to use. There are some tools one can use to add and modify shared parameters in batch groups of families. One is found in the new Extensions for Revit 2012, which is available via the subscription website. Another tool, which has much more control and options, is the Revit Family Processor 2012 from Cad Technology Center (CTC).
Using Shared Parameters is a must in order to take full advantage of Revit’s powerful features. Like any sophisticated tool, it takes a little effort to fully understand the feature and its nuances. But once you have harnessed the power of the feature and implemented it within your firm’s content and templates, you can be much more productive and have less potential for errors and omissions on your projects.
Dan Stine is a registered Architect with twenty-two years of experience in the architectural field. He currently works at LHB (a 250 person multidiscipline firm) in Duluth Minnesota as the BIM Administrator, providing training, customization and support for two regional offices. Dan has worked in a total of four firms. While at these firms, he has participated in collaborative projects with several other firms on various projects (including Cesar Pelli, Weber Music Hall – University of Minnesota - Duluth). Dan is a member of the Construction Specification Institute (CSI) and the Autodesk Developer Network (ADN) and has taught AutoCAD and Revit Architecture classes at Lake Superior College, for the Architectural Technology program; additionally, he is a Certified Construction Document Technician (CDT). Dan currently teaches BIM to interior design students at North Dakota State University (NDSU). He has presented at Autodesk University, the Revit Technology Conference and Minnesota University.
Dan has also written the following textbooks (published by SDC Publications):
AECbytes content should not be reproduced on any other website, blog, print publication, or newsletter without permission.