protected override void SolveInstance(IGH_DataAccess DA) { var crvs = new List <Curve>(); LoftOptions lo = null; var start = Point3d.Unset; var end = Point3d.Unset; if (!DA.GetDataList("Curves", crvs)) { return; } var hasStart = DA.GetData("Start", ref start); var hasEnd = DA.GetData("End", ref end); if (!DA.GetData("Options", ref lo)) { return; } Brep[] results = null; switch (lo.LoftFit) { case LoftSimplify.None: results = Brep.CreateFromLoft(crvs, start, end, lo.LoftType, lo.ClosedLoft); break; case LoftSimplify.Rebuild: results = Brep.CreateFromLoftRebuild(crvs, start, end, lo.LoftType, lo.ClosedLoft, lo.RebuildCount); break; case LoftSimplify.Refit: results = Brep.CreateFromLoftRefit(crvs, start, end, lo.LoftType, lo.ClosedLoft, lo.RefitTolerance); break; } Brep brep = null; if (results.Length == 1) { brep = results[0]; } else { brep = Brep.JoinBreps(results, 1E-05)[0]; } if (brep != null) { brep.Faces.SplitKinkyFaces(); DA.SetData("Loft", brep); } }