Setting out to learn Dynamo can be challenging, especially when it comes to creating your first Visual Program. If you are like me, you knew nothing about programming going in, but that shouldn’t stop you. Dynamo is described as Visual Programming, meaning we define the relationships of the program through a “visual” interface. Instead of typing text-bound syntax, we connect pre-made nodes together. Let’s start with some key terms and definitions before diving into creating a Visual Program from scratch.
What is a Node?
Nodes are the objects that we connect in order to form a Visual Program. Most Nodes have five parts: their Name, Main Body, Ports (in and out), the Lacing Icon and some have a Default Value. The name of the Node follows a Category. Name naming convention. Here is an example of a Node:
Here, we can see that this Node has three input Ports and one output Port. The name of this Node would be Point.ByCoordinates. In the bottom right corner, you will see “AUTO” when you first place a Node, this is the Lacing Icon. This will indicate which Lacing option the Node is currently set to. This is an example of a Node that also has a default value, that can be used or not used. In order to access this option, just right click on an Input Port and you can check “Use Default Value” if that is what you would like to do.
What is a Wire?
Wires connect the Output Port from one Node to the Input Port of another Node. This establishes the flow of data in the Visual Program. Since the output Ports are on the right and the input Ports are on the left, we can generally say that the program flow moves from left to right. To create a Wire, left click on a Port and then left click the Port of another node to create a connection. You can see this below:
For example, we can see here that a different Wire is being used to input a number value to each Input Port. By hovering over the Point.ByCoordinates Node I can then pin the output that the Node is giving, which is what we are seeing in the white box below the Node. Essentially, all we are doing here is setting a coordinate point by inputting a number value for the X, Y and Z coordinate.
Why do Nodes display in different colors?
Dynamo will indicate the state of your Visual Program by displaying nodes in different color schemes.
Using the previous example, we can see here that with one of the Number Sliders disconnected, the Node displays as a light grey. This means the Node is now inactive and will need to be connected by a Wire to become active. An active Node shows as dark grey, which you can see with the Number Sliders.
Here, I changed one of the Inputs to a Views Node. This Node is selecting a view within the Revit model, but because the Point.ByCoordinates expects a different data type, it is now in a warning state. If you are unsure of the correct data type to push into a Node, hover over the Input Port and Dynamo will tell you what that specific Node calls for. Many times, you will get a warning without realizing you are trying to input the wrong data. When this occurs, hover over the top of the Node where you see a little box with lines. This is the Warning Tooltip and can give insight as to what needs to be changed in order to fix the warning. One other thing we can see from this example, is that the Views Node appears with a blue outline, this means that the Node is currently selected.
If you are seeing a red Node, that means the Node is in an error state. Dynamo will also include a tooltip in the same way that a Node in the warning state has one. It’s also important to note that you may freeze nodes, meaning that your Visual Program will not run that Node until it is unfrozen. This can be helpful sometimes when you are only trying to run a portion of the program. Once a Node is frozen, it will display as transparent.
The Dynamo Library:
The Dynamo Library contains the Nodes we add to the workspace. It can be found to the left of the workspace and will appear as shown here. In the library, we can search by typing in the search bar or by browsing through them. The library contains the basic nodes installed, custom nodes we create and nodes from the Package Manager that you add to Dynamo.
As we go down into the library, we are browsing a library, the library’s categories, and the category’s sub-categories to find a Node. The hierarchy of each library is shown in the name of the nodes. Besides searching for key words to find nodes, we can type the hierarchy separated with a period. The format is as follows: library.category.nodeName.
It is important to note that by typing in different portions of the Nodes place in the hierarchy will return different results. Beware of similarly named nodes, as they will have different functions. You can see how this works below:
We can see here by searching for a Node using the library.category.nodeName format, Dynamo will provide you with the exact Node. You may also search by category.nodeName, which will include results from all libraries. It is also possible to search by nodeName or a keyword. This gives a broader selection of Nodes but can be helpful when trying to find a Node you are unsure the name of.