Is surface circle?

I have a solid, convert to surfaces… and gave me 6 surfaces.

I need to know if is circle or not.

And after, isolate both (2) curves that is in down surface, but EXTERNAL CURVES.

The image below show all my 4 curves that is in the surface down.

I want isolate just the purple and blue, because are external.


  1. Group the curves (archilab package), build a polycurve from them, a surface from each polycurve, and pull the area from the surface.

  2. Sort the polycurves by the areas using a List.SortByKey, and then get the last polycurve from the sorted list, and the last key from the sorted list of keys.

  3. Use a Curve.PointAtParameter to pull points at parameters 0..1..#11, and then draw a circle using the by best fit through points method.

  4. Pull the radius of the circle, multiply it by itself and pi, and ask if that value is the same as the value of the last key from step #2. Then get the distance from the points used in step 3 to the circle. If the area matches, and the distances are 0, then you have a circle.

1 Like

Sorry Jacob, I understood 1 and 2… but step 3 and 4 not.

Step 3 starts with a closed polycurve. Wire that into a Curve.PointAtParameter node, pulling 11 evenly spaced parameter values. I recommended using a code block to assemble the values - this is the 0..1..#11 bit. Then use this node to generate a circle through the resulting points: Dynamo Dictionary.

Once you ha e the circle you can ask the distance from the points generated by the curve.pointatparameter node to the circle, and compare the area (area of a circle = pirr) to the area of the surface.