Autodesk Revit • Families and Parameters

Project Parameters — Bind project parameters to categories for project-wide data (intro)

Learn how project parameters attach custom data fields to element categories, enabling powerful project-wide scheduling and organization.

A building model with layered plans and dimension marks.
Inside this lesson 10 sections 5 questions 5 figures

SECTION 1

Historical Context & Motivation

Before Building Information Modeling (BIM) transformed architectural practice, design documentation relied on layers of two-dimensional drawings annotated by hand or through rudimentary CAD attribute systems. Tracking project-wide information—such as finish materials, cost codes, or sustainability ratings—required external spreadsheets or labor-intensive manual coordination. As BIM matured, Autodesk recognized that architects and designers needed a way to embed custom metadata directly into models, metadata that could travel with every element across every view and schedule. The introduction of project parameters in Revit addressed this gap by letting users define data fields that bind to entire categories of elements—walls, doors, rooms, furniture—ensuring consistent, queryable information throughout the project file.

1997 • Revit Technology Founded

Charles River Software (later Revit Technology Corporation) began developing a parametric building modeler that stored geometry and data in a single relational database—the conceptual foundation for all parameter types.

2002 • Autodesk Acquires Revit

Autodesk purchased Revit and accelerated its development. The platform formalized the distinction between system families, loadable families, and in-place families, each carrying built-in parameters.

2005 • Shared & Project Parameters Mature

Revit 8.0 and subsequent releases refined the parameter ecosystem, offering project parameters for file-scoped data and shared parameters for cross-file interoperability and tagging.

2015–Present • Global Parameters & Data Standards

Revit introduced global parameters and IFC-mapping capabilities, embedding project parameters even deeper into international BIM standards and interoperability workflows.

The core question this lesson addresses is deceptively simple: how do you add a custom piece of information—say, an acoustic rating or a color finish code—to every element of a given category across an entire Revit project, and how do you make that information appear in schedules? Project parameters are the answer, and understanding them is essential for any designer working within a BIM-driven practice.

SECTION 2

Core Principles & Definitions

A project parameter is a user-defined data field that exists only within the current Revit project file (.rvt). Unlike family parameters—which live inside a family definition and travel with it from project to project—project parameters are created at the project level and then bound to one or more element categories. Once bound, the parameter appears on every instance (or type) within those categories, enabling you to fill in values and schedule them. Understanding a few foundational concepts makes the entire system intuitive.

1

Category Binding

When you create a project parameter, you select which Revit categories (Walls, Doors, Rooms, etc.) it applies to. Every element in those categories immediately gains the new data field.
2

Instance vs. Type

A project parameter can be an instance parameter (unique value per element) or a type parameter (shared value across all elements of the same type). Choose based on how the data varies.
3

Data Disciplines & Types

Each parameter belongs to a discipline (Common, Structural, etc.) and has a data type—Text, Integer, Number, Length, Area, Yes/No, URL, and more—that governs how values are stored and displayed.
4

Scheduling Only (No Tags)

Project parameters can appear in schedules and be used for filtering/sorting, but they cannot appear inside annotation tags. For tagging, you need shared parameters.
5

Parameter Group Placement

You assign each parameter to a group (Identity Data, Constraints, Other, etc.) that controls where it appears within the Properties palette, keeping the interface organized.
✦

KEY TAKEAWAY

Think of a project parameter like adding a new column to a spreadsheet that tracks every piece of furniture in a building. You define the column header once—say, "Finish Color"—and every row (every furniture element) automatically gets a blank cell you can fill. The column exists only in this particular spreadsheet (this project), and you choose which sheets (categories) display it. That is precisely how binding works in Revit.

SECTION 3

Visual Explanation — The Binding Workflow

Project Parameter Binding WorkflowSTEP 1Define ParameterName, Discipline,Data TypeSTEP 2Set Instance / TypeChoose how valuesare storedSTEP 3Bind to CategoriesSelect Walls, Doors, Rooms,Furniture, etc.Bound Categories — Parameter Now Visible on Every ElementWallsFinish Color: __Acoustic Rate: __(custom param)DoorsFinish Color: __Acoustic Rate: __(custom param)RoomsFinish Color: __Acoustic Rate: __(custom param)SCHEDULE / QUANTITIES VIEWParameter columns appear → filter, sort, exportAll bound categories included
The diagram traces the three-step process for creating and binding a project parameter: define the parameter's name and data type, choose instance or type scope, then bind it to one or more categories. Once bound, the parameter appears on every element in those categories and becomes available in schedule views.

Examine the diagram from top to bottom. In Step 1, you open the Project Parameters dialog (Manage tab → Project Parameters) and define a new entry—its name, discipline, and data type. Step 2 asks you to declare whether the parameter should be an instance parameter (each placed element carries its own value) or a type parameter (the value is shared by every element of that type). Step 3 is the binding stage: you check one or more category boxes in the dialog, and Revit attaches the new field to every existing and future element in those categories. The dashed boundary at the bottom of the diagram represents the project scope—the parameter lives here and only here. Finally, the amber box at the bottom reminds us that bound project parameters become schedulable fields, which is their primary strength in documentation workflows.

SECTION 4

How It Works — The Parameter Hierarchy

Revit maintains an internal relational database where every element is an object carrying a set of parameter-value pairs. When you add a project parameter, Revit essentially appends a new field definition to its schema for the selected categories. Understanding the parameter hierarchy clarifies when to use project parameters versus other types. At the foundation sit built-in parameters—fields like Width, Height, and Level that Revit hardcodes into each family category. Above them are family parameters, defined inside the Family Editor and embedded in the .rfa file. Then come project parameters and shared parameters, both of which are user-defined but differ in portability and tag-ability.

Instance vs. Type: A Decision Framework

The instance-vs.-type decision is perhaps the most consequential choice you make when creating a project parameter. An instance parameter stores a unique value for each placed element: if you have 200 doors, each can carry a different "Installation Date." A type parameter stores a single value per family type: all "36×84 Single Flush" doors share one "Fire Rating" value. Choosing incorrectly does not cause errors at first, but it leads to data management headaches later—dozens of redundant edits if you chose instance when type was correct, or loss of granularity if you chose type when instance was needed.

CriterionInstance ParameterType Parameter
Value varies per element?Yes — each element has its own valueNo — one value shared by all elements of that type
Typical use caseInstallation date, room-specific notes, unique IDsFire rating, manufacturer, cost per unit
Editing scopeProperties palette per selected elementEdit Type dialog — changes propagate to all instances
Schedule behaviorEach row shows the individual element's valueAll elements of same type show identical value

Decision matrix for choosing instance vs. type when creating a project parameter.

Data Types Available

Revit offers roughly two dozen data types for project parameters, grouped under disciplines such as Common, Structural, HVAC, Electrical, Piping, and Energy. For Visual Arts students working primarily with interior finishes, furniture layouts, and spatial design, the most frequently used data types are Text (free-form strings), Integer (whole numbers for counts), Number (decimal values for cost or ratings), Yes/No (boolean toggles for flags like "Accessible"), and URL (links to product data sheets). Selecting the correct data type matters because Revit validates input—if you set a parameter as Integer, you cannot type "Red" into its field.

SECTION 5

Detailed Breakdown — Parameter Types Compared

Revit's parameter ecosystem includes several distinct types, and it is crucial to understand where project parameters fit among them. The diagram below maps out the four primary parameter types, their scope, and their capabilities. Misidentifying which type to use is one of the most common mistakes beginners make—especially confusing project parameters with shared parameters, which look similar in the dialog but serve different purposes.

Revit Parameter Types — Scope & CapabilitiesBuilt-inHardcoded by RevitScope: GlobalEditable: SometimesSchedulable: ✓Taggable: ✓Ex: Width, Height, LevelFamilyDefined in Family EditorScope: .rfa fileEditable: YesSchedulable: ✓Taggable: Only if sharedEx: Seat Height, FabricProject ★Defined in .rvt projectScope: Current projectEditable: YesSchedulable: ✓Taggable: ✗Ex: Finish Color, Cost CodeSharedDefined in external .txtScope: Cross-projectEditable: YesSchedulable: ✓Taggable: ✓Ex: OmniClass, UniFormatScope:All Projects.rfa Family FileCurrent .rvt OnlyExternal .txt → AnyWhen to Choose Each TypeBuilt-in:Already there — use what Revit provides before creating custom fields.Family:Data intrinsic to the family geometry (e.g., parametric dimensions).Project:Quick, project-specific metadata for scheduling — no tagging needed.Shared:Cross-project consistency, IFC export, and annotation tag content.
The four Revit parameter types compared side by side. The Project parameter (highlighted with a star) is the focus of this lesson. Notice the critical limitation: project parameters cannot be placed in tags, unlike shared parameters.

The key takeaway from this comparison is that project parameters occupy a sweet spot: they are quick to create, require no external files, and immediately populate schedules. Their one significant limitation—they cannot appear inside annotation tags—is the primary reason shared parameters exist. If you are building a door schedule that tracks custom finish codes and you never need to display those codes as tags on a floor plan, project parameters are the simplest and most efficient choice.

SECTION 6

Worked Example — Adding a "Finish Color" Parameter to Furniture

Imagine you are designing an art gallery interior. You have placed dozens of furniture elements—display pedestals, benches, reception desks—and your client wants a schedule listing every piece of furniture alongside its intended finish color. Revit's built-in Furniture parameters do not include a "Finish Color" field, so you need to create one as a project parameter.

Creating & Populating a "Finish Color" Project Parameter

  1. 1

    Step 1 — Open the Project Parameters Dialog

    Navigate to the Manage tab on the ribbon, then click Project Parameters. The dialog lists all existing project parameters. Click Add to begin creating a new one.
  2. 2

    Step 2 — Define the Parameter

    In the Parameter Properties dialog, select Project parameter (not "Shared parameter"). Enter the Name: Finish Color. Set Discipline to Common and Type of Parameter to Text. Text is appropriate here because color names ("Matte Black," "Warm White") are descriptive strings.
    Parameter name: Finish Color | Discipline: Common | Type: Text
  3. 3

    Step 3 — Choose Instance or Type

    Ask yourself: will every individual furniture element potentially have a different finish color, or does the color depend on the furniture type? In a gallery where identical pedestals may get different colors for different exhibition zones, choose Instance. If all pedestals of a given type share the same color, choose Type. For this example, we select Instance.
    Parameter grouping: Instance
  4. 4

    Step 4 — Bind to Categories

    In the Categories list, check Furniture. You could also check Furniture Systems if you are using system furniture. Optionally, assign the parameter to the group Identity Data so it appears in the Identity Data section of the Properties palette. Click OK twice to confirm.
    Bound to: Furniture | Group: Identity Data
  5. 5

    Step 5 — Populate & Schedule

    Select any furniture element in the model. In the Properties palette under Identity Data, you will now see a "Finish Color" field. Type Matte Black and press Enter. Create a Furniture Schedule (View → Schedules → Schedule/Quantities → Furniture), add "Finish Color" as a scheduled field, and the value appears in the table. You can sort and filter by this field to produce color-coded installation documents.
    "Finish Color" now appears on every Furniture element and is fully schedulable.

SECTION 7

Strengths, Limitations & Common Pitfalls

StrengthsLimitations
Quick to create—no external file management required.Cannot be displayed in annotation tags on views.
Immediately available in schedules for sorting, filtering, and exporting.Confined to the current .rvt file—does not transfer when families are loaded into other projects.
Can bind to multiple categories at once (e.g., Walls and Floors together).Cannot be used in formulas within the Family Editor.
Supports a wide range of data types (Text, Number, Yes/No, URL, etc.).No GUID-based identity—if you recreate the parameter in another project, Revit treats it as a different field.
Instance or Type scope provides flexibility for varied workflows.Over-creating project parameters can clutter the Properties palette; use parameter groups wisely.

Strengths and limitations of project parameters.

⚠

Common Pitfall

One of the most frequent mistakes is creating a project parameter when a shared parameter is actually needed. If your team later decides they want a tag on the floor plan that displays "Finish Color," you cannot simply convert the project parameter—you must delete it, create a shared parameter with the same name, rebind it, and re-enter all the data. Planning ahead for tagging needs saves significant rework.
✦

KEY TAKEAWAY

Think of project parameters as custom sticky notes you can attach to every element in a category—fast and easy, but they only exist inside the notebook (project) where you placed them. If you need those notes to appear on a poster (a tag in a view) or travel to another notebook (another project file), you need the more formal system of shared parameters instead.

SECTION 8

Connection to Advanced Theory — Shared Parameters & Beyond

Project parameters are an excellent starting point, but professional BIM workflows almost always evolve toward shared parameters and global parameters. Shared parameters are defined in an external .txt file and assigned a GUID (Globally Unique Identifier), which allows Revit to recognize the same parameter across multiple project files, families, and even IFC exports. Global parameters, introduced in later Revit versions, allow project-level values to drive dimensional constraints—useful for maintaining consistent setback distances or clearance zones across an entire model. The table below summarizes the progression from project parameters to these more advanced types.

FeatureProject ParameterShared ParameterGlobal Parameter
Definition locationInside .rvt projectExternal .txt fileInside .rvt project
SchedulableYesYesNo
TaggableNoYesNo
Drives geometryNoNo (unless in family)Yes — constrains dimensions
Cross-project portableNoYes (via .txt file)No

Progression from project parameters to shared and global parameters.

As you advance in BIM practice, you will find that many firms maintain a standardized shared parameter file that ensures consistency across all projects. Understanding project parameters first provides the conceptual foundation—binding, instance vs. type, data types, category selection—that transfers directly to shared parameters. The only additional complexity with shared parameters is managing the external .txt file and understanding GUIDs. Future lessons in this series will explore shared parameters in depth, as well as strategies for parameter naming conventions and organizational standards that keep large projects manageable.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

Explain in your own words what it means to "bind" a project parameter to a category. Why is the concept of binding central to how project parameters work, and how does it differ from simply adding a property to a single element?
Show answer
Binding a project parameter to a category means attaching a new data field to every element—existing and future—within that Revit category (e.g., all Doors, all Furniture). This is fundamentally different from editing a single element's property because binding operates at the category level, ensuring consistency and enabling project-wide scheduling. Without binding, you would need to add data to each element individually, which is impractical in large models. The binding mechanism is what makes project parameters powerful: a single definition propagates automatically across hundreds of elements.

Question 2: BASIC

You want to track whether each room in your gallery project has been approved by the client. What name, discipline, data type, and instance/type setting would you choose for this project parameter? Justify your data type choice.
Show answer
A suitable configuration would be: Name = "Client Approved", Discipline = Common, Data Type = Yes/No, and Scope = Instance. The Yes/No data type is ideal because approval is a binary state—either the room has been approved or it has not. Using Text would introduce inconsistencies (some users might type "yes," "Y," "approved," etc.), making filtering unreliable. Instance scope is correct because each room's approval status is independent—some rooms may be approved while others are still under revision.

Question 3: INTERMEDIATE

Your design firm creates a project parameter called "Sustainability Rating" (Text, Instance) and binds it to both Walls and Floors. Later, the project manager asks you to add the same parameter to Ceilings. Describe the steps you would take and explain whether existing Wall and Floor data will be affected.
Show answer
To add Ceilings to an existing project parameter, go to Manage → Project Parameters, select "Sustainability Rating" from the list, and click Modify. In the Categories list, check Ceilings in addition to the already-checked Walls and Floors, then click OK. Existing Wall and Floor data will not be affected—Revit only adds the new field to the Ceiling category, and previously entered values on Walls and Floors remain intact. Every ceiling element will receive the "Sustainability Rating" field with an empty value, ready for input. This non-destructive behavior is one of the strengths of Revit's parameter system.

Question 4: APPLIED

You are designing an exhibition space with 45 display pedestals (Furniture category) that will be fabricated in three batches by different workshops. You need to track which workshop is responsible for each pedestal and generate a schedule sorted by workshop name. Walk through the complete workflow—from parameter creation to schedule output—including your instance/type decision and rationale.
Show answer
First, create a project parameter: Name = "Fabrication Workshop", Discipline = Common, Data Type = Text, Scope = Instance, Category = Furniture, Group = Identity Data. Instance scope is correct because different pedestals of the same type may be assigned to different workshops. After creating the parameter, select pedestals in the model and enter workshop names (e.g., "Studio A", "Studio B", "Studio C") in the Properties palette. Next, create a Furniture Schedule (View → Schedules → Schedule/Quantities → Furniture) and add fields: Family and Type, Mark, and Fabrication Workshop. In the Sorting/Grouping tab, sort by Fabrication Workshop in ascending order, with a header for each group. The resulting schedule provides a clear fabrication manifest, and you can export it to CSV or print it for each workshop.

Question 5: CRITICAL THINKING

A colleague argues that you should always use shared parameters instead of project parameters because shared parameters can do everything project parameters can, plus they support tagging and cross-project portability. Critically evaluate this argument. Under what circumstances would you still prefer project parameters, and what are the trade-offs of an all-shared-parameter strategy?
Show answer
While it is true that shared parameters offer superset functionality in terms of tagging and cross-project portability, an all-shared-parameter strategy introduces overhead that is not always justified. Shared parameters require managing an external .txt file, which must be accessible to all team members and version-controlled—adding administrative complexity. If the parameter is genuinely project-specific (e.g., a temporary construction phase code that has no relevance to future projects), a project parameter is faster and simpler. Furthermore, cluttering a shared parameter file with one-off fields degrades its usefulness as a standard. The best practice is a hybrid approach: use shared parameters for data that needs to appear in tags, travel between projects, or comply with firm-wide standards (e.g., OmniClass codes), and use project parameters for ad hoc, project-scoped metadata that serves scheduling needs only. The key trade-off is convenience versus future-proofing—and that decision should be made intentionally, not reflexively.

SUMMARY

Lesson Summary

Summary

A project parameter is a user-defined data field that lives within a single Revit project file and is bound to one or more element categories—such as Walls, Doors, Furniture, or Rooms—so that every element in those categories automatically receives the new field. You choose between instance scope (unique value per element) and type scope (shared value across elements of the same type), and you select an appropriate data type (Text, Number, Yes/No, URL, etc.) to govern input validation and display.

Project parameters are schedulable but not taggable—if you need values to appear in annotation tags or be consistent across multiple project files, use shared parameters instead. The creation workflow follows three steps: define the parameter (name, discipline, data type), set instance or type, and bind to categories. This system lets designers embed rich, project-wide metadata—finish colors, sustainability ratings, fabrication assignments—directly into the BIM model, making documentation more accurate and collaborative.

Varsity Tutors • Autodesk Revit • Project Parameters — Bind project parameters to categories for project-wide data (intro)