public static IFlow SetGeometry(this IFlow flowObj, ICurve curve) { if (curve.IIsLinear() == false) { Engine.Reflection.Compute.RecordError("IFlow objects are not linear."); return(null); } IFlow clone = flowObj.ShallowClone(); clone.StartPoint = clone.StartPoint.SetGeometry(curve.IStartPoint()); clone.EndPoint = clone.EndPoint.SetGeometry(curve.IEndPoint()); return(clone); }