ArchiTECH: Use Dynamo to Populate Room Location as Equipment Sets

Tags: , , ,

Date: September 30, 2015

Recently, I stumbled upon Colin Doyles post on BIM 360 Field – Utilize Rooms/Spaces from Revit.  Since I was setting up a new Field project, I thought it would be a good opportunity to automate the workflow where possible.  Since I had already blogged about the creation of a Dynamo graph to place a 3D Room Tag family, I knew I had an existing graph I could leverage to speed up the effort.  For more info see the previous Tech article on WBA’s blog or the tutorial on my blog here –

This article demonstrates some parameter additions to the 3D Tag family and additions to the Dynamo graph created last time that will populate the 3D tag with BIM360Field Location information.  If you haven’t built your own graph, you’ll want to grab the previous copy from Besidethecursor blog that replicates the functionality of the Case 3D Room Tag tool.  To get started, make sure you’ve installed the latest build of Dynamo ( as of this article.  Also launch the package manager and grab a copy of the Grimshaw, LunchBox, Clockwork, and my latest BesideTheCursor packages (you’ll need them all!) – Note: I added the prefix list generator for this article to the BesideTheCursor package.  If you want the new version of the 3D room tag family, I’m posting it here.

Node Recipe:

1 – Original Graph from previous blog post

3 – String

1 – Level.Name

1 – String.Join

1 – BesideTheCursor Prefixed List Generator

1 – Element.SetParameterByName

Using the recipe above and the image below, you can recreate the graph to generate your own tool.  Continue reading below to add these improvements in a step by step manner.


Since we already have a working family, let’s add the necessary parameters to it and make the necessary associations prior to editing the graph.  As you can see in the image below, this family will prepare the way to connect BIM360 field with the Revit project.  For now, let’s automate the location path generation in Revit and connect it to the 3d Room Tag family.  Add a construction group text instance parameter named Path_B360F.  Set the default value as BIM360Field_Location.


Add a visibility (Yes/No) checkbox parameter to the graphics group and label it Show360Location.  Since these paths may be long (bldg/level/room name), lets shrink the text height by introducing a dimension label called SmText and adding a formula to keep it always half as large as the main room name model text.


As you can see in the image above, you’ll need to add the model text type 2, and place it on the workplanes on all five sides of the family.  Then associate the model text value, visibility, material, size and depth to the new and existing parameters.

Using the recipe and image at the top of this article place all 7 nodes and connect them as indicated.  You now have an improvement to the 3DRoomTag family that will populate the location path based on the bldg. name and Level you enter prior to running the graph for each level in your revit project.  Run the graph. If all the connections match correctly, you should see the values now populated into the 3DRoomTag family insertions.

In a future article I’ll develop a harvest graph that will extract the values from the 3d tags and populate the BIM360Field template for upload to the website to complete the initial automation.


If you wait til the longer article is published on BesideTheCursor, you can get a copy of the graph and the additional parameter assignments.


By: Richard Binning, Director of BIM Technology; Check out his blog: Beside the Cursor;