Hi @Filip,
thank you for reaching out to us. We are however a little bit confused about your question, since you already gave the answer yourself. I'll answer in bullet points to make things quicker:
- You cannot register any
NodeData
base plugin type without providing a description. - You can however just provide the container in your description resource, let's call it
BaseDescription
, and then just dynamically modify that description on an instance level viaNodeData::GetDDescription
. To simplify this you could also useLoadDescription
to load in resource definitions. This can also be done piecewise, e.g., you could for example consecutively load in aCommonDescription
and then aNoiseDescription
. - What you cannot do, is a
ShaderData
instance being polymorphic regarding Cinema 4D's type symbol name. So thename
flag in yourBaseDescription
cannot be modified. Which in turn means for example, that you cannot have different type names in the attribute manager for a noise shader and gradient shader node - if you follow thisBaseDescription
approach.
You of course already knew all this, hence our confusion If we missed your point, I would have to ask you to explain your goals to us again.
Cheers,
Ferdinand