The Dynamo team cares deeply about you finding success with your workflows and not being frustrated with changes, so we are here to help with the transition of Dynamo’s underlying technology from .NET4.8 to .NET8.0.
But Emrullah, I do not know what this .NET thing is? No problem! What matters here is that for packages and extensions to work in Dynamo they need to be built on the same foundation that Dynamo is, which is a Microsoft framework called .NET.
Dynamo has been on the .NET4.8 version for around 5 years or so now and has made this change to stay in lockstep with Revit, Civil 3d and your other favorite host applications as without making this change there would not be a Dynamo. Not fun to think about!
Transitioning to .NET 8 allows Dynamo to benefit from the latest enhancements from the .NET community, including improved performance and stability. However, this change also may require package owners to update their packages to ensure compatibility with Dynamo 3.x. If packages are not updated, sometimes it is possible for users to take additional steps to make them work with Dynamo 3.x. These improvements can be done only if the node is not a ZeroTouch node. For more details about this transition, please read our blog post. We also encourage you to participate in the survey at the end of the article to help us improve it.
In this post, we aim to clarify the situation for you and the rest of the Dynamo community. We have received many questions on this topic, and it is time to address them all at once.
Which package version should I use for which version of Dynamo?
We have created a table listing the top 30 packages by download numbers. While we have not gone through every single package, you should be able to understand the process more clearly for your favorite package by reading this post. This table includes package names and their availability for different versions of Dynamo. To clarify some terms:
-
Not Available: means that you cannot use that package with that version of Dynamo.
-
Not Updated: means that the last update of the package predates the Dynamo 3.x release, and it contains some nodes that are not compatible with Dynamo 3.x. You can still download this package and use any nodes that remain compatible with Dynamo 3.X. This mostly occurs when packages do not use Python code and do not touch .NET APIs.
The table was created by testing the package versions with different nodes in different Dynamo versions. We have spot checked every single package to a reasonable degree as checking every single node is not possible given the context needed for some of them… and, come on guys, we have families and lives too! But if you do notice any errors in the table, please do contact us in the thread below and we will update any necessary changes.
Here is the table for packages from our community:
ID | Package Name | Last Version for Dynamo 2.x (.NET 4.8) | First Version for Dynamo 3.x (.NET 8) | The Last Update |
---|---|---|---|---|
1 | archi-lab-net | 2024.217.1024 | 2024.217.1024 | 10-Oct-23 |
2 | LunchBox For Dynamo | 2018.8.8 | Needs Update | 8-Aug-18 |
3 | spring nodes | 121.1.1 | 132.1.0 | 24-Feb-22 |
4 | Clockwork for Dynamo 2.x | 2.6.0 | Needs Update | 26-Jun-23 |
5 | Rhythm | 2024.3.2 | 2024.5.1 | 24-May-24 |
6 | bimorphNodes | 4.2.4 | 5.0.0 | 14-Oct-23 |
7 | Genius Loci | 23.7.13 | Needs Update | 29-May-24 |
8 | SteamNodes | 1.2.4 | Needs Update | 5-Jan-18 |
9 | Data-Shapes | 2024.2.114 | 2025.3.118 | 19-Apr-24 |
10 | MEPover | 2022.10.30 | Needs Update | 30-Oct-22 |
11 | BumbleBee | 2021.25.03 | Needs Update | 26-May-20 |
12 | Civil3DToolkit | 1.1.32 | 1.1.32 | 15-Aug-22 |
13 | Modelical | 2023.10.6 | Needs Update | 6-Oct-23 |
14 | Orchid | Not Available | Needs Update | 21-Apr-21 |
15 | Bakery | 2019.5.8 | Needs Update | 8-May-19 |
16 | Ryhnamo | 2018.11.26 | Needs Update | 27-Nov-18 |
17 | Synthesize toolkit | 24.4.2101 | 24.5.1002 | 5-Jun-24 |
18 | WombatDynamo | 2.3.5 | 2.3.5 | 23-Sep-21 |
19 | Dynamo for Rebar | 2.0.2 | Needs Update | 4-Sep-18 |
20 | Ampersand | 2022.1.25 | 2022.1.25 | 26-Jan-22 |
21 | Archi-lab_Mandrill | 2021.26.1 | 2021.26.1 | 5-Apr-21 |
22 | Ladybug | 0.2.1 | Needs Update | 9-Aug-18 |
23 | Crumple | 2022.5.27 | 2024.4.3 | 20-Apr-24 |
24 | BIM4Struc.Rebar | 1.3.0 | Needs Update | 4-May-18 |
25 | Slinghshot! for Dynamo | 2014.11.30 | Needs Update | 30-Nov-14 |
26 | Structural Design | 2023.10.10 | 2024.4.15 | 16-Apr-24 |
27 | DynaMaps | 2019.2.21 | Needs Update | 3-Sep-19 |
28 | Spring Dynamo 2.0 | 0.0.3 | Needs Update | 6-Mar-20 |
29 | Monocle | 2024.4.2 | 2024.5.2 | 16-May-24 |
30 | LinkDWG | 0.3.91 | Needs Update | 1-Aug-20 |
Here is a table for packages from Dynamo Team:
ID | Package Name | Last Version for Dynamo 2.x (.NET 4.8) | First Version for Dynamo 3.x (.NET 8) | The Last Update |
---|---|---|---|---|
1 | DynamoIronPython2.7 | 2.5.0 | 3.0.0 | 14-Feb-24 |
2 | DynamoIronPython3 | 1.1.0 | 1.3.1 | 14-Feb-24 |
3 | MeshToolkit* | 4.0.0 | 5.0.0 | 31-Jan-24 |
4 | Dynamo Graph Migration Assistant | 1.0.1 | 1.0.1 | 24-Oct-23 |
5 | Dynamo Future File | 0.0.1 | 0.0.1 | 7-Mar-22 |
6 | Dynamo Samples (Maybe not needed) | 1.0.0 | 1.0.0 | 7-Dec-21 |
7 | Dynamo Text | 2.0.1 | 1.0.0 | 16-Apr-18 |
8 | Dynamo Unfold | 1.0.1 | 1.0.1 | 26-Apr-16 |
9 | VASA | 0.4.0 | 0.1.0 | 24-Oct-23 |
10 | Space Analysis | 0.4.0 | 0.1.1 | 6-Mar-23 |
11 | Solar Analysis for Dynamo | 1.15.0 | Needs Update | 12-Jan-24 |
12 | Refinery Toolkit | 1.1.1 | 1.0.0 | 12-May-20 |
*MeshToolkit: MeshToolkit versions 3.0.0 and older are compatible with Dynamo versions older than 2.17 and Revit versions older than 2024. MeshToolkit version 4.0.0 is compatible with Dynamo versions 2.17 through 2.19 (Revit 2024).
As you may have noticed, it is not always necessary to update packages to the latest version of Dynamo. For example, WombatDynamo’s last update predates the Dynamo 3.x release, but many of its nodes still work with Dynamo 3.x. This is because the nodes that are working do not rely on changes imposed by .NET8 in Dynamo or any changes to Revit’s API’s.
However, some packages might not work with newer versions of Dynamo if they are not updated. This is due to changes in Revit and Dynamo’s APIs. Fortunately, there are workarounds to make older package nodes run in newer versions of Dynamo.
If a package custom node relies on an older version of the Dynamo API:
-
Open the custom node to understand the issue. If it is related to the Dynamo API, you will see a warning message over the node. These warning messages are limited with input, output nodes and DesignScript language in the Code Block. If there is a problem in the Python Script node, we need to move it out from the custom node and test it in the main project.
If a package custom node relies on an older version of the Revit API:
-
This issue often arises when the custom node includes a Python script using the Revit API. Sometimes, you cannot see the problem by just opening the custom node.
-
Copy the Python script from the custom node to your main Dynamo project and reconnect the inputs. This should generate a warning message in the Python code that explains the issue. Then, adjust the code according to the new Revit API version.
If the Python code is not compatible with the current Python engine:
-
Officially, Dynamo has one Python engine called CPython3, but you can install 2 more Python engines, additionally.
-
DynamoIronPython2.7 package for the IronPython2 engine.
-
DynamoIronPython3 package for the IronPython3 engine.
-
CPython3 is included in Dynamo 2.x and later versions.
Here is a documentation to understand the difference between CPython and IronPython.
-
If you are using a package node with a Python script written for IronPython in Dynamo 3.x, it may not work as expected. You need to install the DynamoIronPython2.7 package to use the IronPython2 engine.
We hope this information helps clarify package versions. Remember, not every package version is compatible with every Dynamo version. Always check compatibility before downloading any package.
FAQ
What is a framework?
A framework is a set of tools, libraries, and best practices that provide a foundation for developing software applications. It helps streamline the development process by offering pre-written code and a structured environment, reducing the need for repetitive tasks, and ensuring consistency in the application.
What is .NET 4.8 and .NET 8?
- .NET 4.8: This is the final version of the .NET Framework, a Windows-only framework used for building and running applications on Windows. It offers a consistent programming model and a comprehensive set of libraries.
- .NET 8: This is the latest version of the .NET platform, a cross-platform, open-source framework for building modern applications. It includes performance, security, and stability improvements and supports development on Windows, macOS, and Linux.
What is a Package?
A package in the context of Dynamo is a collection of nodes, scripts, or other resources that extend Dynamo’s functionality. Packages can include custom nodes, libraries, or tools that enhance your ability to automate tasks.
How do I choose a particular package version?
To choose a specific package version in Dynamo:
-
Open Dynamo and go to the “Package Manager” by clicking on the “Packages” menu.
-
Search for the package you need.
-
Click on the package to view its details.
-
The versioning of packages is up to each package author, and versioning styles will differ between packages. Some packages will be clearer on what they support based on versions of descriptions, and others may require a little more trial and error.
How do I manually install a package if something goes wrong?
If you need to manually install a package:
-
Download the package file (usually a .zip or .dll) from a trusted source.
-
Extract the contents if it is a .zip file by using 7zip.
-
Place the extracted folder into Dynamo’s packages directory. The default location is:
- For Windows, here is an example path. Note that for different host applications, the path might be different: C:\Users<YourUsername>\AppData\Roaming\Dynamo<Dynamo Host><DynamoVersion>\packages
- Restart Dynamo and the host application to load the newly installed package.
How can I say that my package is not compatible with my Dynamo version?
You can determine package compatibility by:
-
Checking the package details in the Dynamo Package Manager. The description or release notes often include compatibility information.
-
Looking for error messages when you try to load or use the package in Dynamo. Incompatible packages often cause errors or prevent certain nodes from functioning.
-
Reviewing the package’s documentation or the developer’s website for compatibility details.
-
Testing the package with different versions of Dynamo and Revit to see if issues persist across versions.