Push space data into elements above the ceiling (MEP)


I have followed this guide and managed to create a working graph to achieve this

But, this only works for a single space at a time. I was wondering if it is possible to have this working on multiple spaces.
Many thanks in advance for your help


This is my alternative solution, based on asking the architect o make suspended ceilings not room bounding and increasing the height of the spaces to underside of the slab above.
This graph seems to be working on and off. Sometimes it is working ok, other times not. And always miss one of two elements !!!

Hi @Hoss ,

I think the script isn’t always doing what you expect has to do with your intersection method.
Is there a reason you are only getting the Pipe’s Solid centroid instead of just using the whole Solid?

Also, could you maybe share some sample files of the Revit model and the Dynamo script (and maybe a screenshot of what you want)? I am not fully understanding what you are trying to do.

Hi Hoss,

It should be possible, but there may be a few issues with your graph / approch, namely maintaining the list-orders while removing nulls. I haven’t used those Nodes for removing nulls, so I don’t know. Maybe that explains why it works inconsistently.

Depending on the project size, I assume you could

  1. grab all of your MEP-Elements
  2. get the centerpoint of each element
    Element.Box → box.min & box.max → Line between two points → Point at Parameter (0.5)
    Build a point using the XY-Values for the “Point at Parameter” and the Z-Value from the box.min.

Depending on the project and typical plenum space, I assume you could just move the z-point down some reasonable value so that it lands in the room. (You can just subtract a value from the box.min Z-Value.

Here is the test files and graph
the reason I have gone for centre of the pipe, is because most pipes are spanning across multiple spaces, so I picked centre
Packages used for this graph are MEPover and Rhythm I think

I’ve modified your graph. I think this should work.
Save your file before opening the graph. Don’t want to crash your work…unlikely, but you never know.

You’ll have to choose a value which works for you to move the point down into the room. I am using meters (1m). If you are using feet and inches, then probably 2-3 feet will be better.

Try this - Pipes at rooms.dyn (45.0 KB)

After re-adjusting this part, its working as it should. Thank you very much for your help

Sorry…didn’t notice that i had the elements and parameters switched. I didn’t actually run the graph on a model.

Happy to help :slight_smile:

You will find out that using boundingbox will cause you many problems… you need to take the proper geometry from both the object and the space!
What you will have a hard time figuring out is that the geometry engine in dynamo is not good enough, you need to use the geometry engine in Revit.
Good thing is that I have coded nodes for that, and if I can find the time somehow will I try to make a post about how to deal with this kind of issue :slight_smile:

1 Like


Thank you very much for you update and looking forward to seeing your post :+1: