Skip to content

Family Renamer

Family Renamer provides a focused tool for renaming loaded families and family types in bulk. It supports find and replace, prefix/suffix operations, case transforms, and regex patterns to help enforce naming conventions across your project. A modeless window with live preview lets you verify every change before committing them in a single undoable transaction.

From the developer

This is a companion to Batch Rename, which handles views, sheets, and levels. Family Renamer focuses specifically on loaded families and their types. I’m still iterating on it, so if something feels off or you have ideas for new operations, open an issue on GitHub.

Find Family Renamer on the Amorphous ribbon tab in the Family Tools panel.


  • Scope Filtering - Work with all families, active view families, or selected elements
  • Category Tabs - Switch between Model and Annotation categories with chip-based filtering
  • Inline Editing - Double-click any row to manually type a new name
  • Find and Replace - Literal text replacement with optional case-sensitive matching
  • Prefix / Suffix - Add a prefix or suffix to names (idempotent, always builds from the original name)
  • Case Transforms - UPPER, lower, and Title Case applied with one click
  • Regex Rename - Pattern-based renaming with capture group support and inline error feedback
  • Batch Operations - Check individual rows or use “All visible” mode for bulk actions
  • Live Preview - New Name column shows changes before applying
  • Single Undo - All renames applied in one Revit transaction
  • Search - Filter the grid by name, new name, or category text

  1. Select scope - Choose All Families, Active View, or Selected Elements using the radio buttons at the top of the window
  2. Filter categories - Use the Model / Annotation tabs and category chips to narrow the list. Use the search box to filter further by name or category.
  3. Select target - In the toolbar, choose whether tools affect Families, Types, or Both
  4. Transform names - Use the tool buttons to modify names:
    • Find and Replace for text substitution
    • Prefix / Suffix for adding standard prefixes or suffixes
    • UPPER / lower / Title Case for case normalization
    • Regex for pattern-based renaming with capture groups
  5. Review - Check the New Name column for previews (modified rows are highlighted in purple)
  6. Apply - Click Apply to rename in Revit as a single undoable transaction

Choose which families appear in the grid by selecting a scope at the top of the window.

ScopeDescription
All FamiliesEvery loaded family in the project
Active ViewOnly families placed in the current view
Selected ElementsOnly families from elements you have selected in the model

The window provides Model and Annotation tabs. Switching tabs shows only families belonging to that category group.

Within each tab, category chips let you isolate specific categories. Click one or more chips to filter the grid. When no chips are selected, all categories in that tab are shown.

The search box filters rows by matching against the current name, new name, or category text. This is useful for locating specific families in a large list.

The Target dropdown in the toolbar controls which row types the rename tools affect:

TargetDescription
FamiliesTools only affect family-level rows
TypesTools only affect type-level rows
BothTools affect both family and type rows

The Apply to toggle controls the scope of tool operations and the final Apply action:

ModeDescription
Checked rowsTools and Apply act only on rows with a checked checkbox
All visibleTools and Apply act on every row currently visible in the grid

Click Find & Replace to expand the flyout panel.

  1. Enter text in the Find field
  2. Optionally enter replacement text in the Replace field (leave empty to delete matched text)
  3. Toggle the Aa checkbox for case-sensitive matching
  4. Click Replace All to apply

The replacement works on the New Name if one already exists, otherwise on the Current Name.

Click Prefix / Suffix to expand the flyout panel.

  1. Enter a Prefix, a Suffix, or both
  2. Click Apply to prepend and/or append to the original Current Name

Repeated applications always build from the original name, not from a previously modified name. For example, applying a prefix twice does not double the prefix.

From the developer

This was a deliberate choice. In early testing I kept accidentally double-prefixing families when experimenting with different naming patterns. Now you can tweak the prefix/suffix freely without worrying about stacking.

Click one of the case buttons in the toolbar to apply a case transformation:

ButtonResult
UPPERConverts to all uppercase
lowerConverts to all lowercase
Title CaseCapitalizes the first letter of each word

Case transforms operate on the New Name if one already exists, otherwise on the Current Name.

Click Regex to expand the flyout panel.

  1. Enter a regular expression Pattern
  2. Enter a Replace string (supports capture groups $1, $2, etc.)
  3. Click Apply to run the pattern against target rows

If the pattern is invalid, an inline error message appears in red below the input fields. Hover over the Pattern and Replace fields for tooltip examples.


Double-click any cell in the New Name column to type a custom name directly. This is useful for one-off renames that don’t follow a pattern.

When multiple rows are selected in the grid and you click a checkbox on one of them, all selected rows toggle to match that state. This makes it quick to check or uncheck groups of rows at once.

When a row has a pending rename, the New Name column shows the proposed name and the row is highlighted in purple. This preview lets you verify every change before committing.

ControlDescription
ClearResets the New Name on target rows back to empty
Undo AllClears all New Name previews across every row in the grid

Click Apply to rename all targeted families and types in Revit.

  • All renames are applied in a single transaction, so you can undo the entire batch with one Ctrl+Z in Revit
  • On success, the window reloads data from Revit to reflect the updated names
  • The status bar at the bottom shows the count of modified items, checked items (in “Checked rows” mode), and items ready to apply

ScenarioRecommended Approach
Naming standards enforcementUse UPPER to convert all family names, then add a standard prefix with Prefix/Suffix
Prefix cleanupUse regex with pattern ^OLD_ and empty replacement to remove an old prefix, then add a new one with Prefix/Suffix
Batch type renamingSet Target to Types and apply find and replace across all type names
Selective renamingCheck specific rows and apply transforms only to those
Category-specific renamingUse category chips to isolate a single category, then apply transforms to that subset

  • Combine tools in sequence - For example, use UPPER first, then Prefix/Suffix to achieve names like PREFIX_UPPERNAME
  • Use search to locate families - The search box helps you quickly find specific families before applying transforms
  • Preview before applying - Always check the purple-highlighted New Name column before clicking Apply
  • Use “All visible” for bulk operations - When your filters already show exactly the rows you want to rename, switch to All visible mode instead of checking rows individually
  • Work by category - Use category chips to isolate one category at a time for focused, controlled renaming
  • Take advantage of regex - For complex naming patterns like CATEGORY-DESCRIPTION-TYPE, regex with capture groups provides precise control

LimitationDetails
In-place families excludedIn-place families do not appear in the list and cannot be renamed through this tool
System families not includedWalls, floors, and other system families cannot be renamed via the Revit API and are not listed
Duplicate name conflictsRenaming a family to a name that already exists in the project will fail at the Revit API level
Modeless windowThe document can change while the window is open. Changing scope will refresh the data, but external changes may require a manual refresh.
From the developer

System families can’t be renamed through the Revit API, but in-place family support is something I can add. If that would be useful, let me know on GitHub. In the meantime, Convert In-Place can turn them into standard loadable families first.


Possible causes:

  • The family is an in-place family (these are excluded)
  • The family is a system family (walls, floors, etc.) which cannot be renamed
  • The current scope does not include the family (e.g., Active View scope when the family is not placed in the current view)

Solution: Switch to All Families scope to see every loaded family. Verify the family is a loadable family, not in-place or a system family.

Rename fails with “name already exists”

Section titled “Rename fails with “name already exists””

A family or type with the proposed name already exists in the project. Revit does not allow duplicate names within the same family for types, or duplicate family names within the same category.

Solution: Undo the entire batch in Revit with Ctrl+Z. Rename or remove the conflicting family first, then retry.

The regular expression pattern contains invalid syntax. An inline error message in red appears below the input field.

Solution: Check your regex syntax. Hover over the Pattern field for tooltip examples. Common issues include unescaped special characters (., (, ), [, ]). Use \. to match a literal period.

The window reloads data from Revit after a successful Apply. If changes seem missing, the scope may have changed or filters may be hiding the renamed rows.

Solution: Clear all filters and set scope to All Families to see the full list.