Cut surface with breps

I have a collection of breps (walls) i want to get the perimeter/area of the room that the walls are surrounding. To achieve this i have tried to use project and use the projection to cut the surface. I cant get this method to work. Can anyone help me figure this out? Is there any better way to achieve my goal?

cut surface with projection.gh (19.6 KB)

Please give it a try with Brep|Plane :backhand_index_pointing_down:

BrepPlane.gh (23.2 KB)

this is not a reliable solution as it is dependent on choosing the correct V from deconstruct brep.. this means that i would have to manually select the correct index in the list item component to get the result i want.

Another solution based on Project for your reference.

Project.gh (22.6 KB)

i am not able to replicate your result with the file you uploaded. it gives me this shape and a warning at the boundary surfaces component saying “planar surface routine returned no results”

You can try Mesh Shadow but it might be slow


I tried. It worked on this particular set of walls, but when I tried on another room it did not. Any idea why project doesn’t work? I see no reason why it shouldn’t.

May I ask which specific version of Rhino you are using? I made it in Rhino 8.26

Hi @m1988

Can this approach solve the issue?

Please see the picture below.

Please note the walls in the provided model are not fully in touch. You need to use Offset to “correct this issue”. I made a definition based on Mesh Shadow for your reference.

Mesh Shadow Grasshopper Online Document :backhand_index_pointing_left:

MeshShadow.gh (22.8 KB)

Hey @m1988, given the disjointed walls, projection and shadows won’t be very reliable, so a workaround for orthogonal shapes like yours can involve finding (fitting) the right planes to cut and extend your ‘sections’ and determine your outline.

See this example:
cut surface with projection.gh (37.7 KB)

Here’s an example using convex hull → rectangle → Region Union:
cut surface with projection2.gh (25.9 KB)

*Note:
The example above fits a plane through each brep, works with ‘simple’ orthogonal objects like these breps.
Maybe you should show us other cases you have so we can test/improve.