I am trying to install few common packages on Dynamo sandbox but they don’t show up.
I got to know that packages (for dynamo on Revit) have different versions that need to be followed to get them to work on different Revit versions(20,21,22) and I understood that part. For sandbox though, I’m not sure what versions of these packages will work with my version of sandbox.
Tried installing the latest version of Archi-Lab and Rhythm packages, it shows that they are installed but they don’t show up in the Add-ons menu. I closed and re-started Dynamo to see if it changes but no luck. I’m not even sure how I managed to install GeniusLoci package and at this point I don’t want to disturb it and lose it too.
Packages which call external references that cannot be loaded will not load into the library. As such any package which contains a reference to the Revit API in a pre-compiled code (ie: zero touch nodes, node model nodes, or really any node that needs an IDE to edit) will not show in the library unless you are in Dynamo for Revit.
Some packages (a few versions of Rhythm and Datashapes come to mind) will actually compile their ‘Revit’ and ‘core’ nodes separately (ie: MyPackage.Revit.dll and MyPackage.Core.dll), allowing access to the non-Revit stuff in other Dynamo flavors such as Sandbox or Dynamo for Civil. The same can be done going through other way.
Genius Loci and similar packages (ie: Clockwork) will load into any flavor of Dynamo as they only have runtime executed code, as DYF nodes wrapping calls to the Revit API via Python. This means you can see and even place these nodes, but they may not process data correctly as the Revit API will not be present.
Rhythm typically loads partially on sandbox. But with Dynamo Sandbox 2.13 there’s a weird issue I’m chasing.
From Dynamo 2.13.x and beyond, Rhythm no longer supports Dynamo sandbox and other installations of Dynamo (Civil3D). Due to the issues documented below I will not be dedicating time/resources to fixing this interaction. Thank you for understanding.
So for Dynamo 2.13, the team decided to make it to where a package won’t load at all if any of the DLLs fail to load.
This is unfortunate because I was kind of exploiting that to have RhythmCore nodes load in sandbox and other versions.
Dynamo used to load the DLLs in order from a package and gracefully fail on the ones that do not load. Dynamo seemed to load the DLLs in order from a package and gracefully fail on the ones that do not load. (edited based on comments below)
That is why Rhythm DLLs are alphabetic. RhythmCore comes before Revit, so yeah. It just worked.
The fix (for now) is to remove the Revit-related DLLs from your sandbox only Rhythm install.
It would be nice if the Workspace Reference extension could check compatibility of the individual DLLs instead of just the whole package. That way you could choose to ignore references that can’t or won’t load. Could potentially help with some versioning issues as well.
Unfortunately, I am not going to do this. I assume just tell people to remove the DLLs as I did above. Maintaining 2 versions of Rhythm is something I am not interested in. Although the last thing I need is a situation like archi-lab where I have to give people a whole set of instructions to install my package. (nothing against how he is handling it, I think he is making the best out of what we have)
I feared this would be the case. Even though I don’t understand all the technicalities, I really appreciate the detailed answer. I guess to work on any Revit related stuff I need to use Dynamo for Revit instead of the Sandbox flavor.
This is a quietly BIG problem. Revit 2022.1 and Dynamo 2.12 – My client cannot use any of my graphs because something is making the DLLs not work (from the IT or anti-virus side, presumably) and there was no warning except red nodes when open in Dynamo. The Packages are loaded but not showing up in the Library. I suppose I need to start a new thread…