Placing a "standard" building in Forma

Since I’ve had a few people reach out with questions on the topic in the last few days, and because the Dynamo hackathon is coming up, I wanted to share a graph with a workflow that you can leverage to place standard building designs on a site. The nice thing about this is the same workflow can be used in Dynamo for Revit, Dynamo for Civil, Dynamo for Alias… Really any Dynamo flavor.

Before I begin, here’s a little animation of the process in action using Dynamo as a Service in Forma:
Place Standard Building

The first part is to gather the required data for all of your standard designs. This is easier said than done, mostly because ‘standard’ design implies that you have the data you need already in an organized format, which in my experience is rarely if ever the case. For now we’ll assume you have things organized and ready to grab what you need. Since this demo is using Forma as the next step we’ll need the solid to generate the mass, as well as a polycurve for each floor plate.

Once you have your content gathered in a way which Dynamo can interpret, it’s time to build your design dictionary. This is quite easy once you’ve gathered the building data in a list. Dictionary.ByKeysValues and Data.StringifyJSON are the key parts. Keep in mind you can append to that JSON as well so you can technically gather the design data once per source file (.rvt, ifc, etc.).

The next step is to build a graph which will interpret our dictionary in such a way that users can ‘select’ which building they want to use, and put it on our site. The overall graph looks like this:

The first section reads in the entirety of the standard designs and serializes the dictionary into the graph.

Next we confirm the dropdown node has a selection for each key in the dictionary.

Then we inset the site boundaries by 1/2 of the diagonal of the site.

Next we place the selected building on a coordinate system generated on the site.

Finally we display the results, build the representations, and send the result onto Forma.

The resulting graph can be shared in your Forma hub, modified to be leveraged in Dynamo player (you’d need to build an alternative means of setting the content into Revit or Civil 3d), and thereby allow you to leverage and reuse your work at scale in new locations. You can even swap the serialized dictionary (the Remember node) with a connection to a JSON hosted on APS or another accessible platform for live and frequent updates - the sky is the limit!

Hopefully this helps others - and be sure to let the community know when you have any wins with this type of content!

3 Likes