Dynamo Package Management

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! :blush: 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:

  1. 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:

  2. 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.

  3. 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:

  4. 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.

  1. 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:

  1. Open Dynamo and go to the “Package Manager” by clicking on the “Packages” menu.

  2. Search for the package you need.

  3. Click on the package to view its details.

  4. 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:

  1. Download the package file (usually a .zip or .dll) from a trusted source.

  2. Extract the contents if it is a .zip file by using 7zip.

  3. 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
  1. 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:

  1. Checking the package details in the Dynamo Package Manager. The description or release notes often include compatibility information.

  2. 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.

  3. Reviewing the package’s documentation or the developer’s website for compatibility details.

  4. Testing the package with different versions of Dynamo and Revit to see if issues persist across versions.

11 Likes

Let’s say the user still working in project from version 2022-2024 and enginering normal working with project align with 1 version around 1 to 3 year, if author update to .NET8, also meaning all user with lower version will don’t have any way to update latest version.

1 Like

Correct @chuongmep - it’s a before/after event with some Packages (Noting that some still do work across both). We’re also working across other Package Manager improvements actively right now to try and help package authors get the right package to the end-user.

But to your point, yes this won’t allow for a package to be created once that spans across both; there will unfortunately need to be two versions :frowning:

3 Likes

To my understanding some of those packages are either end of lifed in Dynamo or very unlikely to be updated in the package manager. I remain hopeful the package manager will be pre-filtered or just all out culled eventually to deal with these and the chaff packages, or a minimum qualifier added for public packages such as a description, at least X nodes in the package etc.

That or maybe a moderated status which gives priority to packages by vote count or even initially hides/filters packages older than X years with less than Y votes. Would make for a better landing experience for users.

Some notes for people wanting to be aware of likely unsupported packages:

Lunchbox - deprecated, author only updates Grasshopper
Bumblebee - open sourced to my understanding by author
Orchid - is a prompt to go the authors github only
Bakery - a minefield of dependencies
Ladybug - acknowledged pulled interest/support from 2020 onwards

Feel free to edit/add correction if I’m mistaken of course, just based on my experience.

6 Likes

This is really cool!

Just dropping an info here as it might be useful. The latest version of Data-Shapes is 2025.3.118 and it should normally work with Dynamo 3 / Revit 2025 .

6 Likes

Hi Mostafa,

I guess I detected some nodes that were not functional such as ActiveDocument.FileSize.

After your feedback, I did another check with other nodes and fixed the table.

Thank you very much for the ping!

3 Likes

You’re probably right about that node i’ll check it out :sweat_smile:
Most work went into making the UI nodes work on this version.

Thanks so much for updating the table !

2 Likes

Bakery has been pretty unusable for a few years now. Shame cos I used to love it.

4 Likes

For anyone who stumbles on this thread, I thought I would share regarding Monocle and Rhythm.

Monocle and Rhythm’s latest updates work for Dynamo versions 2.12-3.0.x (Revit 2020-2025) via installing the latest.

They auto-resolve the version for you on the fly. The main consideration is, that you might need to restart Dynamo after installation to get them to fully load.

Also, I agree with @GavinCrump’s points regarding packages that are no longer updated. We almost need a list that indicates that.

I would like to see this on the package manager UI. Github has similar things for “maintained” or not.

8 Likes

Hi,
there is a small inversion of versions (columns) on DynamoIronPython packages

4 Likes

Believe or not I have tested dynamo packages in the whole year 2022 in my spare time.I filter by download times and install them one by one.I have found dynamo lags when I installed too much packages.So I seldome use Revit 2022 cause dynamo becomes really slow even I try my best to uninstall most of them.

In conclusion I test 277 packages.I have to say most of them don’t work.I wonder it’s ranked there cause it’s released at early days so people like me want to try.Here’s the screenshot of my Excel file.

For these 277 packages I only create 55 folders for most working nodes from them in case I might use them someday in the future.And forget which input is the right one.

However as time goes by.I try to use OOTB node as much as I can.Because some packages don’t get update and I worry I can’t use them in the future.Of if I use I use top 20 downloaded packages only.

For my experience I use clockwork most.Mr. Andreas Dieckmann,I really appreciate your great helpful packages.It hepls me a lot and many times.And another package I have to install everytime new Revit has come out is Lunchbox.

I mention a not very famous node but I thinks it’s much better than the OOTB “Now” node is Utility.FaderOneWay from package called “FireFly”

It works well but the package is long time ago.I worry it will disappear in future.If you guys consider add it as OOTB node.It would be great.
image

7 Likes

I also want to take a moment to encourage my fellow package authors (whose packages are open-source) to do better.

I was recently looking into an issue with data shapes. The code has not been updated on GitHub for quite some time.

Correct me if I am wrong, but that seems like the repo one should visit to see if it has been updated @Mostafa_El_Ayoubi.

3 Likes

:saluting_face:

4 Likes

Since Dynamo team decides to transfer many third party package node to OOTB one.I also recommend one,which is not from any package but a very interesting and one.I believe everyone who start learn Grasshopper in Rhinoceros3D have testes the built-in node called Image Sampler.It’s can be seen in a lot places.
Like this facade.


I’ve also make my one with a image of phoenix years ago.

It’s a little pity I don’t find similar nodes when I first learned dynamo.Also I found another way to achieve it manually.I still hope I could do it more easily like Grasshopper.
Here’s the video of which I learned from others.The principal is the same.Rhinoceros just make it as their out of the box node. :smiling_imp:

1 Like

Dynamo has nodes for this, I believe called Read Image. I’ve had issues with them assessing the image correctly in the past, but in essence it’s Dynamo’s image sampler.

The one in Gh is a triumph in UX as with many of their default nodes though.

1 Like

Couldn’t help myself

9 Likes

Cool, I uesed almost the same way. But Grasshopper node was more easy and friendly. We have to do much more steps manually to achieve it. Whatever it’s their decision whether to make it or not. I think there are many user who comes from grasshopper like me. They would compare both when they want the same function.

Dynamo historically has been super granular and required a lot of developer-mindset and thinking. We’re wanting to retain the power of what Dynamo can do, but remove the unnecessary burden of having to do wasteful things. This sounds like a good case where “We can do much better” that what we have right now.

FYI @achintya_bhat

1 Like

I think Dynamo has a lot more things to deal with, the focus is on far more than geometry - whereas the core nodes in Grasshopper are more orientated towards this and it’s an older program so has had more development time. Not meant to be a challenge vs Dynamo’s UX by any means.

Give me lists over trees any day…

1 Like