Hi,

I would appreciate any help with this. As shown in the picture, I’m trying to draw a hatch that covers each apartment in my project. I’ve grouped all the apartment rooms, but it seems impossible to get the outer corners of all the rooms in order to draw a hatch that covers each apartment’s area.

In the picture, you can see 7 rooms that belong to an apartment and the 6 outer corner points I need to draw the hatch.

Assuming you’re collecting the room’s boundaries using the centerline of the walls, generate a surface therefrom.

Union those surfaces into a single surface (or a polysurface if your rooms has a separation somehow - highly unlikely if you’re modeling well.

From there pull the perimeter curves of the unioned surface. If you have multiple loops (more likely for shafts) take the one with the largest area after patching.

Hi Jacob,

Thank you for your response. I have already tried your solution, but it doesn’t work as it gives me the curves for all the rooms again. I am still unable to find the perimeter curves for the whole shape. I tried using the Convex function, which works, but it requires some additional adjustments.

Do you have a dataset for us to test with? I have used the solution above successfully many times over.

You were right; it works. I had started with the wrong node.

Hi Jacob,

My script has worked perfectly for one index. However, as I expand to work on a whole level or building, there are inevitably some rooms that, no matter how precisely they are modeled, will contain some errors, as shown in the picture. Do you have any suggestions for the problem?

(As you can see, the apartment geometry works just fine. However, these small inaccuracies make defining a boundary impossible.)

The artifacts you are showing appear to be interior openings, which should be excluded by grouping the perimeter curves into poly curves and pulling he PolyCurve with the largest area. If that doesn’t work then post your current graph and a simple reproducible dataset and I will try to have a look later.