A obtenção de um layout desejado para o pacote depende dos tipos de nós que você incluirá no pacote. Os nós derivados do modelo de nó, os nós ZeroTouch e os nós personalizados têm um processo ligeiramente diferente para definir a categorização. É possível misturar e combinar esses tipos de nó dentro do mesmo pacote, mas isso exigirá uma combinação das estratégias descritas abaixo.
Por padrão, as bibliotecas NodeModel são organizadas com base na estrutura de classes.
O nó ficará localizado em Complementos em:
Também é possível substituir a categoria usando o atributo NodeCategory na classe ou no construtor, como mostrado abaixo.
O nó agora ficará localizado em Complementos em:
As bibliotecas ZeroTouch também são organizadas com base na estrutura de classes por padrão.
O nó ficará localizado em Complementos em:
Também é possível substituir a localização da estrutura da classe usando um arquivo XML de personalização do Dynamo.
O arquivo XML deve ser nomeado adequadamente e ser incluído na pasta extra
do pacote
PackageName_DynamoCustomization.xml
Os nós personalizados são organizados com base no Category Name
especificado durante a criação dos nós (usando a caixa de diálogo Novo nó personalizado).
AVISO
O uso da notação de ponto em nomes de nós ou categorias resultará em subcategorias aninhadas adicionais. O .
funcionará como um delimitador para determinar a hierarquia adicional. Esse é um novo comportamento na biblioteca para o Dynamo 2.0.
O nome da categoria pode ser atualizado posteriormente no arquivo .dyf (XML ou JSON)
Quando o autor de um pacote decide renomear um nó existente anterior em uma nova versão, ele deve fornecer um meio para migrar gráficos que contêm nós com os nomes antigos. Isso pode ser feito das seguintes maneiras:
Os nós ZeroTouch usam um arquivo Namespace.Migrations.XML
localizado na pasta bin
dos pacotes, como:
MyZeroTouchLib.MyNodes.SayHello
para MyZeroTouchLib.MyNodes.SayHelloRENAMED
Os nós derivados do NodeModel usam o atributo AlsoKnownAs
na classe, como:
SampleLibraryUI.Examples.DropDownExample
para SampleLibraryUI.Examples.DropDownExampleRENAMED