Определение пользовательской организации пакетов для Dynamo 2.0 или более поздней версии
Требуемая компоновка пакета зависит от типов узлов, которые будут включены в пакет. Существуют различия в процессах упорядочивания производных узлов NodeModel, узлов ZeroTouch и пользовательских узлов. В один пакет могут входить разные типы узлов, но для этого потребуется комбинация стратегий, описанных ниже.
NodeModel
По умолчанию библиотеки NodeModel организованы на основе структуры классов.
namespace SampleLibraryUI.Examples// Class Attribute
[NodeName("MyNodeModel")]
public class MyNewNodeModel : NodeModel
// or
// Constructor
public ButtonCustomNodeModel()
{
this.Name = "MyNodeModel";
}
Узел будет расположен в разделе «Надстройки» по пути:
SampleLibraryUI/Examples/MyNodeModelКроме того, категорию можно переопределить с помощью атрибута NodeCategory в классе или в конструкторе, как показано ниже.
Теперь узел будет располагаться в разделе «Надстройки» по пути:
ZeroTouch
Библиотеки ZeroTouch также по умолчанию организуются на основе структуры классов.
Узел будет расположен в разделе «Надстройки» по пути:
Кроме того, можно также переопределить расположение структуры классов с помощью файла XML адаптации Dynamo.
Файл XML должен иметь соответствующее имя и содержаться в папке
extraпакетаPackageName_DynamoCustomization.xml
Пользовательские узлы
Пользовательские узлы организуются на основе имени категории Category Name, указанного при создании с помощью нового диалогового окна «Пользовательский узел».
ПРЕДУПРЕЖДЕНИЕ
Запись через точку в именах или категориях узлов приведет к созданию дополнительных вложенных подкатегорий. В качестве разделителя для определения дополнительной иерархии будет использоваться .. Это новое поведение в библиотеке для Dynamo 2.0.

Имя категории можно будет позже изменить в файле DYF (XML или JSON)
Стратегии переноса узлов пакета
Когда автор пакета решает переименовать ранее существующий узел в новой версии, он должен предоставить средства для переноса графиков, содержащих узлы со старыми именами. Это можно сделать следующими способами.
В узлах ZeroTouch используется файл Namespace.Migrations.XML, расположенный в папке bin пакета, например:
MyZeroTouchLib.MyNodes.SayHello в MyZeroTouchLib.MyNodes.SayHelloRENAMED
Производные узлы NodeModel используют атрибут AlsoKnownAs класса следующим образом:
SampleLibraryUI.Examples.DropDownExample в SampleLibraryUI.Examples.DropDownExampleRENAMED
Last updated