Начало работы

Прежде чем приступить к разработке, важно создать прочную основу для нового проекта. Сообщество разработчиков Dynamo предлагает несколько шаблонов проектов, которые можно использовать в качестве отправной точки, однако будет полезно изучить, как начать проект с нуля. Создание проекта с нуля позволит лучше понять процесс разработки.

Создание проекта Visual Studio

Visual Studio — это многофункциональная среда разработки, в которой можно создавать проекты, добавлять ссылки, создавать файлы .dll и выполнять отладку. При создании нового проекта Visual Studio также создается решение, структура для организации проектов. В одном решении можно создать несколько проектов, которые будут собраны вместе. Чтобы создать узел ZeroTouch, необходимо запустить новый проект Visual Studio, в котором будет создана библиотека классов C# и собран файл .dll.

Окно New Project (Создать проект) в Visual Studio

  1. Для начала откройте Visual Studio и создайте новый проект: File > New > Project (Файл > Создать > Проект).

  2. Выберите шаблон проекта Class Library (Библиотека классов).

  3. Присвойте проекту имя (мы назвали проект MyCustomNode).

  4. Задайте путь к файлу проекта. В нашем примере мы оставим расположение по умолчанию

  5. Нажмите Ok.

Visual Studio автоматически создаст и откроет файл C#. Мы должны присвоить ему соответствующее имя, настроить рабочее пространство и заменить код по умолчанию на этот метод умножения.

 namespace MyCustomNode
 {
     public class SampleFunctions
     {
         public static double MultiplyByTwo(double inputNumber)
         {
             return inputNumber * 2.0;
         }
     }
 }
  1. Откройте обозреватель решений и окна вывода в меню View (Вид).

  2. Переименуйте файл Class1.cs в SampleFunctions.cs в обозревателе решений справа.

  3. Добавьте приведенный выше код для функции умножения. Позднее мы рассмотрим, как Dynamo читает классы C#.

  4. Обозреватель решений предоставляет доступ ко всем компонентам проекта.

  5. Окно вывода понадобится позже, чтобы проверить, успешно ли выполнена сборка.

Следующий шаг — собрать проект. Но сначала необходимо кое-что проверить. Убедитесь, что в качестве целевой платформы выбрано Any CPU или x64, а флажок Prefer 32-bit (Предпочтительно 32-разрядная) в свойствах проекта снят.

  1. Откройте свойства проекта, выбрав Project > "ProjectName" Properties (Проект > Свойства имя_проекта).

  2. Выберите страницу Build (Сборка).

  3. Выберите Any CPU или x64 в раскрывающемся меню.

  4. Убедитесь, что флажок Prefer 32-bit (Предпочтительно 32-разрядная) снят.

Теперь можно собрать проект, чтобы создать файл .dll. Для этого выберите Build Solution (Собрать решение) в меню Build (Сборка) или нажмите клавиши CTRL+SHIFT+B.

  1. Выберите Build > Build Solution (Сборка > Собрать решение).

  2. Чтобы определить, успешно ли собран проект, проверьте окно вывода.

Если проект собран успешно, в папке проекта bin появится файл .dll с именем MyCustomNode. В нашем примере мы оставили путь к файлу проекта, как указано в Visual Studio по умолчанию: c:\users\username\documents\visual studio 2015\Projects. Давайте рассмотрим структуру файлов проекта.

  1. Папка bin содержит файл .dll, собранный в Visual Studio.

  2. Файл проекта Visual Studio.

  3. Файл класса.

  4. Поскольку в конфигурации решения задано значение Debug (Отладка), .dll будет создан в bin\Debug.

Теперь можно открыть Dynamo и импортировать .dll. С помощью функции добавления перейдите к папке проекта bin и выберите файл .dll, который требуется открыть.

  1. Нажмите кнопку Add (Добавить) для импорта .dll.

  2. Перейдите к папке проекта. Наш проект находится в папке файла Visual Studio по умолчанию: C:\Users\username\Documents\Visual Studio 2015\Projects\MyCustomNode.

  3. Выберите MyCustomNode.dll для импорта.

  4. Нажмите Open (Открыть), чтобы загрузить .dll.

Если категория была создана в библиотеке с именем MyCustomNode, то DLL-файл импортирован успешно. Однако Dynamo создал два узла, а мы хотели, чтобы узел был один. В следующем разделе вы узнаете, почему так происходит и как Dynamo считывает DLL-файл.

  1. MyCustomNode в библиотеке Dynamo. Категория «Библиотека» определяется именем .dll.

  2. SampleFunctions.MultiplyByTwo в рабочей области.

Способы чтения классов и методов в Dynamo

Когда Dynamo загружает DLL-файл, он предоставляет все открытые статические методы в виде узлов. Конструкторы, методы и свойства преобразуются в узлы Create, Action и Query соответственно. В нашем примере умножения метод MultiplyByTwo() становится узлом Action в Dynamo. Это связано с тем, что узел назван в соответствии с методом и классом.

  1. Входным данным присваивается имя inputNumber на основе имени параметра метода.

  2. По умолчанию выходным данным присваивается имя double, так как это возвращаемый тип данных.

  3. Узел называется SampleFunctions.MultiplyByTwo, так как содержит имена классов и методов.

В приведенном выше примере был создан дополнительный узел SampleFunctions Create: мы явно не предоставили конструктор, поэтому он был создан автоматически. Этого можно избежать, создав пустой частный конструктор в классе SampleFunctions.

namespace MyCustomNode
{
    public class SampleFunctions
    {
        //The empty private constructor.
        //This will be not imported into Dynamo.
        private SampleFunctions() { }

        //The public multiplication method. 
        //This will be imported into Dynamo.
        public static double MultiplyByTwo(double inputNumber)
        {
            return inputNumber * 2.0;
        }
    }
}
  1. Dynamo импортировал метод в качестве узла Create.

Добавление ссылок на пакеты Dynamo NuGet

Узел умножения очень простой и не требует ссылок на Dynamo. Если необходимо получить доступ к функциям Dynamo, например для создания геометрии, используйте пакеты Dynamo NuGet.

  • ZeroTouchLibrary — пакет для создания библиотек автоматических узлов для Dynamo, который содержит следующие библиотеки: DynamoUnits.dll, ProtoGeometry.dll

  • WpfUILibrary — пакет для сборки библиотек узлов Dynamo с пользовательским интерфейсом в WPF, который содержит следующие библиотеки: DynamoCoreWpf.dll, CoreNodeModels.dll, CoreNodeModelWpf.dll

  • DynamoServices — библиотека DynamoServices для Dynamo

  • Core — инфраструктура модульного и системного тестирования для Dynamo, которая содержит следующие библиотеки: DSIronPython.dll, DynamoApplications.dll, DynamoCore.dll, DynamoInstallDetective.dll, DynamoShapeManager.dll, DynamoUtilities.dll, ProtoCore.dll, VMDataBridge.dll

  • Tests — инфраструктура модульного и системного тестирования для Dynamo, которая содержит следующие библиотеки: DynamoCoreTests.dll, SystemTestServices.dll, TestServices.dll

  • DynamoCoreNodes — пакет для сборки базовых узлов Dynamo, содержащий следующие библиотеки: Analysis.dll, GeometryColor.dll, DSCoreNodes.dll

Чтобы ссылаться на эти пакеты в проекте Visual Studio, скачайте пакет из NuGet по ссылкам выше и вручную укажите ссылки на DLL-файлы или используйте диспетчер пакетов NuGet в Visual Studio. Сначала мы рассмотрим, как их установить с помощью NuGet в Visual Studio.

  1. Откройте диспетчер пакетов NuGet, выбрав Tools > NuGet Package Manager > Manage NuGet Packages for Solution... (Инструменты > Диспетчер пакетов NuGet > Управлять пакетами NuGet для решения).

Это диспетчер пакетов NuGet. В этом окне мы видим установленные для проекта пакеты и можем искать другие пакеты. Если выпущена новая версия пакета DynamoServices, можно обновить пакеты в этом разделе или вернуться к более ранней версии.

  1. Нажмите кнопку обзора и найдите DynamoVisualProgramming, чтобы открыть пакеты Dynamo.

  2. Пакеты Dynamo. Нажмите на один из пакетов, чтобы просмотреть его текущую версию и описание содержимого.

  3. Выберите нужную версию пакета и нажмите кнопку Install (Установить). Пакет будет установлен для проекта, в котором вы работаете. Так как используется последняя стабильная версия Dynamo 1.3, выберите соответствующую версию пакета.

Чтобы вручную добавить пакет, загруженный из обозревателя, откройте диспетчер ссылок в обозревателе решений и перейдите к нужному пакету.

  1. Щелкните правой кнопкой мыши References (Ссылки) и выберите Add Reference (Добавить ссылку).

  2. Нажмите Browse (Обзор), чтобы перейти к папке пакета.

Итак, мы настроили Visual Studio и добавили .dll в Dynamo. Теперь у нас есть надежная основа для дальнейшей работы. И это только начало. Далее вы узнаете, как создать пользовательский узел.

Last updated