protected override void SolveInstance(IGH_DataAccess DA) { //---variables--- List <Curve> curves = new List <Curve>(); MeshGeometry mesh = new MeshGeometry(); //---input--- if (!DA.GetDataList(0, curves)) { return; } if (!DA.GetData(1, ref mesh)) { return; } //---setup--- int u = mesh.GetU(); int v = mesh.GetV(); Brep origBrep = mesh.GetOrigBrep(); double volume = origBrep.GetVolume(); double sqrt3 = (double)1 / 3; double refLength = Math.Pow(volume, sqrt3); Brep brepSurface = Brep.CreateEdgeSurface(curves); Point3d[] vertices = brepSurface.DuplicateVertices(); Surface surface = brepSurface.Faces[0]; // --- solve --- List <Point3d> points = CreatePoints(surface, u, v); Color pointsColor = Color.FromArgb(135, 206, 255); (List <string> texts, List <Plane> planes) = CreateTextAndPlane(curves); double size = (double)refLength / 7; Color colorText = Color.Orange; // --- output --- DA.SetDataList(0, points); DA.SetData(1, pointsColor); DA.SetDataList(2, texts); DA.SetData(3, size); DA.SetDataList(4, planes); DA.SetData(5, colorText); }