AUTODESK REVIT • FAMILIES AND PARAMETERS

Shared vs. Project Parameters — Explain shared parameters vs project parameters (conceptual)

Understanding how parameter scope governs data flow, scheduling, and tagging across your Revit projects.

Historical Context & Motivation

Before Building Information Modeling (BIM) tools became standard, architects and designers managed project data through disconnected spreadsheets, CAD attribute tables, and manual annotation layers. Each drawing existed as an isolated document with no inherent awareness of material quantities, cost data, or spatial relationships. The emergence of parametric modeling in the late 1990s and early 2000s fundamentally changed this paradigm by embedding intelligence directly into building components. Rather than drawing lines that merely represent walls, designers began placing objects that carry data—dimensions, materials, fire ratings, and more—through parameters.

Autodesk Revit, first released in 2000, was built from the ground up around this parametric philosophy. However, as projects grew in complexity and firms needed to coordinate data across dozens of families, multiple projects, and large multi-disciplinary teams, it became clear that a single type of parameter could not serve every purpose. The distinction between shared parameters and project parameters arose from this practical need: some data must travel between files and appear in schedules and tags, while other data only matters within a single project context.

1997
Parametric Technology Foundations
Charles River Software (later Revit Technology Corporation) begins developing a parametric building modeler, recognizing that architectural elements need embedded, editable data rather than static geometry.
2000
Revit 1.0 Release
The first commercial release introduces the concept of families with built-in parameters—type and instance—but data sharing across files remains limited.
2002
Autodesk Acquisition & Expansion
Autodesk acquires Revit and begins scaling the platform. The need for cross-project data consistency drives development of the shared parameter file format (.txt) and project parameter infrastructure.
2004–2008
Multi-Discipline BIM Workflow
Revit expands into structural and MEP domains. Shared parameters become essential for multi-discipline coordination, enabling consistent scheduling and tagging across architectural, structural, and mechanical models.
2010–Present
Standards & Interoperability Era
Industry standards such as COBie and IFC mandate specific data fields in BIM models. Shared parameters become the primary mechanism for exporting structured building data to facility managers and regulatory bodies.

The central question that this lesson addresses is deceptively simple: when you need custom data in a Revit project, should you create a shared parameter or a project parameter? The answer depends on how far that data needs to travel—within a single project file, across multiple families, into schedules and tags, or even between separate project files entirely. Understanding this distinction is not merely a technical detail; it shapes how efficiently a design team can extract, coordinate, and communicate information throughout the lifecycle of a building.

Core Principles & Definitions

Before diving into the two parameter types, it helps to ground the discussion in Revit's data architecture. Every element you place in a Revit model—a wall, a door, a light fixture—is an instance of a family. Families carry built-in parameters (height, width, material) that Revit defines automatically, but real projects demand additional custom data fields. A gallery might need a "UV Protection Rating" on its glazing; a theater might track "Acoustic Absorption Coefficient" on wall panels. These custom fields are parameters you create yourself, and the scope you choose—shared or project—determines how that data behaves.

1

Project Parameters

Defined within a single .rvt file, project parameters attach custom data to categories of elements (all doors, all walls, etc.). They appear in schedules but cannot appear in tags and are invisible inside the Family Editor. They exist only in the project where they were created.
2

Shared Parameters

Defined in an external .txt file and referenced by both families and projects, shared parameters maintain a consistent identity (via a GUID) across files. They can appear in tags, schedules, and be embedded directly in family definitions, making them portable and universally recognizable.
3

The Shared Parameter File

A plain-text (.txt) file that acts as a central registry of parameter definitions. Each entry stores a GUID, name, data type, and group. Multiple projects and families reference this single file to ensure parameter consistency across an entire office.
4

Parameter Scope vs. Parameter Storage

"Scope" refers to where a parameter is visible and usable—project-only or cross-file. "Storage" refers to whether the parameter applies per type (all instances of a family type share one value) or per instance (each placed element can have a unique value). Both shared and project parameters support type and instance storage.
5

GUID Identity

Every shared parameter receives a Globally Unique Identifier (GUID)—a 128-bit value that guarantees uniqueness. When Revit encounters the same GUID in two different families or projects, it recognizes them as the same parameter, enabling consistent scheduling and data exchange.
KEY TAKEAWAY
Think of a project parameter like a sticky note you attach to every painting in a single gallery show—useful for that exhibition's catalog but discarded when the works travel to a different venue. A shared parameter is more like an engraved museum accession number on the back of the frame: it travels with the artwork wherever it goes, and any institution's database can read and reference it consistently.

Visual Explanation — Parameter Scope Diagram

The diagram above illustrates how a shared parameter originates in an external .txt file and flows into both family definitions and project files, enabling tagging and cross-project portability. A project parameter (shown in the right column) exists only within its host project file and cannot be tagged or accessed in the Family Editor.

Notice the asymmetry in capabilities. The green checkmarks on the left column confirm that shared parameters—when loaded into a family—gain full visibility: they appear in the Family Editor, can be scheduled in any project that loads that family, and critically, they can drive tag labels on annotation views. The right column, representing project parameters, shows a more constrained picture. Project parameters are faster to set up (no external file needed), but they trade portability for convenience. If you are designing an exhibition space and need every lighting fixture to display its color temperature in a tag on your reflected ceiling plan, you must use a shared parameter. If you simply need an internal notes field to track which fixtures have been approved by the curator, a project parameter suffices.

How Parameters Work Under the Hood

Although Revit's parameter system is not fundamentally mathematical in the way a physics equation is, understanding the underlying mechanism clarifies why the two parameter types behave so differently. At its core, every Revit parameter is a key-value pair stored in a database table within the .rvt or .rfa file. The key identifies the parameter, and the value stores the data (a number, string, yes/no, etc.). The crucial difference lies in how the key is constructed.

Project Parameter Keys

A project parameter's key is an internal identifier generated within the .rvt file at the moment you create the parameter. This identifier is unique to that file. If you create a parameter called "Curator_Note" in Project A and another called "Curator_Note" in Project B, Revit treats them as entirely unrelated data fields—even though they share a human-readable name. There is no mechanism for Revit to recognize them as the same logical parameter because no external reference links them together.

Shared Parameter Keys (GUIDs)

A shared parameter's key is a GUID (Globally Unique Identifier) generated once and stored in the shared parameter file. This GUID follows the parameter everywhere it is loaded—into families, into projects, across machines, across offices. When Revit encounters element data tagged with a specific GUID, it can reliably match that data to the correct parameter definition. This is what enables tagging: a tag family references a GUID, and when placed on a view, it reads the value from any element that carries that same GUID.

GUID STRUCTURE
GUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (128-bit hex)
Each x is a hexadecimal digit (0–9, a–f). Example: a3f7c2d1-4e89-4b2a-9d17-6c8f1a2b3e4d. The probability of two GUIDs colliding is approximately 1 in 2122, making duplicates effectively impossible.

The Parameter Resolution Chain

When Revit needs to display a parameter value—in a schedule, tag, or properties palette—it follows a resolution chain. For a project parameter, the chain is short: Revit looks in the project's internal database for any element of the assigned category and reads the stored value. For a shared parameter, the chain can begin in the family definition (where a default value may be embedded), then be overridden at the project level when the family is loaded. This layered resolution is what gives shared parameters their flexibility: a family author can set sensible defaults, and the project team can override them without breaking the parameter's identity.

💡 Why Tags Require Shared Parameters
A tag in Revit is itself a family (.rfa) that references a parameter by GUID. Because project parameters have no GUID—only an internal project-specific identifier—a tag family has no way to reference them. The tag family and the element family are separate files; the only common language they share is the GUID from the shared parameter file.

Detailed Classification & Workflow Paths

Choosing between shared and project parameters is a workflow decision that depends on data visibility, portability needs, and team coordination. The following diagram maps the decision process visually, and the table beneath it provides a feature-by-feature comparison.

This decision flowchart walks through three critical questions. If the answer to any of them is yes—tagging, cross-file portability, or Family Editor visibility—a shared parameter is required. Only when all three answers are no does a project parameter become the appropriate choice.
Feature comparison — Project vs. Shared Parameters
FeatureProject ParameterShared Parameter
Defined inProject file (.rvt) onlyExternal .txt file, then loaded into .rfa or .rvt
Unique identifierInternal project ID (not portable)GUID (universally portable)
SchedulableYesYes
TaggableNoYes
Visible in Family EditorNoYes
Portable across projectsNoYes
Setup complexitySimple — created in Project Parameters dialogModerate — requires creating/managing the .txt file first
Exportable (IFC, COBie)Limited (requires mapping)Full support via GUID-based mapping

Worked Example — Creating and Using Both Parameter Types

Imagine you are designing a contemporary art gallery in Revit. The gallery has custom display panels (modeled as a wall-based family) and you need two pieces of custom data: a "Panel_Finish" field that must appear in annotation tags on your elevation drawings, and an "Internal_Cost_Code" that only the project manager needs to see in a schedule.

Gallery Display Panel — Dual Parameter Setup
1
Step 1 — Identify Data Requirements"Panel_Finish" must appear in tags on elevation views (e.g., "Matte White," "Brushed Aluminum"). Since tagging requires a GUID-based reference, this must be a shared parameter. "Internal_Cost_Code" is only needed in a project schedule and does not need to travel between files, so it can be a project parameter.
Panel_Finish → Shared | Internal_Cost_Code → Project
2
Step 2 — Create the Shared Parameter FileOpen Revit and navigate to Manage → Shared Parameters. Click "Create" to generate a new .txt file (e.g., GalleryParams.txt). Create a new group called "Display Panels." Within that group, click "New" and define "Panel_Finish" as a Text parameter. Revit automatically assigns a GUID. Save and close.
Shared parameter file created with Panel_Finish (GUID assigned)
3
Step 3 — Add the Shared Parameter to the FamilyOpen the Display Panel family (.rfa) in the Family Editor. Go to Create → Family Types → Add (under Parameters). Select "Shared parameter," browse to GalleryParams.txt, select "Panel_Finish," and set it as an Instance parameter (each panel can have a different finish). The parameter now appears in the family's parameter list and can be given a default value.
Panel_Finish is now embedded in the family definition
4
Step 4 — Create the Project ParameterBack in the project file (.rvt), go to Manage → Project Parameters → Add. Name it "Internal_Cost_Code," set the type to Text, and assign it to the "Walls" category (since display panels are wall-based). Choose Instance. This parameter now appears in the Properties palette for every wall-category element in this project, but it exists nowhere else.
Internal_Cost_Code available in schedules for this project only
5
Step 5 — Create a Tag for Panel_FinishCreate a new annotation tag family. In the tag's label, add "Panel_Finish" from the shared parameter list (Revit finds it via GUID). Load the tag into the project. When placed on an elevation view, the tag automatically reads each panel's finish value. Attempting to add "Internal_Cost_Code" to the tag would fail because it has no GUID—it is invisible to external families.
Tag displays "Matte White" on the elevation — workflow complete

Strengths, Limitations, and Trade-Offs

Neither parameter type is inherently superior; each serves a distinct purpose in the BIM workflow. The trade-offs center on a balance between convenience and capability. Project parameters are quick to create and require no external file management, making them ideal for ad-hoc, project-specific data. Shared parameters demand upfront planning—maintaining the .txt file, coordinating it across team members, and deciding at the family level which parameters to embed—but they unlock tagging, multi-project consistency, and robust data export.

Project parameter trade-offs
CriterionProject Parameters — StrengthsProject Parameters — Limitations
Setup speedCreated in seconds through Manage → Project ParametersMust be recreated manually in every new project
Team coordinationNo external file to share or version-controlParameters may be named inconsistently across projects
AnnotationSchedulable for internal reportingCannot drive tags or keynotes
Data portabilityContained—no risk of accidentally polluting other filesData is siloed; cannot be leveraged in other projects
Shared parameter trade-offs
CriterionShared Parameters — StrengthsShared Parameters — Limitations
Cross-file consistencyGUID ensures identical parameter identity across all filesRequires careful management of the .txt file (version control, backups)
TaggingFull tag and keynote supportTag families must be updated if the shared parameter changes
Industry standardsMaps cleanly to IFC, COBie, and other exchange formatsRequires understanding of external standards and mapping processes
ScalabilityOne definition serves hundreds of projectsShared parameter files can grow unwieldy without governance
KEY TAKEAWAY
In professional practice, most firms establish a standard shared parameter file at the office level—much like a shared color palette or font library in a design studio—ensuring every project team draws from the same vocabulary of data fields. Project parameters are then reserved for one-off, disposable data that does not merit permanent inclusion in the office standard.

Connection to Advanced Theory — Global Parameters & Dynamo

The shared-versus-project parameter distinction is foundational, but Revit's parameter ecosystem extends further. Understanding where these two types sit within the broader hierarchy prepares you for more advanced data-management strategies, particularly as projects scale toward computational design and facility management workflows.

Revit parameter hierarchy — from family-internal to programmatic
Parameter TypeScopeKey Use Case
Family ParametersInternal to a single .rfa; not schedulable unless promoted to sharedControlling geometry within a family (e.g., shelf depth that drives an extrusion)
Project ParametersSingle .rvt file; schedulable but not taggableAd-hoc metadata—status tracking, internal codes, temporary notes
Shared ParametersCross-file via GUID; schedulable and taggableOffice standards, tagging, IFC export, multi-project reporting
Global ParametersSingle .rvt file; can drive dimensions and constraintsProject-wide dimensional relationships (e.g., floor-to-floor height driving multiple elements)
Dynamo-Driven ParametersProgrammatic; can read/write any parameter type via APIBatch data population, algorithmic design, data validation scripts

As you advance, you will encounter Global Parameters, introduced in Revit 2017, which allow a single value to drive dimensions and constraints across an entire project—imagine setting one "Gallery_Ceiling_Height" value that automatically adjusts every room in the model. These are project-scoped and cannot be shared, but they provide powerful project-wide control that neither shared nor standard project parameters offer. Beyond Revit's native interface, Dynamo (Revit's visual programming environment) and the Revit API can read and write both shared and project parameters programmatically, enabling automated data workflows—such as populating hundreds of shared parameter values from a spreadsheet or validating that every element in a model has required COBie data before export.

🔭 Looking Ahead
As Autodesk moves toward cloud-based collaboration with platforms like Autodesk Construction Cloud and evolving Revit Cloud Worksharing, the management of shared parameter files is likely to shift from local .txt files to cloud-hosted, version-controlled registries. Understanding the conceptual distinction now positions you to adapt seamlessly as the toolset evolves.

Practice Problems

PROBLEM 1CONCEPTUAL
A colleague creates a parameter called "Fire_Rating" in two separate Revit projects using the Project Parameters dialog (not shared parameters). Both parameters have the same name, same data type (Text), and are assigned to the Walls category. Are these the same parameter? Explain why or why not, referencing how Revit identifies parameters internally.
PROBLEM 2BASIC APPLICATION
You are creating a custom door family for an art museum. The door needs a "Security_Level" field (e.g., "High," "Medium," "Low") that will be displayed in door tags on your floor plans. Should you use a shared parameter or a project parameter? State your choice and list two specific technical reasons.
PROBLEM 3INTERMEDIATE
Your firm manages a shared parameter file with 200+ parameters organized into groups. A new project requires a "Curator_Approval_Date" field on all Furniture category elements. This field will only ever be used in schedules within this one project and will never appear in tags or transfer to other projects. A junior team member suggests adding it to the shared parameter file "just in case." Evaluate this suggestion: what are the advantages and disadvantages of adding it as a shared parameter versus keeping it as a project parameter?
PROBLEM 4APPLIED
You are leading BIM coordination for a new performing arts center. The client requires COBie-compliant data delivery at project close-out, meaning specific data fields (manufacturer, model number, warranty duration) must be embedded in the model and exportable via IFC. The structural engineer's Revit model and the architect's Revit model both need to carry these fields on their respective elements. Outline a parameter strategy: which parameter type should be used, how should the parameter file be managed across disciplines, and what potential pitfalls should you anticipate?
PROBLEM 5CRITICAL THINKING
Consider a hypothetical redesign of Revit's parameter system in which all parameters are automatically shared (every parameter receives a GUID, even those created ad-hoc in a project). Analyze the implications of such a change: what problems would it solve, what new problems might it introduce, and how would it affect the distinction between quick, disposable project data and carefully managed office-standard data? Draw on your understanding of GUIDs, file management, and collaborative workflows.

Lesson Summary

Revit's custom data system revolves around two distinct parameter types. Project parameters are defined within a single .rvt file, apply to element categories, and appear in schedules but cannot be used in tags, are invisible in the Family Editor, and do not travel between project files. They are best suited for ad-hoc, project-specific metadata that does not require annotation or cross-file portability.

Shared parameters are defined in an external .txt file and identified by a GUID, making them universally recognizable across families, projects, and disciplines. They support tagging, scheduling, IFC/COBie export, and can be embedded directly into family definitions. The decision between the two hinges on three questions: Does the data need to appear in tags? Does it need to travel between files? Does it need to be visible in the Family Editor? If any answer is yes, use a shared parameter. Professional BIM practice typically establishes an office-standard shared parameter file, reserving project parameters for disposable, single-project data.

Varsity Tutors • Autodesk Revit • Shared vs. Project Parameters