Use Revit to push Space data into COBie.Component.Space parameter in Revit

Dynamo Graph to push Space data into COBie.Component.Space including elements above the ceiling (MEP)

Here is a graph that I’ve thrown together that pushes the Revit Space number  into the COBie parameter “COBie.Component.Space” for elements that are within the Space, including elements above the ceiling.

Note that in order for this to include the elements in the area above ceilings (i.e., mechanical and electrical equipment), your spaces must use the “Upper Limit” parameter on your spaces to include the elements that are within the ceilings above the Space. This hasn’t been fully tested, so if it doesn’t work for your project please let me know in the comments below.

Push Space number into COBie.Component.Space parameter of elements above ceiling


  1. Open the model which contains the elements you wish to populate the COBie parameter (e.g.,  MEP model).
  2. Create spaces and rename/renumber as needed (I recommend the Space Naming Utility).
  3. Launch Dynamo and open the graph linked at the bottom of this post.
  4. In the graph, choose which categories you would like to push the space data into. Modify the List.Join node if you need to add or remove categories from the list.
    COBie space parameter to model categories
  5. Set the graph to Automatic (for an easier workflow)
  6. Use the Select Model Element node to pick a space individually.
    Pick a space in Revit to push to COBie data.
  7. Continue selecting spaces as needed to populate element COBie space data.

Under the Hood

This graph first gets all elements of the chosen categories and then gets the BoundingBox of a space.Get bounding box of space for COBie parameter in Revit

It then filters out the elements whose coordinates are not within the selected Space’s BoundingBox.Get elements within Space for COBie

Finally, the graph pushes the Space’s “Number” parameter value into the “COBie.Component.Space” parameter.

Set Revit Space number to COBie parameter

The unique challenge here was for MEP elements that are above the ceiling. To solve this, I use the Space’s “Upper Limit” parameter to include the ceiling space above the Space.Get Upper Limit parameter to include in bounding box for COBie space data

A new BoundingBox is created using the new MaxPoint from the “Upper Limit”.Include ceiling space in Space height for COBie


I haven’t tested this on complex spaces, so if this doesn’t work for your project, please let me know in the comments below.

This graph could be modified to iterate through all spaces, but I haven’t had a chance to do so. Please, if you end up modifying it to do so, please share the dyn in the comments below so that I can update this post and share with our readers.

Questions, comments, issues?

Space Number to COBie.Component.Space (319 downloads)

  • David Robinson

    Hi Jay,

    First of all thank you for posting this graph. I’m new to dynamo and trying to achieve something similar by pushing the room information data into a COBie ceiling parameter, however after creating a few modifications to the graph to collect all rooms and all ceilings I am encountering a few issues as shown in the screen capture. The error seems to occur around the Point.ByCoordinates node, any ideas what the solution is?


    • J.

      I would have to look closer, but it looks like the Code Block where it is pulling coordinates is pulling individual coordinates rather than a list of coordinates.