Automatically create 3D model from intersection of volumes

Negative-Positive-Intersection GH.3dm (1.8 MB) Hi,

I’m currently designing a 3D model from the “negative” spaces.

So instead of starting with walls, roofs and slabs, I’m starting with the negative spaces. Everything I design is the negative volume of the future result. I then have a positive volume (exterior), which then is subtracted by the negative space, creating a normal building. So my workflow goes as follows:

Negative > subtract Negative to Positive > Result volume with interiors

I’m currently working with Autocad 3D, since my volumes are very primitive. But I want to pass it on to Rhino and do something very specific, which I’m guessing Rhino is capable, but I don’t know how, I will describe it:

I want to keep designing from negatives, but I want to check out in real-time how the final result is becoming. So if I create a negative of a window, then I want to see a hole appearing in a separate model.

Maybe Grasshopper can do the job. For example, tell GH to copy all negative volumes (in-realtime) from a certain layer to a fixed position x distance from negative volumes (red), which will be superimposed with a positive model (green) of the exterior. Then tell it again to subtract those models to the positive model and create the final result. If real-time generation is not possible, at least a one-click version would be nice, because having to copy all volumes, joining them, then subtract them manually, every time is very time consuming. But I have no idea, how could I achieve this?

I’ve managed to do some GH work, but I don’t think it’s working. Why does Brep replicate the volumes? In which layer does the new GH breps go? Why the result appears transparent? (PS: volumes are 75m from each other)

I made a conceptual image to show what I want.
Thanks!! :pray:


Rhino+GH file: Negative-Positive-Intersection GH.3dm (1.8 MB)
GH file: GH file.gh (13.0 KB)
Autocad file: Positive-Negative-Intersection RF.dwg (3.9 MB)

(The model I show you in the image above is a simple example for demonstration only, not the actual model I’m working on, which has hundreds of intersecting volumes. At the moment I use Autocad, which is very basic, and this process is very slow if I need to check out how the positive final result is turning out to be. I must copy all negatives to the side, join them using union tool, then subtract it to the bounding volume. It’s a tedious process, so I rarely do it. I thought that Rhino could handle it so thinking of going to Rhino, but my Rhino knowledge is somewhat limited. I need some directions.)

I had posted this in the Rhino section before, but I figured it made more sense if I posted in the Grasshopper section.

by moving the geometry to be subtracted 75 units along X axis I get this result:

but on the opposite side there is no visible effect:

by incrementing the X-movement to 76 units, I got this:

so I guess the workflow works, the only problem is that your geometry to be removed might be a little too small

I scaled it up by 5% on XY and here is the result:

Boolean.gh (478.1 KB)


generally speaking, for booleans subtraction to work correctly, don’t be afraid to be “abundant” with windows/door extension, make them even unreasonably longer than required :slight_smile:

the most important thing is that those blue closed polysurfaces fully go through the green solid to create a succesfull boolean subtraction, any excess (in this case) doesn’t matter

1 Like

This is awesome! I’m slowly getting there, thanks for the help.
I have some questions:
Is the union operation necessary? I’d like to keep volumes separated.
Why the final result becomes transparent?

My current problem is that this is still not an automatic process. If I had a negative volume (red), then I must update the brep. This is why I to use breps from a whole layer and not by selecting multiple volumes, so that if I make a new volume in that layer, it automatically enters the GH operations.
I just don’t know how to achieve this.

EDIT: and i will make sure volumes are extruded over the limits

you can use geometry pipeline components to directly input geometries from your layers

but you will always have to bake the GH results in Rhino (right click → Bake or through plugins)

about this, I think you mean the green Positive surfaces, yes it can be removed top get separate solids


[at first sight I thought I should also graft the A input of boolean difference, but I see it works ok regardless…]

Boolean_2.gh (10.3 KB)

1 Like