Dynamo
Primer for v2.0
Русский
Русский
  • О программе
  • Введение
    • Что представляет собой программа Dynamo и как она работает?
    • Руководство пользователя Dynamo Primer, сообщество и платформа Dynamo
  • Настройка Dynamo
  • Пользовательский интерфейс
    • Рабочее пространство
    • Библиотека
  • Узлы и провода
  • Основные узлы и понятия
    • Указатель узлов
    • Геометрия для машинного проектирования
      • Обзор концепции геометрии
      • Вектор, плоскость и система координат
      • Точки
      • Кривые
      • Поверхности
      • Тела
      • Сети
    • Компоновочные блоки программ
      • Передача данных
      • Math
      • Logic
      • Строки
      • Цвет
    • Проектирование на основе списков
      • Что такое список
      • Работа со списками
      • Списки списков
      • Многомерные списки
    • Словари в Dynamo
      • Что такое словарь
      • Узлы Dictionary
      • Словари в узлах Code Block
      • Примеры использования Revit
  • Пользовательские узлы и пакеты
    • Пользовательские узлы
      • Пользовательские узлы: введение
      • Создание пользовательских узлов
      • Публикация узлов в библиотеку
    • Пакеты
      • Пакеты: введение
      • Практикум по работе с пакетом: Mesh Toolkit
      • Разработка пакетов
      • Публикация пакетов
      • Импорт Zero Touch
  • Dynamo для Revit
    • Подключение к Revit
    • Выбор
    • Редактирование
    • Создание
    • Адаптация
    • Выпуск документации
  • Dynamo for Civil 3D
    • Совместимость с Civil 3D
    • Начало работы
    • Библиотека узлов
    • Примеры рабочих процессов
      • Дороги
        • Размещение осветительных столбов
      • Землеустройство
        • Размещение коммуникаций
      • Инженерные сети
        • Переименование колодцев
      • Железная дорога
        • Границы зазора
      • Топосъемка
        • Управление группами точек
    • Дополнительные разделы
      • Привязка объекта
      • Python и Civil 3D
    • Проигрыватель Dynamo
    • Полезные пакеты
    • Ресурсы
  • Создание кода в Dynamo
    • Узлы Code Block и DesignScript
      • Что такое Code Block
      • Синтаксис DesignScript
      • Сокращение
      • Функции
    • Создание геометрии с помощью DesignScript
      • Основы работы с геометрией посредством DesignScript
      • Геометрические примитивы
      • Векторная математика
      • Кривые: интерполяционные и по управляющим точкам
      • Перенос, поворот и другие преобразования
      • Поверхности: интерполяционные, лофтированные, по управляющим точкам и поверхности вращения
      • Параметризация геометрических объектов
      • Пересечение и обрезка
      • Логические операции с геометрическими объектами
      • Генераторы точек Python
    • Python
      • Узлы Python
      • Python и Revit
      • Настройка собственного шаблона Python
    • Изменения языка
  • Практические советы
    • Методы создания графиков
    • Методы создания сценариев
    • Справочник по созданию сценариев
    • Управление структурой программы
    • Эффективная работа с большими наборами данных в Dynamo
  • Примеры рабочих процессов
    • Процессы для начала работы
      • Параметрическая ваза
      • Точки притяжения
    • Индекс понятий
  • Руководство для разработчиков
    • Сборка Dynamo на основе исходного кода
      • Сборка DynamoRevit на основе исходного кода
      • Управление зависимостями и их обновление в Dynamo
    • Разработка для Dynamo
      • Начало работы
      • Пример использования узлов Zero-Touch — узел сетки
      • Выполнение сценариев Python в узлах Zero-Touch (C#)
      • Дальнейшая работа с Zero-Touch
      • Расширенная настройка узлов Dynamo
      • Использование типов COM (взаимодействие) в пакетах Dynamo
      • Пример использования NodeModel — настраиваемый пользовательский интерфейс
      • Обновление пакетов и библиотек Dynamo для Dynamo 2.x
      • Обновление пакетов и библиотек Dynamo для Dynamo 3.x
      • Расширения
      • Определение пользовательской организации пакетов для Dynamo 2.0 или более поздней версии
      • Интерфейс командной строки Dynamo
      • Интеграция с Dynamo
      • Разработка для Dynamo for Revit
      • Публикация пакета
      • Создание пакета из Visual Studio
      • Расширения в виде пакетов
    • Запросы на слияние
    • Ожидания от тестирования
    • Примеры
  • Приложение
    • Вопросы и ответы
    • Визуальное программирование и Dynamo
    • Ресурсы
    • Примечания к выпуску
    • Полезные пакеты
    • Файлы примеров
    • Таблица интеграции с основной программой
    • PDF для скачивания
    • Сочетания клавиш Dynamo
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. Руководство для разработчиков
  2. Разработка для Dynamo

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

PreviousПубликация пакетаNextРасширения в виде пакетов

Last updated 1 month ago

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

Сборка в папку пакета

Существует два способа сборки пакета в Visual Studio.

  • Добавьте события после сборки в диалоговом окне «Параметры проекта», в котором для копирования необходимых файлов используются сценарии xcopy или Python.

  • Используйте целевой объект сборки AfterBuild в файле .csproj для создания задач копирования файлов и каталогов.

Метод AfterBuild предпочтителен для этих типов операций (в том числе в данном руководстве), так как он не зависит от копирования файлов, которые могут быть недоступны на компьютере сборки.

Копирование файлов пакетов с помощью метода AfterBuild

Настройте структуру папок в репозитории так, чтобы исходные файлы были отделены от файлов пакетов. При работе с примером CustomNodeModel поместите проект Visual Studio и все связанные файлы в новую папку src. Все пакеты, созданные в проекте, будут сохранены в этой папке. Структура папок должна выглядеть следующим образом:

CustomNodeModel
> src
  > CustomNodeModel
  > CustomNodeModelFunction
  > packages
  > CustomNodeModel.sln
  1. Переместите файлы проекта в новую папку src.

  <Target Name="AfterBuild">
    <ItemGroup>
      <Dlls Include="$(OutDir)*.dll" />
      <Pdbs Include="$(OutDir)*.pdb" />
      <Xmls Include="$(OutDir)*.xml" />
      <Configs Include="$(OutDir)*.config" />
    </ItemGroup>
    <Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Pdbs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Xmls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <Copy SourceFiles="@(Configs)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\dyf" />
    <MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />
  </Target>

Необходимо убедиться, что целевой объект добавлен в файл CustomNodeModel.csproj (а не в другой файл проекта) и что в проекте нет параметров, заданных после сборки.

  1. Поместите целевой объект AfterBuild перед закрывающим тегом </Project>.

В разделе <ItemGroup> задается ряд переменных, представляющих определенные типы файлов. Например, переменная Dll представляет все файлы в выходной папке с расширением .dll.

<ItemGroup>
  <Dlls Include="$(OutDir)*.dll" />
</ItemGroup>

Задача Copy состоит в том, чтобы скопировать все файлы .dll в каталог, а именно в папку пакета, в которую мы выполняем сборку.

<Copy SourceFiles="@(Dlls)" DestinationFolder="$(SolutionDir)..\packages\CustomNodeModel\bin\" />

Пакеты Dynamo обычно содержат папку dyf и extra для пользовательских узлов Dynamo и других компонентов, например изображений. Чтобы создать эти папки, необходимо использовать задачу MakeDir. Если папка отсутствует, эта задача создаст ее. В эту папку можно добавить файлы вручную.

<MakeDir Directories="$(SolutionDir)..\packages\CustomNodeModel\extra" />

Теперь при построении проекта в папке проекта будет находится папка packages рядом с ранее созданной папкой src. В каталоге packages находится папка, содержащая все необходимые для пакета компоненты. Также необходимо скопировать файл pkg.json в папку пакета, чтобы сообщить Dynamo о необходимости загрузки пакета.

  1. Новая папка пакетов, созданная целевым объектом AfterBuild.

  2. Существующая папка src с проектом.

  3. Папки dyf и extra, созданные из целевого объекта AfterBuild.

  4. Скопируйте файл pkg.json вручную.

Теперь можно опубликовать пакет с помощью диспетчера пакетов Dynamo или скопировать его непосредственно в папку пакетов Dynamo: <user>\AppData\Roaming\Dynamo\1.3\packages.

Теперь, когда исходные файлы находятся в отдельной папке, добавьте целевой объект AfterBuild в файл CustomNodeModel.csproj в Visual Studio. При этом необходимые файлы будут скопированы в новую папку пакета. Откройте файл CustomNodeModel.csproj в текстовом редакторе (мы использовали ) и поместите цель сборки перед закрывающим тегом </Project>. Целевой объект AfterBuild скопирует все файлы DLL, PBD, XML и CONFIG в новую папку bin и создаст папку dyf и дополнительные папки.

Atom
Перемещение файлов проекта
Размещение целевого объекта AfterBuild
Копирование файлов