Programming is an essential part of the early design process in architecture. The size, shape, purpose, and adjacency between each space play a crucial role in determining the overall form and function of a building. Building Information Modeling (BIM) provides an ideal platform for programming because of its ability to organize and position spaces full of embedded information.

Departure from the Traditional Process

The challenge with the traditional programming process is that valuable time is spent translating successful room layouts from other physical and digital formats into a preliminary Revit model. The following provides a glimpse into how Dynamo can utilize requisite room and area information to automate the creation of space planning objects in Revit.


The first step is to prepare an Excel spreadsheet with detailed characteristics of each individual space. Since most architects and planners use Excel or database management systems to organize data and calculate program, the transition to a simplified spreadsheet is relatively effortless. The name, department, quantity, and dimension values can all be used to set parameters in Revit.

image 1


Using Dynamo, massing families are populated in Revit from the Excel spreadsheet. In this case, the definition organizes the massing blocks according to their department and color-codes for visual clarity based on information in Excel. The objects are evenly spaced and multiple quantities are accounted for.

image 2

image 3

image 4


Once the objects are in Revit, users can re-position, stack, and overlay on top of a linked site plan to create programming diagrams and adjacency studies.

image 5

image 6

Document & Iterate

Favorable program layouts can be documented in plan, elevation, or perspective for presentations. It is even possible to export the individual space objects to CAD for laser cutting or as an STL for 3D printing.

image 7

image 8

At Shepley Bulfinch, physical programming chips are instrumental in hands-on client workshops to help clearly explain program configurations and elicit feedback.

image 9

A great feature of the space planning families is that grips can be used to alter the size of each massing. If objects are manipulated during programming process, the new information can easily be exported back to Excel for documentation using Dynamo. This completes the full cycle of iteration from a theoretic collection of spaces to delivering a report of vetted spatial mixture and associated areas.

image 10

image 11

Transition to a Building Model

One of the wonderful perks of conducting the programming phase of a project in Revit is the seamless transition to a working building model. Using the Wall by Face feature in the Wall dropdown allows you to pick any side of one of the space planning families to begin creating exterior walls or interior partitions. To add floors to the project, a perimeter boundary line can be quickly traced around the bundles families. With the further addition of Rooms, Windows, Doors, and other Revit elements, a building emerges.

image 12


see more details in this high res version of the DYN fileSpacePlanningDef_hi-res7595

KM Headshot_sm Kyle Martin works on residential development and student housing projects at Shepley Bulfinch where he specializes in design technology. He is also an adjunct instructor of advanced AEC technology at the Boston Architectural College and co-founder of the Boston Dynamo user group.

Twitter: @kcmarchitect


Shepley Bulfinch is a national practice with offices in Boston, Phoenix, and Houston. The firm is rooted in 150 years of history with an emphasis on education, healthcare, science and research, urban development, and libraries.

Twitter: @shepleybulfinch