public override Value Evaluate(FSharpList <Value> args) { var curveRef = ((Value.Container)args[0]).Item as Reference; Curve curve = null; var el = ((Value.Container)args[0]).Item as CurveElement; if (el != null) { var crvEl = el; curve = crvEl.GeometryCurve; } else { curve = curveRef == null ? (Curve)((Value.Container)args[0]).Item : (Curve) dynRevitSettings.Doc.Document.GetElement(curveRef.ElementId) .GetGeometryObjectFromReference(curveRef); } var start = curve.get_EndParameter(0); var end = curve.get_EndParameter(1); return(Value.NewContainer(DSCoreNodes.Domain.ByMinimumAndMaximum(start, end))); }