Dynamo is a visual programming tool that aims to be accessible to both non-programmers and programmers alike. It gives users the ability to visually script behavior, define custom pieces of logic, and script using various textual programming languages.
Looking to learn or download Dynamo? Check out dynamobim.org!
Create a Node Library for Dynamo
If you're interested in developing a Node library for Dynamo, the easiest place to start is by browsing the DynamoSamples.
These samples use the Dynamo NuGet packages which can be installed using the NuGet package manager in Visual Studio.
Documentation of the Dynamo API with a searchable index of public API calls for core functionality. This will be expanded to include regular nodes and Revit functionality.
The API Changes document explains changes made to the Dynamo API with every version.
Build Dynamo from Source
You will need the following to build Dynamo
- Microsoft Visual Studio 2017
- Microsoft .NET Framework 4.7.
- GitHub for Windows
- Microsoft DirectX (install from %GitHub%\Dynamo\tools\install\Extra\DirectX\DXSETUP.exe)
If you are working on legacy branches, you need to install legacy .Net Framework archives here.
Directions for building Dynamo on other platforms (e.g. Linux or OS X) can be found here.
Find more about how to build Dynamo at our wiki.
Dynamo is an open-source project and would be nothing without its community. You can make suggestions or track and submit bugs via Github issues. You can submit your own code to the Dynamo project via a Github pull request.
See the Release Notes.
Dynamo contains an instrumentation system that anonymously reports usage data to the Dynamo team. This data will be used to enhance the usability of the product. Aggregated summaries of the data will be shared back with the Dynamo community.
An example of the data communicated is:
"DateTime: 2013-08-22 19:17:21, AppIdent: Dynamo, Tag: Heartbeat-Uptime-s, Data: MTMxMjQxLjY3MzAyMDg=, Priority: Info, SessionID: 3fd39f21-1c3f-4cf3-8cdd-f46ca5dde636, UserID: 2ac95f29-a912-49a8-8fb5-e2d287683d94"
The Data is Base64 encoded. For example, the data field above ('MTMxMjQxLjY3MzAyMDg=') decodes to: '131241.6730208' This represents the number of seconds that the instance of Dynamo has been running.
The UserID is randomly generated when the application is first run. The SessionID is randomly generated each time Dynamo is opened.
Dynamo is licensed under the Apache License. Dynamo also uses a number of third party libraries, some with different licenses. You can find more information here.