Merge overlapping surfaces


I have a bunch of planar surfaces which are overlapping, and I would like to join them so that those overlapping surfaces become one surface for the purpose of area calculation.

PolySurface.ByJoinedSurfaces does not seem to work, as a Surface.Area node connected to it then takes into account the overlapping surface areas as they were before joining.

So, how can I ensure that the area is calculated only for a flat single planar surface?

Dynamo can only union solid geometry out of the box. One common workaround is to extrude the surfaces into solids, use the “Solid.ByUnion” node and then intersect the base with a plane to get the merged surface. As you can imagine, that can be a bit slow if you’re handling a large amount of objects.


Ah, I was hoping I wouldn’t have to do that. But it worked, and wasn’t so bad. Thanks!

hello,i want to kown how did you solve the problem? thank you!

If you intersect with a plane it will not work for curves surfaces. Because that curved surface will not intersect the planar plane behind it. Right?

Hi @Dimitar_Venkov, what do you mean by “intersect the base with a plane” ?

This has now changed in Dynamo 2.3 with the addition of two new nodes!


And this workflow will come with some performance gains over the original long-form solution :slight_smile:

Dynamo 2.3 should be available in Revit in the not-to-distant-future too.

1 Like

Is there any way to use this function in Dynamo 2.0.1 or 2.0.2?

Hi @RubenVivancos - Unfortunately not, only from Dynamo 2.3 onwards. There are workarounds to achieve the same result in previous versions! That is referenced in the blog post :slight_smile: