public PolyCurve PolycurveToNative(Polycurve polycurve) { DS.Curve[] curves = new DS.Curve[polycurve.segments.Count]; for (var i = 0; i < polycurve.segments.Count; i++) { switch (polycurve.segments[i]) { case Line curve: curves[i] = LineToNative(curve); break; case Arc curve: curves[i] = ArcToNative(curve); break; case Circle curve: curves[i] = CircleToNative(curve); break; case Ellipse curve: curves[i] = EllipseToNative(curve); break; case Spiral curve: curves[i] = PolylineToNative(curve.displayValue); break; case Polycurve curve: curves[i] = PolycurveToNative(curve); break; case Polyline curve: curves[i] = PolylineToNative(curve); break; case Curve curve: curves[i] = CurveToNative(curve); break; } } PolyCurve polyCrv = null; if (curves.Any()) { polyCrv = PolyCurve.ByJoinedCurves(curves); polyCrv = polyCrv.SetDynamoProperties <PolyCurve>(GetDynamicMembersFromBase(polycurve)); } return(polyCrv); }
public Base CurveToSpeckle(DS.Curve curve, string units = null) { var u = units ?? ModelUnits; Base speckleCurve; if (curve.IsLinear()) { using (DS.Line line = curve.GetAsLine()) { speckleCurve = LineToSpeckle(line, u); } } else if (curve.IsArc()) { using (DS.Arc arc = curve.GetAsArc()) { speckleCurve = ArcToSpeckle(arc, u); } } else if (curve.IsCircle()) { using (DS.Circle circle = curve.GetAsCircle()) { speckleCurve = CircleToSpeckle(circle, u); } } else if (curve.IsEllipse()) { using (DS.Ellipse ellipse = curve.GetAsEllipse()) { speckleCurve = EllipseToSpeckle(ellipse, u); } } else { speckleCurve = CurveToSpeckle(curve.ToNurbsCurve(), u); } CopyProperties(speckleCurve, curve); return(speckleCurve); }
public Base CurveToSpeckle(DS.Curve curve) { Base speckleCurve; if (curve.IsLinear()) { using (DS.Line line = curve.GetAsLine()) { speckleCurve = LineToSpeckle(line); } } else if (curve.IsArc()) { using (DS.Arc arc = curve.GetAsArc()) { speckleCurve = ArcToSpeckle(arc); } } else if (curve.IsCircle()) { using (DS.Circle circle = curve.GetAsCircle()) { speckleCurve = CircleToSpeckle(circle); } } else if (curve.IsEllipse()) { using (DS.Ellipse ellipse = curve.GetAsEllipse()) { speckleCurve = EllipseToSpeckle(ellipse); } } else { speckleCurve = CurveToSpeckle(curve.ToNurbsCurve()); } CopyProperties(speckleCurve, curve); return(speckleCurve); }