Polygonは、Surface.ByPatchでSurfaceに変換してから、Surface.PerimeterCurvesでLineには変換できるんだけど、逆にLineからPolygonとかSurfaceに変換は標準のノードではできない。(と思う。)
だけど戻したいことはよくある。仕方ないから書いた。
サードパーティーのノードとか探せばあるのかな。。。
# Python 標準ライブラリおよび DesignScript ライブラリをロード import sys import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * # このノードへの入力は、リスト形式で IN 変数に格納されます。 dataEnteringNode = IN # この距離以下の点は同一とみなす threshold = 0.1 # この行の下にコードを配置します def main(IN): lines = IN[0] it = iter(lines) line0 = next(it) s = line0.StartPoint p0 = line0.EndPoint pts = [s] polygons = [] while True: line = next(it, None) if line is None: break if line.StartPoint.DistanceTo(p0) < threshold: pts.append(p0) p0 = line.EndPoint if s.DistanceTo(p0) < 0.1: if len(pts) >= 3: polygons.append(Polygon.ByPoints(pts)) pts = [] break return polygons # 出力を OUT 変数に割り当てます。 OUT = main(IN)