Find & Clean Empty Tags in All Revit Views

Ways to Remove Empty Tags

Empty tags showing up as question marks are one of those small Revit issues that quietly waste a lot of time. They clutter views, confuse consultants, and often slip through to documentation if they are not actively checked.

In this case study, we will look at two practical ways to find and remove empty tags in Revit

• a Dynamo-based workflow that you can build and run yourself
• a faster and more complete workflow using Tagitize

The goal is simple help you clean your Revit views quickly and confidently while also understanding what is happening under the hood.

Why Your Revit View Got Empty Tags

An empty tag in Revit is usually a tag that cannot display a value from its host element. Instead of useful information like a type mark or room number, you see

• a single question mark
• multiple question marks
• or a visually empty label

These often happen when

• the tagged element has missing or unfilled parameters
• the tag is placed before data is finalised
• tag families include prefixes or suffixes that mask empty values

Finding these manually is slow, especially in large projects with many views.


Method 1: Finding Empty Tags with Tagitize 🚀

Tagitize was designed to handle all real-world edge cases.

It detects empty tags even when

• prefixes or suffixes are present
• tags appear visually empty but contain hidden text
• multiple views need to be checked at once

It also adds a review step instead of blindly deleting everything.

Finding Empty Tags in the Active View

YouTube player

Using Tagitize, you can

• run Find Empty Tags from the Tagitize tab
• choose Active View
• instantly see a list of all empty tags

Each result lets you

• double click to zoom directly to the tag
• visually confirm whether it should be kept
• selectively delete only what you want

This is especially useful during QA checks.

Finding Empty Tags Across Multiple Views

YouTube player

One major advantage of Tagitize is working across views

• run Find Empty Tags
• choose Multiple Views
• select any number of plans, sections, or elevations

The results are grouped by view, allowing you to

• focus on one level or drawing at a time
• clean entire sets of views in minutes
• avoid opening views one by one

This is something Dynamo workflows struggle to handle cleanly.


Method 2: Finding and Removing Empty Tags with Dynamo

If you prefer a tool-free approach or want to understand how this works technically, Dynamo can help you identify and delete many empty tags automatically.

This method works well for most standard tags but has some known limitations, which we will cover later.

Dynamo Workflow Overview

The Dynamo script follows a clear logical process

• Collect all tags in the active view
• read the displayed tag text
• clean the text to remove duplicate characters
• detect tags that are empty or only contain question marks
• delete those tags safely inside a transaction

YouTube player

1- Create a New Dynamo Script

Start by creating a new Dynamo graph and adding a Python node. While you can edit code directly in Dynamo, many users prefer writing it in Visual Studio Code and pasting it back in. This approach improves readability and debugging, especially for longer scripts.

2- Remove Duplicate Characters from Tag Text

Revit often displays empty tags using repeated question marks. To make detection easier, the script first removes duplicate characters from the tag text.

The logic is:

• loop through each character in the string
• keep only the first occurrence of each character
• return a simplified version of the text

This makes ??? and ? behave the same in later checks.

3- Collect All Tags in the View

Revit uses two main tag classes

• Independent Tags
• Spatial Element Tags

The script creates a logical OR filter to collect both types and applies it to an element collector for the active view.

4- Identify Empty Tags

For each collected tag the script

• reads the Tag Text property
• removes duplicate characters
• checks if the result is empty or just a question mark

If the condition is met the tag ID is added to a delete list.

5- Delete the Tags Safely

Before deleting anything the script checks that the delete list is not empty. This avoids runtime errors. A transaction is then opened and the Delete command is called using the collected IDs. The script finally outputs a list of deleted tag IDs for confirmation.

Limitations of the Dynamo Approach

While this workflow is powerful, it has an important limitation: Tags with prefixes or suffixes in their family definitions may not be detected as empty. This is because:

• the Revit API returns the full displayed text
• prefix or suffix text is included even when the main value is empty
• the script sees extra characters and assumes the tag is valid

This commonly affects wall tags and custom annotation families. Unfortunately, there is currently no reliable way in Dynamo to strip prefix or suffix text using the current Revit API. If your tags have prefixes or suffixes, we recommend using Tagitize to ensure all empty tags are detected.


Dynamo or Tagitize: Which Should You Use

Both approaches have their place. Use Dynamo when:

• you want a free and script-based solution
• you are comfortable with Python and Dynamo
• prefixes and suffixes are not a concern

Use Tagitize when:

• you need reliable detection in all cases
• you want review and zoom to element features
• you need to scan multiple views quickly
• you want additional tagging tools beyond cleanup

More Than Just Empty Tags ✨

Beyond cleanup, Tagitize also helps with

• tagging multiple elements with optimal placement
• avoiding overlapping tags
• cycling through alternative tag positions

This saves significant time compared to Tag All and manual adjustments.

Final Thoughts

Empty tags are a small problem with a big impact on drawing quality. Whether you choose a Dynamo-based workflow or a dedicated tool like Tagitize, the important thing is to stop handling this manually.

If you want to try Tagitize, you can test it completely free and see how much time it saves on your own projects.

If you prefer learning automation, the Dynamo approach in this article gives you a solid foundation for building your own cleanup tools. Both paths lead to cleaner views, happier teams, and better Revit models 😊

Copyright © 2025 Tagitize. All Rights Reserved.