Мы подготовили проект Visual Studio, а теперь рассмотрим, как создать пользовательский узел, создающий прямоугольную сетку ячеек. Такую сетку можно создать с помощью нескольких стандартных узлов, однако мы также можем легко включить этот полезный инструмент в узел Zero-Touch. В отличие от линий сетки, ячейки можно масштабировать относительно центральных точек, запрашивать их угловые вершины или встраивать в грани.
В этом примере рассматриваются некоторые возможности и концепции, которые необходимо учитывать при создании узла Zero-Touch. После создания пользовательского узла и его добавления в Dynamo откройте страницу «Дальнейшая работа с Zero-Touch», чтобы просмотреть входные значения по умолчанию, возвращенные значения, документацию, объекты, типы геометрии Dynamo и миграцию.
Чтобы начать построение узла сетки, создайте новый проект библиотеки классов Visual Studio. Подробные инструкции по настройке проекта см. на странице «Начало работы».
Выберите
Class Library
(Библиотека классов) в качестве типа проекта.Присвойте проекту имя
CustomNodes
.
Поскольку мы будем создавать геометрию, необходима ссылка на соответствующий пакет NuGet. Установите пакет ZeroTouchLibrary из диспетчера пакетов Nuget. Этот пакет необходим для оператора using Autodesk.DesignScript.Geometry;
.
Найдите пакет ZeroTouchLibrary.
Этот узел будет использоваться в текущей сборке Dynamo Studio — 1.3. Выберите версию пакета, соответствующую этой сборке.
Обратите внимание, что мы переименовали файл класса в
Grids.cs
.
Далее необходимо установить пространство имен и класс, в котором будет использоваться метод RectangularGrid. В Dynamo узел будет назван в соответствии с методом и именами классов. Пока не нужно копировать его в Visual Studio.
Autodesk.DesignScript.Geometry;
ссылается на файл ProtoGeometry.dll в пакете ZeroTouchLibrarySystem.Collections.Generic
, который необходим для создания списков.
Теперь добавим метод создания прямоугольников. Файл класса можно скопировать в Visual Studio. Он должен выглядеть следующим образом.
Если ваш проект выглядит аналогично, выполните сборку .dll
.
Выберите Build > Build Solution (Сборка > Собрать решение).
Проверьте папку проекта bin
на наличие файла .dll
. Если сборка прошла успешно, можно добавить .dll
в Dynamo.
Пользовательский узел RectangularGrids в библиотеке Dynamo.
Пользовательский узел в рабочей области.
Кнопка Add (Добавить) для добавления файл
.dll
в Dynamo.
В приведенном выше примере был создан относительно несложный узел, который лишь определяет метод RectangularGrids
. Однако для более сложных узлов могут потребоваться подсказки для портов ввода или описание узла, подобно стандартным узлам Dynamo. Добавление этих возможностей в пользовательские узлы упрощает их использование и, в особенности, их поиск в библиотеке.
Входное значение по умолчанию.
Подсказка для ввода xCount.
Для узла RectangularGrid требуются некоторые из этих базовых функций. В коде ниже добавлены описания входных и выходных портов, описание и входные значения по умолчанию.
Задайте значения по умолчанию для входных данных, назначив параметрам метода RectangularGrid(int xCount = 10, int yCount = 10)
.
Создавайте подсказки для входных и выходных данных, ключевые слова для поиска и описание с XML-документацией, используя ///
в качестве префикса.
Для добавления подсказок нам потребуется файл XML в папке проекта. Visual Studio может автоматически создать файл .xml
, если этот параметр выбран.
Прикрепите файл XML-документации и укажите путь к файлу. При этом создается файл XML.
Вот и все! Мы создали новый узел с несколькими стандартными элементами. В следующей главе, «Основы Zero-Touch», подробно рассматриваются вопросы разработки узлов Zero-Touch и возможные проблемы.