Use linked mechanical model to create voids in walls

I am trying find the intersections between walls and ducts by using a linked Revit MEP model to create voids in walls where the ducts penetrate the walls. I haven’t been able for find examples of this online and I can’t seem to find the right nodes to accomplish this task. Has anyone tried this?

Hi David,

At first you need to create a void family and use the below graph. Good Luck!



1 Like

This is a very interesting and vast discussion. Julien Benoit is the pioneer in the field of project coordination and management with Dynamo. You should definitely check out some of his work first:

and his package SteamNodes.He has a few work-flows that deal with exactly this subject.

Another great package that you should definitely check out is DynaWorks for extraction of clashes detected in Naviswork, provided by Adam Sheather.

Tho it’s still possible to skip a few steps and attempt to detect clashes directly in Dynamo. Here’s a very basic demo that I cobbled up in a few minutes that compares the local walls and some linked mep ducts, detects the clashes and places window openings at the intersection points. I personally prefer using window openings because they can be scheduled easily and can have parameters (like for example the opening dimensions, its host, etc.):


1 Like

Great that is exactly the part of the puzzle that I am missing to keep going and feed my Dynamo addiction.

I have been working through the two suggestions above and have had more luck with the voids. Now I am trying to find a way to read the sizes of the ducts into the void family I created and find a way to get the voids to cut the walls. Is there a way to access the cut geometry in Revit?

you can try to make a bounding <span style=“font-weight: 300;”>Bounding Box by the cut geometry then</span> transfer the bounding box to Cuboid and you can measure the Cuboid Height ,Length ,Width.

But there is some <span style=“font-weight: 300;”>issue with the bounding box not working with the Coordinate System correctly .</span>


i try to reuse your code, but this time to place a fire damper in the intersection of the duct with wall. the problem is that the damper is not connected to duct, and i coul not find the noce : hostedinstance.bypoint. i should install a specific package ?

Spring Package


i like Dimitar have used windows as openings so they can be scheduled and have then used the duct dimension with a tolerence to set the window size parameter.

but i have an issue when a single duct intersects 2 walls i only get the duct dimension once. i need to somehow get the duct dimension for each intersection and not only each duct.

Duct sizes appear to be in feet even though everything is metric.

Ihave now changed it to read opening size from bounding boxes and all is good again :slight_smile:

I’ve tried to reuse your code, but I can’t figure out how to create a rectangular opening (by which parameter do you filter rectangular ducts??)

Hi Anna,

You need to Filter by “Family”.

You can also use “Group by key”. See Below.

I am trying to follow what you guys have done by doing the same with slab penetrations. I can’t get past the initial setup because I must not have all the nodes/packages installed. Where do I get the Revit Element and category nodes? Thanks

Hi David Moody,

“All Elements of Category” and “Category” nodes are builtin you can search on the library and click on the desired nodes. You can also refer to this link for more information on User Interface. Good Luck!


I must be doing something wrong, as I assumed they were built-in too.


Version installed as standalone I believe.


Open Revit and then launch Dynamo by clicking on it’s icon in the Add-Ins tab

Revit nodes will not be available in the standalone version.

I am curious, where dies the “Get Documents” node come from? I can’t seen to find this node anywhere.

“Get Documents” is from one of my favorite archi-lab package.