Can't seem to install packages on Dynamo sandbox

Hello,

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.

This is my Dynamo Sandbox version.
Dynamo Sandbox

Is there a different way to install these packages?

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.

2 Likes

Rhythm typically loads partially on sandbox. But with Dynamo Sandbox 2.13 there’s a weird issue I’m chasing.

Update 2022.03.31

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.

2 Likes

Update

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.

Now I have to figure out another way to allow loading in sandbox, civil 3d etc.

Needless to say, I am thrilled to have to chase another issue due to the package manager. :unamused:

2 Likes

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.

2 Likes

hmm, a couple questions:

  1. can you try calling your core nodes inside a codeblock, do they work? I’m wondering if they are just not shown in the library.
  2. I think a more robust solution could be to split the core into another package which the revit package depends on.
  3. 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. - is there a specific PR where you have identified this change?
  1. Images Below.
  2. 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)
  3. Let me check it out. My observation was more around the fact it works in 2.12 and the library changed in 2.13 so… (images below) ( I think this might be part of the reason, but I am not entirely sure. Something def. changed Dyn 2693 solution 1 - implicit behavior for loading NodeLibraries tha… · DynamoDS/Dynamo@9f305d7 · GitHub)

2.12 Package Dialogue:

2.12 Code Block:
image


2.13 - Package Dialogue:


2.13 code block:

1 Like

another question - does your RhythmCore binary contain an unused nodeModel or NodeCustomization?

I do think it does have a nodecustomization DLL for the icons

sorry, should have been more specific, I meant a type inheriting from INodeViewCustomization<T>

RhythmCore doesn’t but RhythmUI does (Search · INodeViewCustomization · GitHub)

Are you sure that they load alphabetically? From what I can tell they are loaded using DirectoryInfo.EnumerateFiles, which I don’t believe is guaranteed to be alphabetical.

:+1:

Alphabetical or not. Something changed. My assumption was that it loaded that way because RhythmRevit and RhythmViewExtension never loaded in core.

With that said, I am done with this conversation and I will figure it out internally. Thanks again OP for reporting and thanks to everyone else who replied.

2 Likes

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.

We are talking about this internally, and what is the best way to handle it moving forward. Totally get that writing two packages and maintaining that is a bridge too far :pray:

4 Likes

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…

1 Like

@truevis Please do start a new thread and CC in myself and @Michael_Kirschner2 :pray:

1 Like

Here, @Michael_Kirschner2 and @solamour:

Update: Partial loading of packages has been added to Dynamo starting with 2.15.

3 Likes