Historical Context & Motivation
When Revit introduced its parametric family system, designers gained the ability to embed custom information—finish codes, manufacturer names, artwork dimensions—directly into the objects they modeled. Yet a frustrating limitation quickly surfaced: a parameter you created inside one family could not be read by schedules or tags in the wider project. Revit treated that data as a private note, visible only inside the component that authored it. For visual artists and designers building custom furniture, signage, or installation elements, this meant painstaking, error-prone re-entry of the same information over and over.
The shared parameter was Autodesk's answer to this fragmentation. By storing a parameter's definition in an external text file with a permanent unique identifier, Revit could recognize the same parameter across many families and across the project itself, allowing information to surface cleanly in schedules and on tags.
The gap this concept closes is deceptively simple to state yet essential in practice: how do you make a custom piece of information—one you invented for your own components—behave like a first-class citizen that Revit can schedule, tag, and report anywhere in the model?
Core Principles & Definitions
To understand shared parameters, you must first distinguish them from the two other parameter types Revit offers. A family parameter lives inside a single family and controls its geometry or behavior, but it cannot appear in schedules or tags. A project parameter can be scheduled but exists only within one project and cannot be tagged. A shared parameter alone can do both—and travel between projects—because its identity is anchored in an external file.
External Definition File
.txt file stores each parameter's name, data type, and a permanent GUID (globally unique identifier).GUID Identity
Schedulable & Taggable
Portable Consistency
Visual Explanation
The diagram below traces the flow of a shared parameter from its external definition file into a family, and finally out to both a schedule and a tag. Notice that the shared parameter file sits outside every project, acting as the single source of truth that all consumers reference.
Finish_Code once. That definition is loaded into the family, given a value, and then flows to both the schedule column and the tag—because all three reference the same GUID.Because the schedule and the tag both read the identical GUID, the value "OAK-03" you type into one chair will display consistently everywhere—no manual copying, no risk of a mismatched column reading a different, look-alike parameter.
How It Works Under the Hood
A shared parameter is not defined by a formula but by a structured record inside its text file. Understanding that record clarifies why the mechanism is so reliable. Each parameter entry contains a GUID, a name, a data type (such as Text, Length, or Yes/No), and a group assignment. The GUID is a 128-bit hexadecimal value that is statistically guaranteed to be unique.
When Revit loads a family into a project, or builds a schedule, it performs a matching operation. Rather than comparing parameter names as text, it compares GUIDs. This is the crucial behavior: the match key is the GUID, not the human-readable label.
.txt file across the team.Classifying Parameter Types
Choosing the right parameter type is a design decision with real workflow consequences. The table below classifies the three principal options by capability, clarifying exactly when a shared parameter is required.
| Type | Can Schedule? | Can Tag? | Portable? |
|---|---|---|---|
| Family Parameter | No | No | Within one family only |
| Project Parameter | Yes | No | One project only |
| Shared Parameter | Yes | Yes | Across families & projects |
The pattern is clear: if your custom data must appear in both a schedule and a tag, or must move between projects, a shared parameter is the only correct choice. For purely geometric controls that never leave the family—say, a dimension that drives a leg thickness—a family parameter remains lighter and appropriate.
- Instance vs. Type: A shared parameter can be assigned as an instance parameter (varies per placed object) or a type parameter (shared by all objects of that type).
- Parameter Group: When binding, you choose a category grouping (e.g., Identity Data) that controls where it appears in the Properties palette.
- Data Type is Permanent: Once a shared parameter's data type is set in the file, it cannot be changed—only replaced by a new definition.
Worked Example: Tagging Custom Furniture
Suppose you are designing a gallery installation with several custom bench families. You want each bench to carry a "Finish_Code" that appears both in a finish schedule and on plan tags. Let us walk through creating and applying the shared parameter.
Studio_Params.txt, to a network location the whole team can access.Finish_Code with the discipline Common and data type Text. Revit automatically assigns a GUID.Finish_Code, and assign it as an Instance parameter under Identity Data.OAK-03 as the value, then load the family into your project. Because the GUID matches, Revit recognizes the parameter project-wide.The payoff: change the value on one bench instance and both its tag and its schedule row update automatically, since they are all reading the same GUID-anchored parameter.
Strengths and Limitations
Shared parameters are powerful, but they carry administrative overhead. Weighing their advantages against their constraints helps you decide when the investment is justified.
| Strengths | Limitations |
|---|---|
| Data flows to both schedules and tags | Requires managing an external file carefully |
| Portable across families and projects | Lost or renamed file breaks the workflow |
| GUID prevents accidental data mismatch | Data type cannot be edited after creation |
| Supports firm-wide standardization | Duplicate definitions cause silent split columns |
Connection to Advanced Practice
As projects scale, teams move beyond hand-managed text files toward more robust data frameworks. Two important successors build directly on shared parameters.
| Shared Parameter (Intro) | Advanced Approach |
|---|---|
| Manually maintained .txt file | Project Standards Manager: centralized governance across models |
| Loaded family-by-family | Shared Parameter Service / Autodesk Parameters: cloud-hosted definitions |
| Values entered by hand | Dynamo / API automation: bulk population and validation |
Each advanced method still rests on the same GUID-based identity you learned here. Mastering the intro concept—why the GUID matters and how data flows to schedules and tags—gives you the conceptual foundation to adopt cloud parameters and scripted workflows without confusion later.
Practice Problems
Summary
A shared parameter is the only Revit parameter type that can appear in both schedules and tags and travel between projects. Its identity is anchored not in its name but in a permanent GUID stored in an external .txt file. Revit matches parameters by GUID, which is why the same file must be shared across a team to avoid silently split columns and mismatched data.
To use one, you define the parameter in the file, load it into a family, assign a value, and then schedule or tag it—all three consumers reading the same GUID guarantee consistent display. Family parameters cannot schedule or tag; project parameters can schedule but not tag. As workflows scale, cloud parameter services and API automation build on this same GUID foundation, making the intro concept an essential stepping stone to professional BIM data management.