Automatically create 3D model from intersection of volumes


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 made an image with this simplified version to show what I want.

Thanks!! :pray:

Rhino file: Negative-Positive-Intersection RF.3dm (11.8 MB)
Autocad file: Negative-Positive-Intersection RF.dwg (3.9 MB)
(same files)

Hello - how automatic should this be? You could get there if all of the outer volumes were bounding boxes but with your angled one in there, I do not see how to know when you want a bounding box and when you want some custom shape… What would you expect the user input to be? i.e. this seems like a very specialized request not a Rhino feature, if I understand - something Grasshopper might have fun with though…


Sorry, I don’t quite get what you mean. What do you mean by bounding box? Instead of an angled exterior volume, it’s only possible with a cubic box? Well, maybe that box can be shaped into the angled volume by more subtractions.

I’d like to have 2 screens, one where I work with the negatives, and another where I can see the positive being generated, in-real time or by a one-click refresh.

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 found this video which explains part of what I want, but in a very simplified way.
I think it’s a good start.

But I don’t know how to associate solids I have modeled in Rhino to the GH window. In this tutorial, they only show basic solids created within GH.

My logic:

  1. Have Negative volumes, Positive volumes and Final result in separate layers (Layer N and layer P and layer F).
  2. The bounding working limits are a box with 20x20x20m.
  3. Any solid created on layer N (negative), automatically creates an identical copy with an offset of 40m to the right. These are also generated in a different layer (layer N2).
  4. 40m to the right is where the Positive volume is placed at. So anything you create in the N layer will automatically have a copy superimposed on the Positive volume (given you always work within the same bounding box).
  5. Now, from this two solids superimposed, N2 and P, make a non-destructive boolean operation, where N2 subtracts P.
  6. This operation will generate a new solid which is the final result, also generated in a new layer called F.
  7. N2 and P are on invisible layers, so I only see the final result.

Does this logic make any sense and would it work in Grasshopper?
Do you have any suggestions on how to improve this logic?

Thanks you! all help is very appreciated.

If I manage to create a successful GH file with this process, I will gladly share it so others could use it. It’s an interesting way of designing concept models, to start of with the negative spaces instead of the normal positive volumes.