If from a Face object you get its EdgeLoops, and from there you get an EdgeArray, that edge array is not that easy to make into a CurveLoop.

After testing with a few solids I arrived to the conclusion that the Edges in the EdgeArray are in the correct order (two consecutive Edges share a point) but they sometimes don’t have the same orientation.

In a closed CurveLoop, every Curve starts where the previous one ended. Instead in an EdgeArray, every Edge shares a point with the previous Edge, though you don’t know for sure which point. Because of that, when making the EdgeArray into a CurveLoop it is necessary to check the orientation of each Edge and correct it if necessary.

Last comments:

  • I used the AsCurve method from the Edge objects to get the curves, and there is where I identified the different orientations.
  • There is a GetEdgesAsCurveLoops method available in the Face class, which might be useful to avoid coding the EdgeArray to CurveLoop, but I haven’t tried it out.