Compatibility and Upgrading

I’m starting the process of preparing my company’s Dynamo library for migration from R2022 to R2024. I’d prefer to be able to analyze the scripts to identify some specific things i know to look for:

  1. python nodes
  2. Dynamo nodes with known compatibility issues
    2.1) ex, from 2.10 to 2.12 there was a major change to the IF node.

is there a list of nodes with known compatibility issues? how might i identify these without placing each node from Dynamo 2.12 and converting it to 2.17

My current thought is to use python or powershell to search for references to the python and other nodes, so i don’t have to go through and open them one-by-one.

For ‘our of the box’ stuff, this awesome bit of code from @john_pierson is going to be your new best friend. It’s still somewhat green so you might have some hiccups, please report them as an issue on the github if you find anything. GitHub - DynamoDS/DynamoGraphMigrationAssistant

For building your own custom stuff, this ZIP file contains some graphs I built for BiLT America last year. There are tools for things like associating graph properties, doing some of the stuff the bulk updater does (like changing the Python engine), inserting your tracker, and the like. Look into how they work and you can learn how to bulk manipulate a LOT of stuff which is pretty cool.

1 Like

The tool jacob mentioned below does quite a bit of this for you, and we are actively seeking people to test it.

It currently handles:

  • node spacing
  • if node replacement
  • input ordering based on Y-axis location
  • inputs named with linebreaks

One thing it does not do is Python migration. I suggest just installing the DynamoIronPython package and being done with it. When implementing their own migration utility, the Dynamo team made the commands internal only (marked as internal methods) and I cannot use those in the tool I am writing. In addition to that, the migration that does happen with Python doesn’t work half of the time, and batching that over your whole library is a terrible idea.

Oh and changing custom packages internal .py nodes seems like a nightmare as well, (both from a management and licensing standpoint), so “auto python migration” is not something I currently support and I cannot (in good conscience) suggest that anyone try to do it.

A few other nodes that do not auto-replace on upgrade are:

  • Data.Remember (from Generative Design)
  • Data.Gate (from Generative Design)

You have to replace these manually or see this error forever.

2 Likes