Solids and Voids

Hello All,

In Revit, they have a neat feature when modeling solids called Voids. Basically, wherever a void intersects a solid, the void is subtracted from the solid. It’s great. You can’t “see” the Void but just edit a component, move the void, and the absence of a certain volume of the solid is represented.

I think this would be great in Sketchup as a way of creating openings, windows, doors, or even detailed joinery details.

Dp you think this would be possible in Sketchup?

I imagine you could monitor the interaction of two objects, one visible, one not; and perform a real-time solid tools subtract or something but then every time the Void is moved, you’d have to restore the original solid geometry and re-subtract the new void location. Not sure if that would be the best way given processing time.

Your thoughts?

1 Like

My thoughts are that SketchUp is a surface modeler. I’d rather use a true solid modeler if I needed this kind of thing.

SketchUp does have the concept of 2D face openings which are exposed in the C API. These openings are automatically rendered by the SketchUp rendering routines and so move with a component that is “glued to” a face.

In the Ruby API, currently, we can set the properties for a component for “glue to” (the orientation of the surface) and “cuts opening” (a boolean). But this is it for now. I have previously logged an FR for API parity to expose more of the Opening control in the Ruby API.


This is exactly how some extensions have done this kind of thing.

Several developers have expressed the desire to extend the “auto-opening” behavior to more than that of a single face. Ie, a window component that will cut through an entire wall. But some modelers get detailed with walls, and model more than just a single thickness of solid. (Ie, they model studs and drywall and exterior clapboard, etc. … and want their window components to cut through all the wall parts.)

So there are some plugins that can do this, but it a complex thing that some use the solid tools, and need to create multiple hidden cutting solid cuboids to subtract from all the “wallparts”.

It would be so much easier if components could just natively have auto-cutting hidden solids that let the graphics pipeline render the opening, as is now done for the 2D openings.

I had a similar idea, expressed differently, back in '17:

This is one of those plugin ideas I’ve had for years but never gotten around to implement. I got a half-stable back end for solid operations, but would prefer better algorithms before investing the time in the frontend/SketchUp integration.

1 Like