Skip to content

API Changes in Dynamo 4.0.0

Jason edited this page Nov 25, 2025 · 6 revisions
  • ModelBase.Serialize(XmlDocument, SaveContext) method - No longer marked as obsolete
  • ModelBase.Deserialize(XmlElement, SaveContext) method - No longer marked as obsolete

The following code that was marked as obsolete has now been removed

  • IPreferences.IsBackgroundPreviewActive property - Use BackgroundPreviews collection instead
  • PreferenceSettings.IsBackgroundPreviewActive property - Use BackgroundPreviews collection instead

  • PackageManagerClient.PackageContainsBinariesConstant field - Package binary detection now uses the contains_binaries field from the database
  • PackageManagerClient.PackageContainsPythonScriptsConstant field - Package Python script detection now uses database fields

  • ProtoScript.Runners.HydrogenRunner class - Legacy runner no longer supported
  • ProtoScript.Runners.DeuteriumRunner class - Legacy runner no longer supported

  • Preloader.LibraryVersion enum - Use System.Version instead to specify geometry library versions
  • Preloader.Version property - Use Version2 property instead

  • FileSystem.ReadImage(string path, int xSamples, int ySamples) node - use File.FromPath -> Image.ReadFromFile -> Image.Pixels instead
  • FileSystem.LoadImageFromPath(string path) node - use File.FromPath -> Image.ReadFromFile instead
  • FileSystem.ReadText(string path) node - use File.FromPath -> File.ReadText instead
  • FileSystem.WriteImage(string filePath, string fileName, Bitmap image) node - use Image.WriteToFile instead
  • FileSystem.ExportToCSV(string filePath, object[][] data) node - use CSV.WriteToFile instead

  • String.FromObject(object obj) node - use "String from Object" instead

  • Excel.Read(string filePath, string sheetName) node - use File.FromPath -> Excel.ReadFromFile instead

  • All PointData nodes
  • All SurfaceData nodes
  • All VectorData nodes

The following ProtoGeometry code that was marked as obsolete has now been removed from LibG

  • Curve.PointAtDistance(double segmentLength) method - Use Curve.PointAtSegmentLength(double).

  • Curve.CoordinateSystemAtDistance(double segmentLength) method - Use Curve.CoordinateSystemAtSegmentLength(double).

  • Curve.PlaneAtDistance(double segmentLength) method - Use Curve.PlaneAtSegmentLength(double).

  • Curve.DistanceAtParameter(double param) method - Use Curve.SegmentLengthAtParameter(double).

  • Curve.ParameterAtDistance(double segmentLength) method - Use Curve.ParameterAtSegmentLength(double).

  • Curve.LengthBetweenParameters(double startParam, double endParam) method - Use Curve.SegmentLengthBetweenParameters(double, double).

  • Curve.DivideEqually(int divisions) method - Use Curve.PointsAtEqualSegmentLength(...) + **Curve.SplitByPoints(...).

  • Curve.DivideByDistance(int divisions) method - Use Curve.PointsAtEqualChordLength(...) + **Curve.SplitByPoints(...).

  • Curve.DivideByLengthFromParameter(double length, double parameter) method - Use Curve.PointsAtSegmentLengthFromPoint(...) + **Curve.SplitByPoints(...).

  • Curve.DivideByDistanceFromParameter(double distance, double parameter) method - Use Curve.PointsAtChordLengthFromPoint(...) + **Curve.SplitByPoints(...).

  • Curve.ParameterTrimStart(double startParameter) method - Use Curve.TrimByStartParameter(double).

  • Curve.ParameterTrimEnd(double endParameter) method - Use Curve.TrimByEndParameter(double).

  • Curve.ParameterTrim(double startParameter, double endParameter) method - Use Curve.TrimByParameter(double, double).

  • Curve.ParameterTrimInterior(double startParameter, double endParameter) method - Use Curve.TrimInteriorByParameter(double, double).

  • Curve.ParameterTrimSegments(double[] parameters) method - Use Curve.TrimSegmentsByParameter(double[] parameters).

  • Curve.SplitByParameter(double parameter) method - Use Curve.SplitByParameter(double[] parameters).

  • Curve.ParameterSplit(double parameter) method - Use Curve.SplitByParameter(double) (or **Curve.SplitByParameter(new[] { p })).

  • Curve.ParameterSplit(double[] parameters) method - Use Curve.SplitByParameter(double[] parameters).

  • Curve.Join(Curve curve) method - Use Curve.Join(Curve[] curves).

  • Vector.AngleBetween(Vector otherVector) method - Use Vector.AngleWithVector(Vector).

  • Vector.AngleBetween(Vector otherVector, Vector rotationAxis) method - Use Vector.AngleAboutAxis(Vector, Vector).

  • BoundingBox.ByGeometry(Geometry geom) method (static) - Use BoundingBox.ByGeometry(Geometry[] geom).

  • EllipseArc.ByPlaneRadiiStartAngleSweepAngle(Plane plane, double xRadius, double yRadius, double startAngle, double sweepAngle) method (static) - Use EllipseArc.ByPlaneRadiiAngles(...).

  • Surface.ByLoft(IEnumerable<Curve> crossSections, Curve guideCurve) method (static) - Use Surface.ByLoft(IEnumerable<Curve> crossSections, IEnumerable<Curve> guideCurves).

  • Surface.Join(Surface otherSurface) method - Use PolySurface.ByJoinedSurfaces(...).

  • Solid.ByLoft(IEnumerable<Curve> crossSections, Curve guideCurve) method (static) - Use Solid.ByLoft(IEnumerable<Curve> crossSections, IEnumerable<Curve> guideCurves).

  • Solid.UnionAll(IEnumerable<Solid> solids) method - Use Solid.ByUnion(...).

  • PolySurface.BySweep(Curve rail, Curve profile) method (static) - Use PolySurface.BySweep(Curve rail, Curve[] crossSection).

  • TSpline.TSplineSurface.BuildPipes(IEnumerable<Curve> curves, double defaultRadius, double snappingTolerance, IEnumerable<int> segmentsCount, IEnumerable<double> endRotations, IEnumerable<double> endRadii, IEnumerable<double> endPercentage, bool inSmoothMode) method (static) - Use BuildPipes(...) overload with extended parameters (auto-handle start/end, start/end rotations & radii, start/end positions).

  • TSpline.TSplineSurface.CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Curve> curves, ...) method - Use CreateMatch(...) overload (includes scale parameter).

  • TSpline.TSplineSurface.CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Edge> brepEdges, ...) method - Use CreateMatch(...) overload (includes scale parameter).

  • Geometry.ExportToSAT(string filePath) method - Use Geometry.ExportToSAT(IEnumerable<Geometry> geometry, string filePath).

  • Geometry.ExportToSAT(string filePath, double unitsMM) method - Use ExportToSAT** UI node instead.

  • Geometry.ExportToSAT(IEnumerable<Geometry> geometry, string filePath, double unitsMM) method (static) - Use ExportToSAT** UI node instead.

  • Geometry.SerializeAsSAB() method - Use Geometry.SerializeAsSAB(IEnumerable<Geometry> geometry).

Releases

Roadmap

How To

Dynamo Internals

Contributing

Python3 Upgrade Work

Libraries

FAQs

API and Dynamo Nodes

Clone this wiki locally