public Ellipse EllipseToSpeckle(DB.Ellipse ellipse)
        {
            using (DB.Plane basePlane = DB.Plane.CreateByOriginAndBasis(ellipse.Center, ellipse.XDirection, ellipse.YDirection))
            {
                var trim = ellipse.IsBound ? new Interval(ellipse.GetEndParameter(0), ellipse.GetEndParameter(1)) : null;

                return(new Ellipse(
                           PlaneToSpeckle(basePlane),
                           ScaleToSpeckle(ellipse.RadiusX),
                           ScaleToSpeckle(ellipse.RadiusY),
                           new Interval(0, 2 * Math.PI),
                           trim,
                           ModelUnits));
            }
        }
        public Ellipse EllipseToSpeckle(DB.Ellipse ellipse, string units = null)
        {
            var u = units ?? ModelUnits;

            using (DB.Plane basePlane = DB.Plane.CreateByOriginAndBasis(ellipse.Center, ellipse.XDirection, ellipse.YDirection))
            {
                var trim = ellipse.IsBound ? new Interval(ellipse.GetEndParameter(0), ellipse.GetEndParameter(1)) : null;

                var ellipseToSpeckle = new Ellipse(
                    PlaneToSpeckle(basePlane, u),
                    u == Units.None ? ellipse.RadiusX : ScaleToSpeckle(ellipse.RadiusX),
                    u == Units.None ? ellipse.RadiusY : ScaleToSpeckle(ellipse.RadiusY),
                    new Interval(0, 2 * Math.PI),
                    trim,
                    u);
                ellipseToSpeckle.length = ellipse.Length;
                return(ellipseToSpeckle);
            }
        }