Zero Touch Nodes Issues

I have been developing my own zero touch nodes, but have been having a frustrating issue: Every time I open Dynamo, I have to re-import my dll library in order to test it. I’ve tested other Zero Touch node packages, such as Mesh Toolkit, and they all pop up directly in the browser. I’ve followed all the tutorials online I could find, and none of them address what to do if this occurs or what to look out for to prevent this from occurring. I’ve been combing through all of the (admittedly sparse) information on this online and trying to compare between package structures and files, and I can’t figure out what I’m doing wrong that others are doing right, other than maybe a more fleshed out .xml file, which i don’t understand how to create.

I am developing mine in through Visual Studios, rather than C# like all the examples are in, which may or may not be the root cause of this issue or the issue of my ??_DynamoCustomization.xml file not correctly altering the names of my categories.

Any help on this issue would be greatly appreciated, and may go a long way to resolving my issue with the ??_DynamoCustomization.xml, which may not be working simply because Dynamo isn’t picking up the packages correctly.

After a little more playing around with some things and adding xml comments to fill out node information, I’m now running into the issue of my nodes in an existing project do not relink to the actual nodes, despite re-importing the library from the same location. Friday, when continually re-building my project, the node would remain and be okay, but I was also getting the dll to remain imported after an initial “import libraries” move.

what version of Dynamo are you working in?
in 1.x if the graph referenced a ZT node Dynamo would look for it based on the location it was last in relative to the file.
in 2.x when you import a dll that dll gets added to the (node and package path settings) so it will be available when dynamo restarts (or should be) to all graphs.
packages that you download from the package manager are a bit different, as they are packages, not just raw dlls and are installed to package folders that get loaded at startup.

check your node and package path settings under settings.

Also, to note you need to reboot dynamo to reimport any changes you make to your dlls, recompiling them while dynamo has the dlls loaded likely will not work well.

1 Like

I’m running 2.x. The issue with them supposedly being different is that I’ve built my project to export to a package format, into the AppData package location. When comparing my package with another I’ve downloaded, I see no different between file structure, and am wondering if there’s something inside the files or VS project settings that are different for me compared to the people making the tutorials that they didn’t cover.

The project won’t build as some of the files are being accessed by Dynamo, so while it’s annoying for debugging, I’ve learned to live with closing Revit and Dynamo between builds. Unfortunately, like you said, I should be seeing the plugin in my browser after each build, but for some reason I have to reimport the dll each time I open Dynamo, despite the dll location being saved in Settings > Manage Node and Package Paths upon each restart. However, since I’ve set up the exports to mirror a package file structure (akin to MeshToolKit), I would expect to see the plugin in my browser without importing the dll each time.

The first tutorial I followed to set up my project is here:
Yet even following his steps exactly and using the code as shown in the handout, I had to import the dll rather than it just automatically showing up as he suggests it will. I’m pretty sure this is also why my DynamoCustomization.xml file is not functioning as intended.

Upon a little further inspection, I found a possible key difference between the two, shown in the attached image. I’m unsure how to set that additional field for Node Libraries in my plugin (top), and somehow it appears as though the Additional Libraries is set to what my Node Libraries should be set to.![Dynamo Package Manager Comparison

Dynamo Package Manager Comparison

Hi @pmacknight

Could you check your DynamoSettings.xml location and make sure your ZT node package is located in the same packages path?

I have my package inside the %appdata%\Dynamo\Dynamo Revit\2.0\packages folder, which should be picked up since that’s also where my downloaded version of MeshToolKit is sitting, the latter of which is getting picked up by Dynamo. Dynamo is reading %appdata%\Dynamo\Dynamo Revit\2.0.

make sure that a direct path to your ZT dll is NOT in the package paths then. The dll is either going to be imported by virtue of being part of a package or a direct path to the dll - not both.

I have not used the bimorph tutorial - I can only vouch for our samples:

if you build this it should generate a package you can move to app data/packages or reference its parent directory in your package paths.

Examining your files, I ended up finding the solution when I noticed your node_libraries line was left as an empty list. I went back to the Biomorph tutorial and found the issue. I’m a little ashamed to admit it was a simple typo on my part… finally uncovered that I had a “-” instead of a “=” in the node_libraries line of the pkg.json file, where I’m supposed to have “Culture=neutral”.
I’d already scoured that file, so I started looking elsewhere and eventually ended up here. Thanks for the quick responses!

I’ll look into your samples more so I can try to expand my knowledge on ZT nodes as much as possible going into the more advanced classes/functions I want to create. Thanks again for the help.