Deconstructing Building Mesh to Extract Walls

Hi all,

I have a mesh and I am trying to extract its edges by deconstructing it. But it is creating points at the vertices and some additional points close to it (may be due to the thickness of mesh). I assume the mesh has not been constructed properly (which cannot be controlled at this stage). I have tried and I could extract the bottom and top surfaces but those were not the same (as those should be) because of these additional points. Is there any way I can cull those points and extract the separate surfaces in all four directions?
Thank you so much for your time and help :slight_smile:
A picture is attached for reference to show the close points:

The internalised file is here
V1.gh (25.2 KB)

I have been able to extract surfaces from it. If I can get a bit of help to separate the surfaces in the x and y direction as walls of the building, it would be great.

Looking forward to your kind response!

Thanks!
V2.gh (203.5 KB)

Here’s one way:

V2_re.gh (209.9 KB)

-Kevin

1 Like

Hi Kevin, that works well. Thank you so much.

However, I was trying to get the outer surfaces of the model. Is there any way I can remove the thickness or just extract the outer surfaces of the model?

Thank you so much again!!

This isolates the outer wall surfaces. I eliminated the code for culling the upward and downward facing surfaces as they can be culled by size along with the window edges.

V2_re1A.gh (207.3 KB)

-Kevin

1 Like

Awesome, thank you very much. It works as desired. I understood the workflow, however, if you could please share a bit of detail about Round Surfaces Section where you used Variable y as 2, I’d be very grateful. I do not want to just use the script but comprehend it.

Thanks again :slight_smile:

If you use the Vector Display Ex component to visualize the normals of your surfaces, you can see that they appear to be facing in 6 directions.

If you bypass the group that rounds the normal vectors and use a Paramater Viewer component to see how many branches the normal vectors have been divided into, you can see the 1,484 surfaces have been placed in 416 branches (not very useful). Looking at the S output of the first Create Set component you can see the list of unique normal vectors. The Evaluate component displays the values with all available decimal places (the Panel component by default only displays 6 decimal places).

If you re-connect the group that is rounding the normal vectors and set the slider to 3, you can see that we are still getting 17 branches. Better, but still not what we’re looking for.

Changing the slider to 2 gives us 6 branches, this is our desired result.

It’s best to use rounding with caution, you want to keep as much precision as possible. With the file you provided, you could round to 1 decimal place (or even 0) and get the desired result, but it could cause problems in the future if you wanted to use this definition with another set of surfaces.

-Kevin

1 Like

wow that’s clear. Thank you so much Kevin!