Automating Room Tag Text to ALL CAPS in Revit Using Dynamo

 

Automating Room Tag Text to ALL CAPS in Revit Using Dynamo

A Small Problem That Kept Repeating…




Hey there 👋

Recently, while working on a live project, we ran into a small but annoying hurdle. Everything in the model was shaping up nicely, but when it came to room tags, the text was not in ALL CAPS.

Individually, it didn’t look like a big problem. But when you consider:

  • dozens (sometimes hundreds) of rooms,

  • strict drawing and documentation standards,

  • and limited time before issue,

changing each room name manually, one by one, quickly becomes time-consuming and easy to mess up.

So instead of fixing it the hard way, we decided to handle it the smart way — using Dynamo.


Understanding the Actual Problem (Before Touching Dynamo)

At first glance, it’s tempting to think:

“Room tags are just text — can’t we just edit them?”

But this is where Revit works a little differently.

Room Tags don’t store text themselves.
They simply display information from the Room element, such as:

  • Room Name

  • Room Number

  • Other room parameters

This means:

  • You cannot directly edit the tag text

  • You must modify the Room parameter that the tag is reading

Once this clicked, the solution became much clearer.


The Simple Idea Behind the Solution

If:

  • Room Tags read the Room Name parameter, and

  • Dynamo can read and write parameters,

then the solution is simply:

Convert the Room Name parameter to uppercase once, and let Revit update everything automatically.

No tag editing.
No family changes.
No manual corrections.


How Dynamo Solves It

Using only core Dynamo nodes (no packages, no API, no TextElement), the workflow looks like this:

  1. Collect all Rooms in the model

  2. Read the “Name” parameter from each Room

  3. Convert the text to uppercase

  4. Write it back to the Room Name parameter

Once the script runs:

  • All Room Names become ALL CAPS

  • All Room Tags update instantly

  • Schedules and legends stay consistent

(You can add a Dynamo graph image here.)


Dynamo Logic (In Plain Language)

Rooms ↓ Get Room Name ↓ Convert to UPPERCASE ↓ Set Room Name

That’s it — simple, readable, and reliable.


Why This Approach Works So Well

This method is:

  • ✔ Fully aligned with how Revit handles data

  • ✔ Stable across Revit and Dynamo versions

  • ✔ Free from third-party package dependencies

  • ✔ Safe for production models

Because we are modifying the source parameter, every view that reads that parameter stays in sync automatically.


A Few Things to Keep in Mind

  • This action permanently updates Room Names

  • It’s best to:

    • Run the script once

    • Turn off Auto Run afterward

  • Always test on:

    • A copy of the model, or

    • A limited set of rooms first


Wrapping It Up

What started as a small formatting issue turned into a great example of how Dynamo can save time and enforce standards with very little effort.

Instead of fixing the same problem repeatedly, we solved it once — properly.

The full Dynamo script used in this workflow can be downloaded from GitHub using the link shared below.
Feel free to adapt it to your office standards or build on top of it.


Download link: GitHub

Comments

Popular posts from this blog

From Base Codes to Collectible Gold: Tracking Hot Wheels History

Blog Post: BIM Workflow – Setting Up a Central File in Revit

Why Your CAD File Disappears in Revit—and How to Fix It Like a Pro