Boolean unions in bulk

I’m trying to model a part of a city from the building elevations in a cad file.
the workflow is fairly simple I just make building shape curves into a surface and extrude the down. the problem is for buildings with irregular shapes there are multiple curves and when extruded I will have multiple objects inside each other which will comprise the building mass shown below:

this creates problems in many areas for me: z-fighting, performance, and material applying
of course, i can select these and use union bol but how does on do this in Rhino in bulk?
(when I try boolean union when all is selected obviously it fails.)

any advice is appreciated
thank you.

Hi Ari - my guess is the failures come from coincident or near coincident faces and edges on the inputs. I would do these in groups so that when a group fails, it will not be impossible to figure out what is wrong. You can learn a lot about Boolean fallures by running Intersect or IntersectTwoSets on the input (depending on the Boolean operation) and inspecting the resulting curves for gaps .


1 Like

Hello @pascal
thanks for your response.
i was looking for a procedural way to do this because there are lots of building masses.
i made the logic below this way it avoids the boolean error but it introduced a new problem.
the shape in brep component when detecting an intersection it doesn’t differentiate between only overlapping faces and overlapping solids which joins objects that shouldn’t be joined.
any ideas?

I would convert the breps to meshes and offset them slightly. If the goal is 3D printing you could probably get away without boolean union.


the goal is to get it into unreal engine.
i tried the points in breps component which fortunately has the option to detect overlapping faces vs intersecting objects. but im little confused on how to actually create the graph for it to work.

any ideas?

I tried a long time.

1 Like

Can you post your file?

1 Like

Here you go.
MassTest.3dm (2.8 MB)

You appear to be using a pirated version of Rhino, which is something I do not support.

Testing 3dm Archive: C:\Users\martinsiegrist\Downloads\MassTest.3dm
Start Section: 468 bytes (offset 0 to 468)
Offset: 0
3dm archive version: 70
Interface Name: Rhinoceros 7.24 - Corporate, build 2022-11-04 - (compiled Nov 4 2022)
SDK Version: 2348836105.2388689657
OpenNURBS Version: 2388689657
3dm Version: 7
Operating System: Windows 10 (10.0.19045 SR0.0) or greater, 64-bit, platform 2, version 10.0 build 19045 sp 0.0, suite 256, product type 1
Runtime: ON::RuntimeEnvironment::Windows 3DM I/O processor: OpenNURBS toolkit version 2388689657 (compiled on Nov 4 2022)
Properties Section: 41278 bytes (offset 468 to 41746)
3dm archive openNURBS version: 2388689657 (7.24 2022-11-04:1)
Application Information:
Name: “Rhinoceros 7”
URL: “
Details: “Corporate, build 2022-11-04”

1 Like