Dynamo Visual Programming Platform

repository·master·Indexed 24 days ago

https://github.com/dynamods/dynamo

A visual programming platform that enables users to script behavior through visual nodes or textual languages. The documentation covers building from source on Windows, developing custom Node libraries using NuGet packages, implementing contextual help for nodes via the Documentation Browser View Extension, and utilizing internal tools like AssemblyRenamerCLI and DynamoFeatureFlags.

Tokens
172.4K
Snippets
125
Records
1.6K
Agent score
83%

What's inside Dynamo

  1. Overview of NodeDocumentationGenerator

    master

    The NodeDocumentationGenerator is a CLI tool designed to generate markdown documentation stubs for Dynamo nodes. It can create files containing default content or content extracted from the DynamoDictionary.

    High-level Commands

    • Create Documentation From Directory: Generates documentation for DLLs and DYF files found in a specified input directory.
    • Create Documentation From Package: Uses the pkg.json file of a package to identify node libraries and generate documentation for those DLLs and any DYF files in the /dyf folder.
    • Rename Documentation Package: Shortens long documentation filenames (and their associated support files) to prevent issues with CI/CD or installers. The original name is preserved as a comment within the new MD file for searchability.
  2. Overview of Dynamo Performance Test Graphs

    master
    The Dynamo Performance Tests suite includes a variety of test graphs designed to measure performance across different Dynamo versions and feature sets. These graphs cover specific geometric operations, data types, and computational patterns such as list operations, math, and Python integration. Use these graphs to benchmark how specific Dynamo features (like List.Map, Curve.ParameterAtPoint, or Point.PruneDuplicates) perform under load.
  3. Overview of Dynamo

    master
    Dynamo is a visual programming tool designed for both non-programmers and programmers. It enables users to visually script behavior, define custom logic, and use various textual programming languages to automate tasks and define workflows.
  4. Access Autodesk Artifakt Element Fonts

    master

    The extern/Autodesk/Artifakt-Element-Font/ directory contains the .otf (Open Type Format) files for the Autodesk Artifakt-Element font used within Dynamo.

    Important Licensing Note: These fonts are not licensed under Apache 2.0. They are subject to specific Autodesk license terms. You should not use these fonts in your own projects without obtaining explicit permission. Please review the license.txt file in the same directory before any use.

  5. What is the Documentation Browser View Extension?

    master
    The Documentation Browser View Extension is a feature that displays contextual help for errors reported by nodes. When a node reports an error, an info bubble appears. Hovering over the bubble shows an error message and a See more... link. Clicking this link opens the extension to display specific help content related to that error.
  6. Use NurbsCurve.PeriodicKnots for closed NURBS curves

    master

    Use NurbsCurve.PeriodicKnots when exporting a closed NURBS curve to external CAD systems (such as Alias) that require the curve in its periodic form for round-trip accuracy.

    While NurbsCurve.Knots returns the knot vector in its clamped form (where knots repeat at the start and end to pin the curve to the parameter range), NurbsCurve.PeriodicKnots returns the knot vector in its periodic (unclamped) form. In the periodic form, the knot spacing repeats at the start and end to define a smooth closed loop. Both methods return arrays of the same length, but the values within the arrays will differ to represent the different mathematical descriptions of the same curve.

  7. Calculate the angle between two vectors about an axis using AngleAboutAxis

    master

    The AngleAboutAxis method calculates the angle measurement between two Vector objects in degrees, ranging from 0 to 360, relative to a specified axis of rotation.

    In typical usage, you provide two vectors and an axis (for example, the Z axis). The resulting value represents the angular displacement between the vectors when rotated around that axis.

  8. Calculate the maximum deviation of a polygon from a best-fit plane

    master

    The PlaneDeviation node calculates how much a polygon deviates from a flat surface. It works by first determining the best-fit plane through all the points of the provided polygon, and then computing the distance from each individual point to that plane. The result is the maximum distance (deviation) found among all points.

    To use this for testing non-planar geometry, you can generate a set of points using cylindrical coordinates with randomized angles, elevations, and radii, create a polygon from those points using Polygon By Points, and then pass that polygon into PlaneDeviation.

  9. Understand Dynamo Revit Selection Nodes

    master

    Selection nodes allow users to describe a subset of an active Revit document to be used in a Dynamo graph. These nodes function conceptually as a function that accepts an element ID and returns either a pointer to that element (a Revit element wrapper) or Dynamo geometry (converted from Revit geometry).

    There are two primary categories of selection nodes:

    1. User UI Pick: These nodes (e.g., SelectModelElement, SelectElementFace) allow the user to interact with the Revit UI to select elements. The node captures the element IDs and then performs a conversion to either a wrapper or geometry based on the specific node type.
    2. Document Query: These nodes (e.g., AllElementsOfType, AllElementsOfCategory) query the entire document for a subset of elements. They typically return wrappers that point to the underlying Revit elements, enabling advanced functionality like element binding.