예제 #1
0
        public static Autodesk.DesignScript.Geometry.PolyCurve ToProtoType(this Autodesk.Revit.DB.CurveArray revitCurves,
                                                                           bool performHostUnitConversion = true)
        {
            if (revitCurves == null)
            {
                throw new ArgumentNullException("revitCurves");
            }

            var protoCurves = revitCurves.Cast <Autodesk.Revit.DB.Curve>().Select(x => x.ToProtoType(false));
            var converted   = PolyCurve.ByJoinedCurves(protoCurves.ToArray());

            foreach (var curve in protoCurves)
            {
                curve.Dispose();
            }

            if (converted == null)
            {
                throw new Exception("An unexpected failure occurred when attempting to convert the curve");
            }

            if (performHostUnitConversion)
            {
                UnitConverter.ConvertToDynamoUnits(ref converted);
            }

            return(converted);
        }
예제 #2
0
        public static Autodesk.DesignScript.Geometry.PolyCurve ToProtoType(this Autodesk.Revit.DB.CurveArray revitCurves)
        {
            if (revitCurves == null)
            {
                throw new ArgumentNullException("revitCurves");
            }

            var protoCurves = revitCurves.Cast <Autodesk.Revit.DB.Curve>().Select(x => x.ToProtoType());

            return(PolyCurve.ByJoinedCurves(protoCurves.ToArray()));
        }
예제 #3
0
        /// <summary>
        /// Converts a <see cref="DB.CurveArray"/> into a Rhino <see cref="Curve"/>[]
        /// </summary>
        /// <seealso cref="ToPolyCurves(DB.CurveArrArray)"/>
        public static Curve[] ToCurves(this DB.CurveArray value)
        {
            var count  = value.Size;
            var curves = new Curve[count];

            int index = 0;

            foreach (var curve in value.Cast <DB.Curve>())
            {
                curves[index++] = curve.ToCurve();
            }

            return(curves);
        }