// Arc
        // Rh Capture can be a circle OR an arc
        public Base ArcToSpeckle(ArcCurve a, string units = null)
        {
            var u = units ?? ModelUnits;

            if (a.IsClosed)
            {
                RH.Circle preCircle;
                a.TryGetCircle(out preCircle);
                Circle myCircle = CircleToSpeckle(preCircle, u);
                myCircle.domain = IntervalToSpeckle(a.Domain);
                myCircle.length = a.GetLength();
                myCircle.bbox   = BoxToSpeckle(new RH.Box(a.GetBoundingBox(true)), u);
                return(myCircle);
            }
            else
            {
                RH.Arc preArc;
                a.TryGetArc(out preArc);
                Arc myArc = ArcToSpeckle(preArc, u);
                myArc.domain = IntervalToSpeckle(a.Domain);
                myArc.length = a.GetLength();
                myArc.bbox   = BoxToSpeckle(new RH.Box(a.GetBoundingBox(true)), u);
                return(myArc);
            }
        }
 // Arc
 // Rh Capture can be a circle OR an arc, because f**k you
 public static SpeckleObject ToSpeckle(this ArcCurve a)
 {
     if (a.IsClosed)
     {
         Circle preCircle;
         a.TryGetCircle(out preCircle);
         SpeckleCircle myCircle = preCircle.ToSpeckle();
         myCircle.Properties = a.UserDictionary.ToSpeckle();
         return(myCircle);
     }
     else
     {
         Arc preArc;
         a.TryGetArc(out preArc);
         SpeckleArc myArc = preArc.ToSpeckle();
         myArc.Properties = a.UserDictionary.ToSpeckle();
         return(myArc);
     }
 }
        // Arc
        // Rh Capture can be a circle OR an arc
        public Base ArcToSpeckle(ArcCurve a)
        {
            if (a.IsClosed)
            {
                RH.Circle preCircle;
                a.TryGetCircle(out preCircle);
                Circle myCircle = CircleToSpeckle(preCircle);
                myCircle.domain = IntervalToSpeckle(a.Domain);

                return(myCircle);
            }
            else
            {
                RH.Arc preArc;
                a.TryGetArc(out preArc);
                Arc myArc = ArcToSpeckle(preArc);
                myArc.domain = IntervalToSpeckle(a.Domain);

                return(myArc);
            }
        }