Can't get Zero Touch Icons. Already tried all post and guides I found

Hi everybody!
I’m recently starting with Zero Touch Nodes and learning C#. I’m trying to add icons to package/nodes, so I have a base to start building a nice package of my own. So far I cant get it working.

Sorry if it sounds like a re-post, but I already tried almost everything I found on the web.
I followed to the letter both Dynamo Wiki Guides and samples (https://github.com/DynamoDS/Dynamo/wiki/Creating-Icons-for-Custom-Nodes and https://github.com/DynamoDS/Dynamo/wiki/Add-Icons-for-a-Zero-Touch-Assembly-or-NodeModel-assembly) and read every post regarding those two guides.
I also looked at other packages github repos to compare the files.

What I tried so far:
-Testing “BeforeBuild” and “AfterBuild”, tweking paths and names for the .resx and .resources files.
-Naming image DefaultCustomNode, and specifying an individual node with full name (Package.Namespace.Class.Node.Size)
-Publishing the package locally instead of importing dll, so Dynamo creates the pkg.json

What I get:
-Project compiles without warnings
-Intermediate file ****.resources is generated
-Package.Customization.dll is generated in the out folder along Package.dll
-Icons not showing in Dynamo

What I think it can be:
-Something about the pkg.json not reading correctly the customization.dll. I found little information about that kind of file specific to Dynamo

-Something about the Strong Typing. Even though I cleared the Custom Tool field, in VS, if i click the image in the .resx file, and click the type propierty, i get this:
imagen

“The resource will be generated with this type in the strong typed resource class. For example, this resource may be generated as a String or Bitmap object”(Translation may be a bit off)
This even matches what it says on the wiki, about failing without warning.

Thank you all in advanced, I wish you a happy 2020,
Matías

package.customize.dll is the icons generated for custom nodes(.dyf extension) whereas (your_assembly_name).customize.dll is generated for your zerotouch node and explicit node. So if you do not have the second dll generated, then i think you arent following exactly what the tutorial is saying.

Hi, thanks for your reply.
Nevertheless, I wrote “Package…” as a way to refer to the package itself. The name of my customization file is indeed (Assembly_Name).customization.dll

DefaultCustomNode icon name only works with Python custom nodes not ZT nodes. Instead, each node needs an icon, even if they are identical, each with a unique name, specifically the qualified name of your node. E.g. For BimorphNodes CurvesFromCADLayers, the name of the icon is CAD.CurvesFromCADLayers.Large.png and there is no namespace, so it starts with the class name (which isn’t something I would recommend, rather i did it to avoid a superfluous category from appearing in the library after ZT import), hence if you have declared a namespace, this also needs to be included in the icon name.

Also, you don’t need to add the Package.Customization.dll as a reference in your pkg.json node_libraries property - Dynamo automatically looks for it; all you need to add is the name of your custom node library.

1 Like

Also, Package.Customization.dll must stay named that. If you change it to [my package name].Customization.dll Dynamo wont find it.

Allright!! Thank you very much for your reply! It really helped me understand the different behaviours for icons between Custom Nodes and ZT nodes. I finally get it working!

1 Like

Hello, do you happen to have any example code to guide you?

The first two links provided at the topic outset give the necessary code. This link provides the steps and tools to get custom node Id’s for your icons if you are doing C# and/or custom icons per node:

I have a video showing the approach for Python here for one icon approach: