Dynamo speed

Hi guys

What are the reasons that make the dynamo slow, I am running a simple script but it’s take a lot of time. please check the picture below.

I think it’s self-explanatory: you’re pulling the geometrical data of 882 walls (and all of their openings, sweeps, etc.) and rebuilding their solid geometry from scratch. At the very least, you’re creating at least 5300 new faces…

If you want this graph to run faster, consider first filtering out only the walls that you need, through their parameters.

That make sense, do you know fast way to get elements geometry or the only way is to filter as you said ?

@Mohammad_Nawar What is your end goal?

My end goal is to get host element geometry and check it if clashes with linked elements geometry using geometry intersection point. it’s working fine with small number of elements. but more than that dynamo gives an error and close.

what is your system configuration?

Maybe you can group them by level ( or any different grouping criteria ) to make processing easier ? " Maybe you already did ? "

1 Like

Grouping by level and/or a scopebox or other basic location criteria is certainly a good first step. Element.location can help quickly group vertical ducts/pipes from horizontal and then group again by elevation or x/y location. Next you’ll likely want to do a preliminary check of bounding box intersections prior to testing the physical geometries against each other.

I found bounding box intersection WAY faster than actually performing the intersection test as it is literally a test of “is the min or max points of bounding box A between the min and max points of bounding box B” while geometry intersection is more like “do any of the multitude of faces that make up object A intersect with have any multitude of faces that make up object B.” Again you’re dealing with a minimum of six per wall but likely much more. You can also use element.location to quickly group many elements by elevation (ie: separate vertical pipes, and ducts from the horizontal and then group them again by elevation) to perform another intermediate grouping.

That said i found that running Revit’s built in clash detection was WAY faster than any method I tried. You can then parse the report to pull element IDs either manually (ick) or using Dynamo access the data so you can perform whatever task you need next.


Agrees with Jacob totally on this one. Revit’s Clash detection / Navisworks would run much faster & be more efficient.

1 Like

Sry didn’t understand your question @Kulkul

Well said @JacobSmall, thank you. I will go through Revit built in clash detection.