Skip to content

Creating Icons for Custom Nodes

Anna edited this page Aug 12, 2015 · 15 revisions

Custom nodes, that are the part of package, support icons.

  1. Get ID of custom node. Open node with Notepad. Find its ID. It will look something like ID="4cdf5500-fe21-402e-acb7-bb9fc1b5a64b"

  2. Open Visual Studio. As a template, choose Visual C# > Class Library. Create in your solution resx file, named PackageImages.resx.

  3. Add to recently created file your image. Change your image name to .Small.png image

  4. Change icon persistence to Embedded in .resx

image

  1. Open .csproj file. Use Notepad.
  2. Uncomment BeforeBuild part.
  3. Write next code:
<Target Name="BeforeBuild">
<GetReferenceAssemblyPaths TargetFrameworkMoniker=".NETFramework, Version=v2.0">
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="FrameworkAssembliesPath" />
</GetReferenceAssemblyPaths>
<GenerateResource UseSourcePath="true" Sources="$(ProjectDir)PackageImages.resx" 
  OutputResources="$(ProjectDir)PackageImages.resources" 
  References="$(FrameworkAssembliesPath)System.Drawing.dll" />
<AL TargetType="library" EmbedResources="$(ProjectDir)PackageImages.resources"
OutputAssembly="$(OutDir)Package.customization.dll" />
</Target>
  1. Rebuild your project. Package.customization.dll will be in project's output folder.

  2. Add Package.customization.dll to your package.

image

NB! Default icon

You can add default icon, if you want to use 1 icon for all custom nodes. You have to make all steps, described above. But name of your icon should be DefaultCustomNode.Small

##Extracting a large number of node IDs If your package contains a large number of nodes you can use this script to automatically extract the IDs of all nodes in a given directory: https://raw.githubusercontent.com/CAAD-RWTH/ClockworkForDynamo/master/workflow_samples/0.7.x/ExtractNodeIDs/ExtractNodeIDs.dyn

Releases

Roadmap

How To

Dynamo Internals

Contributing

Python3 Upgrade Work

Libraries

FAQs

API and Dynamo Nodes

Clone this wiki locally