/// <summary> /// Splits a surface by multiple curves. /// </summary> /// <param name="srf"></param> /// <param name="crvs"></param> /// <search></search> public static Autodesk.DesignScript.Geometry.Geometry[] SplitPlanarSurfaceByMultipleCurves(this Autodesk.DesignScript.Geometry.Surface srf, List <Autodesk.DesignScript.Geometry.Curve> crvs) { Autodesk.DesignScript.Geometry.Vector vec = srf.NormalAtParameter(0.5, 0.5); List <Autodesk.DesignScript.Geometry.Surface> srfLst = new List <Autodesk.DesignScript.Geometry.Surface>(); foreach (Autodesk.DesignScript.Geometry.Curve crv in crvs) { Autodesk.DesignScript.Geometry.Surface splitSrf = crv.Extrude(vec, 5000); srfLst.Add(splitSrf); } Autodesk.DesignScript.Geometry.PolySurface polysrf = Autodesk.DesignScript.Geometry.PolySurface.ByJoinedSurfaces(srfLst); Autodesk.DesignScript.Geometry.Geometry[] geo = srf.Split(polysrf); vec.Dispose(); polysrf.Dispose(); foreach (Autodesk.DesignScript.Geometry.Surface s in srfLst) { s.Dispose(); } return(geo); }