Revit Dynamo 2026

Does anyone else have issues with Dynamo in 2026. Its unable to read any script made in previous versions or Revit and whenever i save a script created in 26 all the nodes go away.

Sounds like an add in with a namespace conflict. Disable all of your Dynamo packages and Revit add-ins and see if that resolves it.

@jacob.small

Out of curiousity
Can you elaborate on this? Like what is namespace?

Going to get a bit deep into the weeds here, but I have some free time and you asked for it…

TLDR: Two different tools in the Revit context are using different versions of the same dependent library, and Revit can only reference the first version loaded.

All programming languages are executed as machine code - humans can’t read it, write it, or work with it. The human readable code we’re used to is written in C#. There’s a series of languages between that machine code and C#. You don’t need to know the ins and outs of them, but it helps to understand if we know them. Instead of getting into the weeds here I’ll just provide an analogy of needing motorized transport to go from where you are to the store, and list the options from ā€˜CPU usable’ to ā€˜human usable’.

CPU USE

  1. Machine Code requires you build every component from raw metal, then assemble them into a car, then go get it registered, and finally drive it to the store. This is what your CPU uses.
  2. Assembly requires you identify and then buy every component, then assemble them into a car, then go get it registered, and finally drive it to the store. This is what the drivers that interact with your hardware are written.
  3. C is buying an unassembled car kit, assembling it, then go get it registered, and finally drive it to the store. This is where operating systems are written.
  4. C++ is buying a fully assembled car, then go get it registered, and finally drive it to the store. This is where Revit, AutoCAD, and Civil 3D are written.
  5. C# is using Uber/Lyft/Bolt/etc. to get someone to drive you to the store. This is where Dynamo and all Revit Add-ins are written and run. At this point things are fairly easy to read and write.
  6. Dynamo is having the food delivered. This is where Reed has seen the issue. At this point things are VERY easy to read and write.

HUMAN USE

Stuff written in a lower number will generally be faster than at a higher number. If there is a problem at a lower number, the upper numbers will fail in varying degrees. Since the error is happening at the C# level (expressed as a problem with Dynamo not a problem with a graph in Dynamo) we need to look into what can happen at the C# level so let’s look at that.

To make the C# stuff scale it allows referencing common components to make things work. Those references have to be loaded into the application in order for it to work. They’re called dependencies in common terms. You can think of it as the app version you use in the ride share analogy I used for C#. If I am using Uber, and there is a Lyft driver across the street I don’t get assigned him, similarly if you’re using Dynamo for Revit you can’t access Dynamo for Civil 3D tools as you’re missing a reference. If I’m using Uber and the driver is using Uber then we’ll all set as we’re using the same namespace.

But what if I’m using Uber version 1.492.050 on an old iPhone 4, and the driver is using Uber version 3.6.10.100 (which I think is the latest iOS version)? Well version 1.492.050 is two major updates behind the version the driver has, so even if I can connect to him it’s not going to send the right data - I might be sending ā€œmy name, my location, my destinationā€ but his phone might expect ā€œmy phone number, my name, my location, my destinationā€. As such it’s telling the driver to pick up the building at the location I want to be and bring it to an inexistant state of being.

While that got unexpectedly dark, both the driver and I need to have a relatively similar version standard to make the communication work, even if we’re in the same app. Sometimes it’s ok to be a number off, sometimes not. This is namespace collision.

In this particular instance, it sounds like this may be the cause of Reed’s issue. One part of the system (Reed’s Dynamo version) is trying to use a library (sounds like NewtonSoft.JSON or another JSON interpreter if we want to get specific) but another part of his environment previously loaded a different version. Could be Dynamo is expecting an older version, could be Dynamo is expecting a newer one. Either way it’s unable to open the old version of the files as a result. The conflict can occur between any two parts of the ā€˜phone’ which is the host application running in .NET - so anything that ā€˜lives and dies’ with Revit has to be ā€˜nearly’ aligned.

Now modern C# and .NET (in this context meaning version 10) can sort of enable loading the right version on the fly if everyone builds stuff to a particular standard. However if any one part of the system (so Revit, a Revit add-in, Dynamo, a Dynamo package) doesn’t follow that standard things fall apart quickly. And that dependency isolation also brings along a performance hit that isn’t trivial, so most of the people building in that ecosystem haven’t adopted it (no one else is, so no benefit to users who also take a speed hit).

Thank you for this detailed explanation @jacob.small.

Now that was a deep dive. As soon as I saw machine code abstraction layers I knew I was in for a good ā€˜Jacob post’. They really need a blog or collation method at this point, so much value… I always learn something new no matter how much I think I may already know, or walk away with a solid perspective shift.

If C is a car kit, doesn’t that mean the first car kit wrote itself? The plot thickens… fun metaphor. Drivers… I see what you did there. Driver delivering the building to me… poetry.

I’m in the process of explaining to my business the pros and cons/considerations of collating core dependency libraries as a common core to our add-in ecosystem, and why it is safer to bundle an ā€˜all apps’ deployment to avoid these collisions between core changes, this is a great metaphor - may have to borrow it, but will let them know where it came from.

Thanks for the kind words - means a ton.

As always you and the rest of the community are free to borrow as it helps - no attribution required. :slight_smile: