Revit has many fantastic automation features. For example, it can number elements sequentially, such as grids, rooms and doors, as they are placed in the model. However, since the architectural design is not a linear process, this sequence can quickly become out of date. Unfortunately, Revit doesn’t have an automatic renumber command to correct the problem. In the past, Architects have either had to do this manually or rely on 3rd party apps, such as Imaginit. These methods proved to be either time consuming and/or expensive. One particular task which consumes much more time than it should is the renumbering of doors based on the room in which it is located.
Depending on your office’s naming conventions, a door generally is named something along the lines of, Element prefix – Room # – Sequence #, for example, D-101-01. Added complexity also comes into play when trying to define which room the door is located. Generally, a door will be numbered based on the ‘to’ room, unless that room is a corridor or an external area, in which case it reverts to the ‘from’ room. Confusing!
Room calculation point
Since Revit 2014, when Autodesk introduced the room calculation point, it has been possible to schedule the ‘to’ and ‘from’ parameters in door families. This feature has its limitations and quirks. However, assuming the family has been built correctly, how can we automate the naming convention?
One possible answer is to use BIMlink to export the schedule into Excel. Using a series of conditional statements, we could semi-automate the process. But for this to work, you need to be a bit of an Excel wizard, and it’s not that user friendly. Conversely, we can create a simple Dynamo script which fully automates the process, is easy to use and eliminates the need for either Excel or BIMlink.
To do this, you can use the ‘Door.RenumberByRoom’ node found in the Parametric Monkey Dynamo package. Users have the option to enter a prefix, such as ‘D’, and a separator, such as ‘-‘. Depending on your offices’ naming conventions, the custom node can be edited and re-ordered as required.
The script reads all doors in the project and returns the ‘to/from’ room number per door. (See this tutorial to renumber rooms). By default, doors are renumbered based on the ‘to’ room. If however there is no ‘to’ room, such as an external door, it will revert to the ‘from’ room. If there is neither a ‘to’ or ‘from’ room, that is, there is a missing room, the doors will be excluded from the renumbering process. Once this is known, all doors within the same room are sequentially numbered in an anti-clockwise direction. Boom! Hundreds or thousands of doors renumbered instantaneously.
If you require more flexibility in the naming convention, use the ‘Door.RenumberProperties‘ custom node. This node will allow you to concatenate the parameter as desired.