Understanding Revit Tags and Their Role in Documentation

Revit tags are annotation elements that extract and display parameter values from model elements—doors, windows, walls, structural framing, MEP components—directly on sheets or views. They are the bridge between the rich data stored in a BIM model and the readable documentation that contractors, architects, and engineers rely on during construction. While out-of-the-box tags cover common scenarios, custom Revit tags unlock the full potential of project-specific documentation. They let you choose exactly which parameters appear, how they are formatted, and what graphical style they use, ensuring every sheet communicates precisely the information needed, no more, no less.

A well-crafted custom tag can reduce clutter, standardize office standards, and automate repetitive labeling tasks. Instead of manually updating text or relying on generic tags that show incorrect fields, you create tags that pull live data directly from the model. That data updates automatically when element properties change, maintaining consistency across all views. This is especially critical for large projects where hundreds of tags might be used across dozens of sheets.

The Anatomy of a Revit Tag Family

Before diving into creation, it’s helpful to understand how Revit manages tags internally. Tags are annotation families, a distinct family category separate from model families like doors or walls. An annotation family lives only in project views—it has no 3D geometry. Its primary components are:

  • Label: A text element that displays the value of a parameter (e.g., Mark, Width, Fire Rating). Labels can be formatted with prefixes, suffixes, and sample values for preview.
  • Lines and filled regions: Static graphics like boxes, circles, or arrows that frame the label or provide visual grouping.
  • Visibility settings: Controls that show or hide parts of the tag depending on the view scale or detail level.
  • Type parameters vs. Instance parameters: Tags can use either, but most project tags use instance parameters so values change per element. Shared parameters are strongly recommended for consistency across families and projects.

Each tag family is assigned to a host category—for example, a door tag can only be used on door elements. Revit also supports multicategory tags, which we will cover later.

Step-by-Step: Creating a Custom Revit Tag

1. Open or Create a Tag Family

You can start from scratch or modify an existing tag family. Autodesk provides several templates (e.g., Tag Generic.rft, Tag Door.rft) located in the Family Templates folder. To begin, click File → New → Family and choose the appropriate template for the category you want to tag. If you’re tagging doors, open Tag Door.rft. For custom categories (like casework or specialty equipment), use Tag Generic.rft.

Alternatively, you can duplicate an existing tag from a project: select a tag, click Edit Family, and then save it as a new family. This gives you a working starting point with parameters already set up.

2. Design the Tag Layout

Inside the Family Editor, you’ll see a reference plane and often a small insertion point. Use Create → Label to place a label on the tag. A dialog box appears listing all available parameters for the host category. Here you can:

  • Select one or more parameters (e.g., Mark, Width, Height).
  • Arrange them in rows or columns.
  • Add prefix text, suffix text, or a sample value for design preview.
  • Set text style (font, size, bold, italic, underline).

You can also add Lines (e.g., a box around the label) using standard draw tools. For drawn elements, it’s best to lock their endpoints to reference planes so they stretch if the label text grows. For example, draw a rectangle around the label by placing two vertical and two horizontal lines, then align and lock them to the corners of the label. This ensures the tag scales properly when different instance values appear.

3. Add Parameters

Labels only work if the parameters they reference exist in the host element. If a parameter is missing from the host category, the label will show “???” in the project. To add custom data fields:

  • Use Family Types to create type-level parameters (less common for tags) or rely on existing project parameters.
  • Better yet, use Shared Parameters. Shared parameters are defined once in a text file and can be used in any family or project. They remain consistent across tags, schedules, and project parameters. To use a shared parameter in a tag label, you must first load the parameter definition into the family via Family Types → Add Parameter → Select Shared Parameter.
  • For instance, if your office uses a “Fire Rating” shared parameter for doors, you can create a tag label that displays that value. The same parameter can then appear in door schedules without duplication.

If you need to display multiple values, you can create a label that stacks them (e.g., “Mark” on top, “Width x Height” below). You can also combine parameters with static text—for example, “Type: [Type Name]” or “Size: [Width]” x “[Height]”.

4. Set Visibility and Detail Levels

Good tags adapt to different scales. In the family editor, each label and line element can have Visibility settings controlled by detail level (Coarse, Medium, Fine) or view scale. For example:

  • At coarse detail, display only the mark number.
  • At fine detail, include the full description and fire rating.

To set this, select an element, then in the Properties palette click Visibility/Graphics Overrides. Check which detail levels and scales should show the element. You can also create subcategories for lines to control their appearance through view filters.

5. Save and Load into Project

Save the family with a descriptive name: Door Tag - Mark + Fire Rating.rfa. Then load it into your project using Load into Projects (if you already have the project open) or Load into Project and Close. Revit will place the tag family into the project’s family list for that category.

6. Apply the Tag

Use the Tag by Category tool (keyboard shortcut TG) and select the desired tag family from the Type Selector. If you have multiple tag families for the same category, you can switch between them. Apply tags to elements manually or use Tag All (right-click on a view → Select All Instances → Tag All) to place tags automatically on every untagged element.

Best Practices for Robust Custom Tags

Consistency through Standardization

Define a set of shared parameters for your firm. Use them across all tag families so that the same parameter name (e.g., “Finish”) appears identically in door tags, window tags, and material tags. This prevents confusion and allows schedules to match. Create a standard tag template that includes your office’s font, line weights, and header styles. Every new tag should start from this template.

Clarity Over Clutter

A tag should communicate at a glance. Avoid stacking too many parameters. If a tag contains five lines of text, consider splitting into two tags (e.g., a primary ID tag and a smaller annotation tag for details). Use Line elements sparingly—they can make the tag noisy. Choose a font size that remains legible at the typical plot scale. For example, a 3/32″ (2.5mm) text height is usually readable at 1/4″ = 1′-0″ scale.

Automation with Shared Parameters and Formulas

You can embed simple conditional formulas in tag labels by using calculated parameters. In the family editor, add a Calculated Value parameter (type: Text) and write an if-then formula. For example:

  • if(Width > 36, “Wide”, “Standard”) – displays “Wide” for doors wider than 36 inches.
  • if(and(Fire Rating > 60, Fire Rating < 120), “1 Hr”, “Other”) – more complex logic.

Calculated values are read-only in the project (they update automatically when dependent parameters change), making them ideal for smart tags that adapt to element properties.

Testing in Multiple Views

Before rolling out a custom tag, test it in:

  • Different view scales: 1/8″, 1/4″, 1/2″
  • Different detail levels: Coarse, Medium, Fine
  • Different view types: floor plans, ceiling plans, elevations, sections
  • Views with different visibility/graphics overrides

Check that the tag does not overlap with other annotations or geometry. If you see text collisions, consider adding a Leader (in the tag family properties) or adjusting the tag’s Text margin.

Advanced Custom Tag Techniques

Multicategory Tags

Sometimes you want one tag that can be placed on different element types—for example, a “Comment” tag that works on doors, windows, and generic models. Revit allows Multicategory Tags. To create one:

  • When creating a new tag family, select the template Multicategory Tag.rft.
  • Design the label, but the available parameters will be those common to all host categories (e.g., Comments, Mark). Shared parameters can be made common by loading them into the family.
  • After loading into a project, the tag can be placed on any element that has the referenced parameters, provided the parameter exists in that category.

Multicategory tags are powerful but require careful parameter management—if a parameter is missing from a specific element, the tag shows “???”.

Nested Tags and Symbols

You can place a nested annotation symbol inside a tag family to reuse graphics. For instance, create a generic “arrowhead” symbol family and load it into your door tag. This keeps the arrow geometry consistent across all tags. However, nested labels are not supported—each label must be directly inside the top-level tag family.

Using Visibility Parameters to Create Multi-State Tags

Add Yes/No instance parameters in the tag family to control the visibility of individual line or label elements. For example, a parameter “Show Fire Rating” could be toggled per element. Then, in the family, assign that parameter to the label’s Visible property. This lets the user decide per-door whether the fire rating is displayed, all without editing the family.

To set this up:

  1. Add a shared Yes/No parameter (e.g., “Fire Rating Visible”) to the tag family.
  2. Select the label element that contains the fire rating value in the family editor.
  3. In the Properties palette, click the small “Associate Family Parameter” button next to Visible and choose the Yes/No parameter.
  4. When you load the family into the project, each tag instance will have the “Fire Rating Visible” parameter in the Properties palette. Check or uncheck it to show/hide the fire rating.

Conditional Formatting with Text Types

You cannot directly change a label’s color based on a value, but you can create multiple labels with different text styles and control their visibility with formulas. For example, create two labels: one with red text for values over 200, and another with black text for values ≤200. Use a Yes/No parameter with a formula to toggle label visibility. This gives you conditional color coding without resorting to filters.

Common Pitfalls and Troubleshooting

  • “???” in tags: The parameter name in the label does not exist on the host element. Either add a project parameter or shared parameter that matches the label’s parameter name.
  • Tag does not appear when tagging: Ensure the tag family is loaded and that it belongs to the correct category. For example, a wall tag cannot be used on a door. Also verify that the view discipline is set to show annotations (e.g., Structural tags won’t appear in an architectural view unless discipline is set to Coordination).
  • Text clips or cuts off: The label’s bounding box might be too small. In the family editor, adjust the label’s width or use a multiline label. Also check that any line borders are unlocked and anchored properly.
  • Tags slow down the model: Complex tags with many lines, filled regions, or nested families can impact performance. Keep geometry simple. Use detail level filtering to hide heavy graphics in coarse views.
  • Shared parameter not showing in label dialog: You must load the shared parameter into the tag family via Family Types before it appears in the label parameter list. Use Add Parameter → Shared Parameter and select the appropriate .txt file and parameter group.

Expanding Tag Capabilities with Dynamo and Python

For power users, automating tag creation and placement can save hours. Dynamo scripts can generate tags from external data (e.g., Excel) or apply custom parameters to multiple elements. For example, you can build a script that reads room names from a spreadsheet and creates room tags with custom names. Python nodes within Dynamo allow direct manipulation of label visibility and parameter values. However, this goes beyond basic tag creation and requires familiarity with visual programming.

For more on this, see the Dynamo BIM website or the Autodesk Revit API documentation.

Integrating Custom Tags with Your BIM Standards

A firm’s BIM standards should include guidelines for tag naming, parameter mappings, and file storage. Create a central repository for shared parameter files and tag families. Use a consistent folder structure, e.g. StandardLibrary → Annotations → Tags. Implement a review process: before a new tag is added to the library, test it in a sample project and get feedback from drafters and engineers.

Training is also key. Ensure team members understand how to load, select, and apply custom tags. Provide cheat sheets showing which tag families go with which categories, and which parameters are available. This reduces support requests and increases adoption.

Real-World Examples

Example 1: Structural Beam Tag
A typical beam tag shows the beam’s size (e.g., W12×26). But for a fabrication shop, you might want to add the weight per foot, material grade, and a unique shop piece mark. Create a custom beam tag using shared parameters for each data field. Use detail level filtering so that at coarse views only the mark is visible; at fine views the full tag appears with leader lines for crowded spots.

Example 2: Mechanical Equipment Tag
Air handling units often require tags showing model number, airflow (CFM), and service access direction. Use a multicategory tag if you also need to tag diffusers and VAV boxes with similar fields. Add a “Service Notes” Yes/No parameter to expand an additional label for special instructions.

Example 3: Door Schedule Linked Tags
Create a door tag that displays the door number and a small icon representing its fire rating (e.g., a square filled red for >1 hour). Use two filled regions with visibility control via a text-based parameter that is interpreted with a formula. This gives a visual indicator on plan without cluttering the sheet.

With the rise of BIM 360 and Autodesk Construction Cloud, custom tags can now be stored centrally and shared across project teams. Cloud-based shared parameter files and family libraries ensure every contributor uses the same tags. Additionally, tags can be linked to asset tracking systems via IFC or COBie exports. The principles of creating great custom tags remain the same, but the distribution and consistency become easier when managed through cloud services.

For more best practices, refer to the Autodesk Knowledge Network on Revit Tags and the BIM Forum for community standards.

Conclusion

Creating custom Revit tags is a fundamental skill that elevates project documentation from adequate to exceptional. By taking control of the data displayed on your sheets, you reduce errors, improve communication, and enforce office standards. The steps are straightforward: choose or create a tag family, add labels with the desired parameters, tune visibility for scale, and load into projects. Advanced techniques like conditional visibility, shared parameters, and multicategory tags give you fine-grained control. Avoid pitfalls by testing thoroughly and maintaining a centralized library. Whether you are a BIM manager building a firm-wide standard or a project engineer needing a quick custom tag, investing time in this skill pays dividends in clarity, efficiency, and professionalism across every project.