Projected area calculation of surface

I’m trying to calculate a projected area of this sloping surface. I can’t pull the surface directly onto the plane. So I extract the curve element then pull onto the plane. After that I use PolyCurve.ByjoinedCurves but return

(Warning: PolyCurve.ByJoinedCurves operation failed.
Curve join produced more than one WIRE in PolyCurve)

Calculate both loops separate and subtract the inner loop from the outer loop

Thanks for the reply. What I’m want to achieve is to calculate the multiple surfaces like this.

So I can’t just use GetItemAtIndex to extract to loop individually. I think it should have a more efficient way.

GroupCurves will work here. Archilab package.

It works! Thank you so much.