Dynamo
Primer for v2.0
English
English
  • About
  • Introduction
    • What is Dynamo & How Does It Work?
    • Primer User Guide, Dynamo Community & Platform
  • Setup for Dynamo
  • User Interface
    • Workspace
    • Library
  • Nodes and Wires
  • Essential Nodes & Concepts
    • Index of Nodes
    • Geometry for Computational Design
      • Geometry Overview
      • Vector, Plane & Coordinate System
      • Points
      • Curves
      • Surfaces
      • Solids
      • Meshes
    • The Building Blocks of Programs
      • Data
      • Math
      • Logic
      • Strings
      • Color
    • Designing with Lists
      • What's a List
      • Working with Lists
      • Lists of Lists
      • n-Dimensional Lists
    • Dictionaries in Dynamo
      • What is a Dictionary
      • Dictionary Nodes
      • Dictionaries in Code Blocks
      • Revit Use-Cases
  • Custom Nodes & Packages
    • Custom Nodes
      • Custom Node Introduction
      • Creating a Custom Node
      • Publishing to Your Library
    • Packages
      • Package Introduction
      • Package Case Study - Mesh Toolkit
      • Developing a Package
      • Publishing a Package
      • Zero-Touch Importing
  • Dynamo for Revit
    • The Revit Connection
    • Selecting
    • Editing
    • Creating
    • Customizing
    • Documenting
  • Dynamo for Civil 3D
    • The Civil 3D Connection
    • Getting Started
    • Node Library
    • Sample Workflows
      • Roads
        • Light Pole Placement
      • Land
        • Service Placement
      • Utilities
        • Rename Structures
      • Rail
        • Clearance Envelope
      • Surveying
        • Point Group Management
    • Advanced Topics
      • Object Binding
      • Python and Civil 3D
    • Dynamo Player
    • Useful Packages
    • Resources
  • Dynamo in Forma Beta
    • Set Up Dynamo Player in Forma
    • Add and Share Graphs in Dynamo Player
    • Run Graphs in Dynamo Player
    • Dynamo compute service differences with Desktop Dynamo
  • Coding in Dynamo
    • Code Blocks and DesignScript
      • What's a Code Block
      • DesignScript Syntax
      • Shorthand
      • Functions
    • Geometry with DesignScript
      • DesignScript Geometry Basics
      • Geometric Primitives
      • Vector Math
      • Curves: Interpolated and Control Points
      • Translation, Rotation, and Other Transformations
      • Surfaces: Interpolated, Control Points, Loft, Revolve
      • Geometric Parameterization
      • Intersection and Trim
      • Geometric Booleans
      • Python Point Generators
    • Python
      • Python Nodes
      • Python and Revit
      • Setup Your Own Python Template
    • Language Changes
  • Best Practices
    • Graph Strategies
    • Scripting Strategies
    • Scripting Reference
    • Managing Your Program
    • Efficiently Working With Large Data Sets In Dynamo
  • Sample Workflows
    • Getting Started Workflows
      • Parametric Vase
      • Attractor Points
    • Concept Index
  • Developer Primer
    • Build Dynamo from Source
      • Build DynamoRevit from Source
      • Managing and Updating Dependencies in Dynamo
    • Developing for Dynamo
      • Getting Started
      • Zero-Touch Case Study - Grid Node
      • Executing Python Scripts in Zero-Touch Nodes (C#)
      • Going Further with Zero-Touch
      • Advanced Dynamo Node Customization
      • Using COM (interop) types in Dynamo Packages
      • NodeModel Case Study - Custom UI
      • Updating your Packages and Dynamo Libraries for Dynamo 2.x
      • Updating your Packages and Dynamo Libraries for Dynamo 3.x
      • Extensions
      • Defining Custom Package Organization for Dynamo 2.0+
      • Dynamo Command Line Interface
      • Dynamo Integration
      • Developing For Dynamo For Revit
      • Publish a Package
      • Build a Package from Visual Studio
      • Extensions as Packages
    • Pull Requests
    • Testing Expectations
    • Examples
  • Appendix
    • Frequently Asked Questions
    • Visual Programming and Dynamo
    • Resources
    • Release Notes
    • Useful Packages
    • Example Files
    • Host Integration Map
    • Download PDF
    • Dynamo Keyboard Shortcuts
Powered by GitBook
On this page
  • Nodes
  • Anatomy of a Node
  • Nodes Input/Output Ports
  • Node States
  • Freezing Nodes
  • Wires
  • Program Flow
  • Creating Wires
  • Editing Wires
Edit on GitHub
Export as PDF

Nodes and Wires

PreviousLibraryNextEssential Nodes & Concepts

Last updated 1 year ago

Nodes

In Dynamo, Nodes are the objects you connect to form a Visual Program. Each Node performs an operation - sometimes that may be as simple as storing a number or it may be a more complex action such as creating or querying geometry.

Anatomy of a Node

Most Nodes in Dynamo are composed of five parts. While there are exceptions, such as Input Nodes, the anatomy of each Node can be described as follows:

  1. Name - The Name of the Node with a Category.Name naming convention

  2. Main body - The main body of the Node - Right-clicking here presents options at the level of the whole Node

  3. Ports (In and Out) - The receptors for Wires that supply the input data to the Node as well as the results of the Node's action

  4. Default Value - Right-click on an input Port - some Nodes have default values that can be used or not used.

Nodes Input/Output Ports

The Inputs and Outputs for Nodes are called Ports and act as the receptors for Wires. Data comes into the Node through Ports on the left and flows out of the Node after it has executed its operation on the right.

Ports expect to receive data of a certain type. For instance, connecting a number such as 2.75 to the Ports on a Point By Coordinates Node will successfully result in creating a Point; however, if we supply "Red" to the same Port it will result in an error.

Tip: Hover over a Port to see a tooltip containing the data type expected.

  1. Port Label

  2. Tool Tip

  3. Data Type

  4. Default Value

Node States

Dynamo gives an indication of the state of the execution of your Visual Program by rendering Nodes with different color schemes based on each Node's status. The hierarchy of states follows this sequence: Error > Warning > Info > Preview.

Hovering or right-clicking over the Name or Ports presents additional information and options.

  1. Satisfied inputs - A node with blue vertical bars over its input ports is well-connected and has all of its inputs successfully connected.

  2. Unsatisfied inputs – A node with a red vertical bar over one or more input ports needs to have those inputs connected.

  3. Function – A node that outputs a function and has a gray vertical bar over an output port is a function node.

  4. Selected - Currently selected nodes have an aqua highlight around their border.

  5. Frozen - A translucent blue node is frozen, suspending the execution of the node.

  6. Warning - A yellow status bar underneath the node indicates Warning state, meaning the node either lacks input data or may have incorrect data types.

  7. Error - A red status bar underneath the node indicates that the node is in an Error state.

  8. Info - Blue status bar underneath the node indicates Info state, which flags useful information about nodes. This state can be triggered when approaching a maximum value supported by the node, using a node in a way that has potential performance impacts, etc.

Handling Error or Warning Nodes

Tip: With this tooltip information in hand, examine the upstream Nodes to see if the data type or data structure required is in error.

  1. Warning Tooltip - "Null" or no data cannot be understood as a Double, i.e., a number

  2. Use the Watch Node to examine the input data

  3. Upstream the Number Node is storing "Red," not a number

Freezing Nodes

In some situations, you may want to prevent the execution of specific nodes in your Visual Program. You can do this by "freezing" the node, which is an option under the node's right-click menu.

Freezing a node also freezes the nodes that are downstream of it. In other words, all the nodes that depend on the output of a frozen node will also be frozen.

Wires

Wires connect between Nodes to create relationships and establish the Flow of our Visual Program. We can think of them literally as electrical wires that carry pulses of data from one object to the next.

Program Flow

Wires connect the output Port from one Node to the input Port of another Node. This directionality establishes the Flow of Data in the Visual Program.

Input Ports are on the left side and the Output Ports are located on the right side of Nodes, hence, we can generally say that the Program Flow moves from left to right.

Creating Wires

Create a Wire by left-click on a Port subsequently left-click on the port of another Node to create a connection. While we are in the process of making a connection, the Wire will appear dashed and will snap to become solid lines when successfully connected.

The data will always flow through this Wire from output to input; however, we may create the wire in either direction in terms of the sequence of clicking on the connected Ports.

Editing Wires

Frequently we will want to adjust the Program Flow in our Visual Program by editing the connections represented by the Wires. To edit a Wire, left click on the input Port of the Node that is already connected. You now have two options:

  • Change connection to an input Port, left-click on another input Port

  • To remove the Wire, pull the Wire away and left-click on Workspace

  • Reconnect multiple wires using Shift+left-click

  • Duplicate a wire using Ctrl+left-click

Default vs Highlighted Wires

By default, our Wires will be previewed with a gray stroke. When a Node is selected, it will render any connecting Wire with the same aqua highlight as the Node.

  1. Highlighted Wire

  2. Default Wire

Hide Wires by Default

In case you prefer to hide the Wires in your graph, you can find this option from View > Connectors > untick Show Connectors.

With this setting, only the selected Nodes and its joining Wires will be shown in faint aqua highlight.

Hide Individual Wire Only

You can also hide selected wire only by Right-clicking on the Nodes output > select Hide Wires

Lacing Icon - Indicates the specified for matching list inputs (more on that later)

Preview off - A gray status bar underneath the node and an eye icon indicate that geometry preview for the node is switched off.

If your Visual Program contains warning or errors, Dynamo will provide additional information about the problem. Any Node that is Yellow will also have a tooltip above the Name. Hover your mouse over the warning or error tooltip icon to expand it.

Lacing option