In continuation of the progress we’ve made in space planning with Grasshopper, we’ve seen a need for something similar for Revit. When we first adopted Revit as our production platform we tried to solve this with a simple mass family that had parameters tied to a schedule, but it still required a lot of manual input in order to get the information into Revit. Part of this data input could be mitigated with with third party plugins, but there was still some functionality that we found lacking. Regardless of the somewhat clunky workflow, the results could be quite good.
Our next push for programming in Revit consisted of developing a plugin in-house that we could mold to our needs and workflows. What we’ve ended up with is a plugin that consists of four commands. Two work together to import and modify mass elements based on an Excel file, while the other two are independent mass related commands.
Whenever you’re bringing data from one platform to another, formatting of that data is always going to be important. For this tool the most important rule for formatting is that the first six columns are always the same. There’s an Export function in the command to create an empty file with just the headers to aid in this, though if any thing is off, be it column order, capitalization, or spelling, the command will be unable to process the information.
Beyond that, the formatting is fairly flexible. To create a mass, it just needs a ROOM NAME and ROOM NUMBER. If any of the other pieces of information are missing it will still generate something. For DEPARTMENT and ROOM TYPE, the last specified value is remembered, so it doesn’t need to show up in every line. If QUANTITY is missing, it assumes a single element, and if PROGRAM AREA is missing it sets it to zero and makes the resulting box a 10′ x 10′ cube. You are also free to add additional information in subsequent columns that can be mapped to other parameters or ignored.
When the command runs, it will layout the resulting families by each DEPARTMENT/ROOM TYPE with a 10′ spacing between each component.
The last two commands will facilitate working with the masses after they’ve been brought in. The Align Masses command will take a selected set of masses and array them in a line, horizontally or vertically with the ability to sort and control the spacing.
The Mass to Room command will map the information in the mass family to similar parameters in a room object, and place that room within the boundary of the mass’s footprint.