40% OFF! — Limited Time Offer
← Back to Articles

July 19, 2026

·By El Alaoui Mohamed

Controlling Text Parameters With Revit Formulas: Dynamic Labels

Formula-driven text parameters and automatic labels in Revit

TL;DR

Text parameters accept formulas that return string literals in double quotes — usually through IF statements: IF(Is_Fire_Rated, "FD30", "STANDARD"). This turns descriptions, codes, and schedule labels into values that update themselves when the driving parameters change. The big limitation: Revit formulas cannot concatenate strings, so design label systems as fixed sets of complete phrases chosen by conditions.

Key Takeaways

  • Text formulas return string literals in double quotes: "FD30".
  • IF chains select between complete, pre-written phrases based on other parameters.
  • Formula-driven text removes the #1 schedule problem: descriptions that drift out of sync with geometry.
  • Revit cannot concatenate strings — you cannot build "900 x 2100" from two numbers in a formula.
  • Design around it: one complete phrase per condition, or separate schedule columns per value.
  • Comparisons work on text too: IF(Grade = "A", …) — but they are case-sensitive.

Every project has that schedule: the one where the description column says “FD30 fire door” on a door whose rating was value-engineered away two months ago. Text that humans maintain by hand drifts out of sync with the model. Text driven by formulas cannot drift — it reads the same parameters the geometry does.

How Text Formulas Work

A text parameter's formula returns a string literal — characters inside double quotes. On its own that just hard-codes a value, so the power comes from wrapping literals in conditions:

Rating_Label = IF(Is_Fire_Rated, "FD30", "STANDARD")

Toggle Is_Fire_Rated, and every schedule, tag, and view that reads Rating_Label updates instantly. The text is no longer data anyone maintains — it is a consequence of the model's state.

Three Real Patterns

1 — Size Category Labels

A nested IF sorts any width into a named band for schedules and tags:

Size_Class = IF(Width < 900mm, "NARROW", IF(Width < 1200mm, "STANDARD", "WIDE"))

2 — Compliance Flags

Accessibility checks read better as words than as raw dimensions:

ADA_Status = IF(Clear_Width >= 815mm, "COMPLIANT", "NON-COMPLIANT")

3 — Specification Text by Configuration

Core_Spec = IF(Is_Acoustic, "44mm solid core, acoustic seal set", IF(Is_Fire_Rated, "44mm solid core, intumescent strips", "35mm hollow core"))

Each branch is a complete, spec-ready phrase. When the family's Yes/No configuration changes, the specification text follows — no human in the loop. Chapter 7 covers the toggles driving these decisions.

Comparing Text in Conditions

Text works on the condition side too — useful when a text code drives geometry:

Frame_Depth = IF(Frame_Grade = "HEAVY", 150mm, 100mm)

Watch out: text comparison is case-sensitive. "Heavy" does not equal "HEAVY" — pick a case convention and enforce it.

The Limitation: No Concatenation

Revit's formula language cannot join strings. There is no &, no + for text, no way to build "900 x 2100" out of Width and Height inside a formula. Two design strategies replace it:

Complete phrases per condition. Instead of assembling text from parts, write every possible full phrase and let an IF chain pick one — the pattern used in every example above. It costs a longer formula but stays fully automatic.

Separate columns. In schedules, give width and height their own columns instead of one combined “size” string. Where a single combined label is unavoidable, a tag family with multiple labels side by side achieves visually what the formula cannot.

Where Text Formulas Fit in the System

Text parameters are the family's reporting layer: arithmetic (Chapter 1) computes the values, conditionals make the decisions, and text formulas translate the result into words that schedules, tags, and humans consume.

Chapter 6 of 10

Labels that update themselves

All 10 formula chapters with worked examples, HD Video Vault, and the Formula Cheat Sheet. 40% off at $18.