A lot of MEP calculations available in Revit needs analytical spaces at some point, and it is crucial to have them properly modeled.
Properly placing these spaces can be a tedious business, especially for large buildings with hundreds of rooms. You can use the Place Space Automatically function, but it can create spaces in undesired places, and does not necessarily match the architectural rooms.
Furthermore, superposing of a space upon an existing architectural room only retrieves the name and the number of the corresponding room, and falls short for any other property we could want to add to our MEP space.
One of the solutions for creating MEP spaces is to match rooms created in the linked architectural model. To do so, I wrote a small application for creating a space for each room defined in a linked model.
This application loops on every linked instance, searching for rooms, and uses these rooms to create the corresponding space, retrieving in the process a handful of parameters, like name, number, and most critically, Limit Offset.
You can find here a little ScreenCast showing how it works. The entire source code is available below.
While working on it, I also found some interesting property : Computation Height. This is a level property, and it allows to define the height used to define boundaries on this level.
Let’s create three rooms on a given level:
But if we add some variation on the floor level, the room disappears with the following warning:
By default, these rooms are calculated at the level elevation. Every wall at “0 m” above the level will be used as a room boundary.
The Computation Height properties allows us to change the elevation where we calculate the room. In our example, we change the Computation Height of the Level 1 to 1 meter, and the room fit nicely between its boundaries.