Best Practices for Revit Naming Conventions
Rename Pro Team
Author, Rename Pro
A naming convention is only worth anything if it is written down, followed by everyone, and easy to apply. This guide gives you a convention you can copy today—field structure, code tables, and the rules that keep it consistent—plus how to enforce it automatically instead of by nagging.
Start With a Field Structure
Read a good name left to right, most general to most specific. Each part is a segment; segments are joined by one delimiter:
[Originator]_[Discipline]_[Category]_[Function]_[Description]_[Dimension]
RP A W EXT Brick-Metal 250
Why this order: names sort in the Project Browser and Type Selector as plain text, left to right. Putting discipline and category first makes everything from one trade and one element type group together automatically. Putting the dimension last means ...250, ...300, ...350 sort numerically within an otherwise identical family.
Code Tables You Can Adapt
The exact codes matter less than everyone using the same ones. Publish tables like these in your BEP and never deviate. (These are examples—adapt them to your office or project standard, then freeze them.)
Discipline (a common, project-agnostic set):
| Code | Discipline |
|---|---|
| A | Architectural |
| S | Structural |
| M | Mechanical (HVAC) |
| E | Electrical |
| P | Public Health / Plumbing |
| L | Landscape |
Category (short, unambiguous):
| Code | Category | Code | Category |
|---|---|---|---|
| W | Walls | DR | Doors |
| FL | Floors | WN | Windows |
| RF | Roofs | CO | Columns |
| CL | Ceilings | FN | Furniture |
Function / modifier: EXT exterior, INT interior, FR fire-rated, ACO acoustic, GEN generic.
If you deliver under ISO 19650, align these with the role and classification codes in your project's information standard rather than inventing parallel ones—see Improving BIM Collaboration with Standardized Naming.
The Rules That Keep It Consistent
1. One delimiter, used one way
Pick _ to separate fields and - to join words inside a field. Never mix them randomly.
- Good:
RP_A_DR_Single-Flush_915x2134 - Bad:
RP-A Door_Single Flush 915x2134
Avoid raw spaces inside coded segments—they break CSV/IFC parsing and external scripts.
2. Keep it short enough to read in a dropdown
Aim for roughly 40 characters or fewer. The Type Selector and schedule columns truncate long names, which defeats the purpose. Use abbreviations from your code tables, not free text.
3. Never use Revit's illegal characters
Revit rejects these in family type names, so a name that resolves to one cannot be applied:
\ : { } [ ] | ; < > ? ` ~
4. Drive values from parameters, not typing
The values in a name should come from the element's parameters, so the name always matches reality. When the width parameter changes, the 250 should change with it—automatically, not by someone remembering to retype it.
5. Decide what happens when a value is empty
Real models have gaps. Define a fallback (e.g., GEN) so a missing value produces RP_A_W_GEN_... instead of a broken RP_A_W__.... For Yes/No fields, emit a real token (FR when fire-rated) rather than the literal "Yes".
Common Mistakes to Avoid
- Manual numbering (
Wall-1,Wall-2): numbers carry no information and never sort the way you hope. - Encoding values you'll edit by hand into the name—they drift the moment the parameter changes. Derive them instead.
- Mixed delimiters and inconsistent abbreviations (
ExtvsEXTvsExt.): each forces a re-read and breaks filtering. - Date or initials in the name (
...JD_Mar): that's version metadata, not identity—keep it out of the type name. - No documented standard: if it isn't in the BEP with frozen code tables, it won't survive the second week.
How Each Rule Maps to Rename Pro
Rename Pro builds names from exactly these pieces, so the convention above translates one-to-one onto its Name Rules grid—each segment is one row:
| Convention need | Rename Pro control |
|---|---|
Fixed codes (RP, A, W) |
Prefix / static segment |
Shorten a value (Exterior → Ext) |
Keep Start / Keep End |
| Field delimiter | Separator column (spaces shown as ␠) |
| Empty-value fallback | Default column |
| Yes/No tokens | Yes Value / No Value columns |
Consistent units (250mm) |
Units format (independent of doc units) |
| Protect a hand-set prefix | Prefix Identifier (...) |
Because the name is generated, re-running the rename after any parameter edit snaps every name back into compliance—and the preview flags illegal characters and collisions before anything is written.
Worked Example: a Basic Wall
Target: RP_A_W_<Function>_<Core Material>-<Thickness>
- Tick Walls in the Categories panel.
- Add static segments
RP,A,Wwith_separators. - Add Function → case UPPERCASE, Keep Start = 3 →
EXT(matching the code table). - Add the wall Structure parameter; in the Compound Name Rules dialog pull the core layer's Material
NameandWidth(set Units tomm, 0 decimals). - Check the green preview, resolve any flagged collisions, click Rename.
Result: RP_A_W_EXT_Concrete-250. Change the core thickness later, re-run, and the name follows.
Audit on a Schedule
Set a recurring reminder to catch drift: copy/paste imports and "Copy (1)" types are where conventions rot. A rule-based pass is the fastest audit—any types that resolve to the same name are surfaced as duplicates regardless of what they're currently called, so you can consolidate before they multiply. For the full cleanup procedure, see How to Clean Up Duplicate Revit Families and Types.
Write the convention down, freeze the code tables, and let the tool apply them. The payoff isn't only a tidy model—it's a lighter mental load for everyone reading it, as covered in The Impact of Naming Conventions on Cognitive Load.