/// <summary>
      /// Convert a generic Circle to a Revit Curve
      /// </summary>
      /// <param name="crvCurve"></param>
      /// <returns></returns>
      private static Autodesk.Revit.DB.Curve Convert(Autodesk.DesignScript.Geometry.Curve crvCurve)
      {
         Autodesk.DesignScript.Geometry.Curve[] curves = crvCurve.ApproximateWithArcAndLineSegments();
         if (curves.Length == 1)
         {
            //line or arc?
            var point0 = crvCurve.PointAtParameter(0.0);
            var point1 = crvCurve.PointAtParameter(1.0);
            var pointMid = crvCurve.PointAtParameter(0.5);
            if (point0.DistanceTo(point1) > 1e-7)
            {
               var line = Autodesk.DesignScript.Geometry.Line.ByStartPointEndPoint(point0, point1);
               if (pointMid.DistanceTo(line) < 1e-7)
                  return Convert(line);
            }
            //then arc
            if (point0.DistanceTo(point1) < 1e-7)
               point1 = crvCurve.PointAtParameter(0.9);
            var arc = Autodesk.DesignScript.Geometry.Arc.ByThreePoints(point0, pointMid, point1);
            return Convert(arc);
         }
 
         return Convert(crvCurve.ToNurbsCurve());
      }