How to create loops from a holed surface?

Hello to everyone

I created a solid from a closed wall ring, and I need to get the outer and inner polyline.

The problem is that I can’t group the inner and the outer rings.

As you can see, there’s only a group of lines, instead of a group of two lines.

This Archilab node isn’t working in this case. It only groups the list of curves instead detecting the outer and inner ring.

Thanks a lot

Try it without the Solid.byUnion node

It gets worse. I don’t have loops, but intersecting open lines:

Try
Intersect those lines and close the loops

It doesn’t work. I suppose there should be an easier way to get the rings from holed surfaces.

I’m thinking of going back to the Solid.byUnion version and a Curve.isClosed or Loop.isClosed node with crossed lacing…then filter and see which is the longer one (outboard)

When I take the polylines forming edges, all vertical faces form a closed loop of 4 lines. But the horizontal faces take all lines instead spliting them in two groups or rings.

And I would try to create permutations of n/2 lines, but my RAM wouldn’t support it.

I feel like you’d be better off going another way:

  1. Get all the wall’s solids.
  2. Union all the wall solids into one solid.
  3. Pull the faces from the unioned solid.
  4. Filter the list of surfaces to just those with a normal with a Z component of 1.
  5. Pull the perimeter curves.

I already did it. I needed to intersect solid lines with exterior lines of wall, given by Compound Surfaces References.

It’s working. Thanks a lot. But I’ve a problem:

RemoveIfNot is not working to remove the points from lists, to get only polylines.

Edit: Sorry. I’ve already realized that the string is “Autodesk.DesignScript.Geometry.Point”

hmmm… can you start a new topic, and provide a screenshot with the data preview expanded?