Custom data types for Dynamo


I’m planning to make a custom data type that can be used for nodes to exchange data. The standard lists are a bit too limiting because the data is quite complex.

The Zero Touch Plugin development article states that the imported classes should be static (hence cannot be data), while there is an example a bit further down that implies that it might be possible.

Which way is it then, is it possible to define new kinds of data types for exchanging data between nodes or not? What’s the best way? I’d guess it’s not possible inside Python scripts, but Zero Touch Plugins vs explicit C# nodes?


A while ago I created a package for the very same reason, large data sets lists can get quite cumbersome. I released it on April this year as JsonData and wrote about it on this link, maybe is similar to what you want to implement.

Answering your question, you can create your custom classes on c# and expose them as nodes with their own parameters, constructors and methods as described on the Zero Touch Plugin development page (takes a bit to get around on how it works though :slight_smile: )

@taavilooke to be clear, the classes do not need to be static - it is simply useful to give the class static methods that wrap the constructors.

By the way, this is perfectly possible with Python as well. Have a look at the UI nodes from package Data-Shapes for examples.

Thanks for the answers. I probably should have looked into it a bit more. The ZeroTouchEssentials repo actually has a few examples about exactly that.