public static CurveLoop ScaleLoop(this CurveLoop loop, double scale = 1.0) { var old_centroid = loop.ComputeCurveLoopCentroid(); List <Curve> new_curves = new List <Curve>(); foreach (var c in loop) { var eps = new[] { c.GetEndPoint(0), c.GetEndPoint(1) }; // @CONTINUE } Transform scale_trans = Transform.Identity; scale_trans = scale_trans.ScaleBasisAndOrigin(scale); var new_loop = CurveLoop.CreateViaTransform(loop, scale_trans); var new_centroid = new_loop.ComputeCurveLoopCentroid(); var trans = Transform.CreateTranslation(new XYZ(old_centroid.U, old_centroid.V, 0) - new XYZ(new_centroid.U, new_centroid.V, 0)); new_loop.Transform(trans); return(new_loop); }