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 в Forma
    • Настройка Dynamo Player в Forma
    • Добавление графов и предоставление к ним общего доступа в Dynamo Player
    • Запуск графов в Dynamo Player
    • Отличия вычислительной службы Dynamo от классического приложения 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
  • Какие варианты доступны?
  • Для Dynamo
  • В Dynamo
  • Преимущества и недостатки каждого подхода
  • Управление версиями Dynamo и изменения API (1.x → 2.x)
  • Разрешение на распространение двоичных файлов в пакете
  • Факторы производительности пользовательского интерфейса Dynamo
Edit on GitHub
Export as PDF
  1. Руководство для разработчиков

Разработка для Dynamo

PreviousУправление зависимостями и их обновление в DynamoNextНачало работы

Last updated 1 month ago

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

Три среды разработки: Visual Studio, редактор Python и Code Block DesignScript

Какие варианты доступны?

Варианты разработки делятся на две главные категории: для Dynamo и в Dynamo. Разработка в Dynamo подразумевает создание содержимого с помощью Dynamo IDE для использования в Dynamo, а при разработке для Dynamo требуются внешние инструменты создания содержимого, которое затем будет импортировано в Dynamo. В этом руководстве рассматривается разработка для Dynamo, однако ниже приведены ссылки на материалы по всем доступным процессам.

Для Dynamo

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

  • Узлы Zero-Touch

  • Узлы, производные от NodeModel

  • Расширения

В описании ниже Visual Studio используется в качестве среды разработки для узлов Zero-Touch и NodeModel.

Интерфейс Visual Studio с проектом, который мы будем разрабатывать

В Dynamo

  • Блоки кода предоставляют DesignScript в среде визуального программирования, что позволяет использовать гибкие текстовые сценарии и рабочие процессы узла. Функция в блоке кода может быть вызвана любым объектом в рабочем пространстве.

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

  • Узлы Python представляют собой интерфейс сценариев в среде визуального программирования, аналогичный блокам кода. В библиотеках Autodesk.DesignScript используется точечная нотация, аналогичная DesignScript.

При разработке в рабочем пространстве Dynamo мы сразу получаем обратную связь.

Разработка в рабочем пространстве Dynamo с помощью узла Python

Преимущества и недостатки каждого подхода

Варианты разработки для Dynamo созданы для упрощения персонализации. Если требуется написать рекурсивный сценарий на Python или создать полностью персонализированный пользовательский интерфейс узла, существуют варианты реализации кода, включающие только необходимые для запуска программы элементы.

Блоки кода, узел Python и пользовательские узлы в Dynamo

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

С помощью этих методов мы можем:

  • приступить к написанию кода Python или DesignScript почти без подготовки.

  • импортировать библиотеки Python в Dynamo.

  • делиться блоками кода, узлами Python и пользовательскими узлами с сообществом Dynamo в составе пакета.

Узлы Zero-Touch

Zero-Touch — это метод, позволяющий легко и быстро импортировать библиотеки C# одним щелчком мыши. Приложение Dynamo считывает общие методы из файла .dll и преобразует их в узлы Dynamo. Zero-Touch можно использовать для разработки собственных пользовательских узлов и пакетов.

С помощью этого метода можно:

  • писать методы на языке C# и использовать их в качестве узлов в Dynamo.

  • предоставлять сообществу Dynamo доступ к библиотеке C# в виде узлов в пакете.

Узлы, производные от NodeModel

Эти узлы более глубоко погружены в структуру Dynamo. Они основываются на классе NodeModel и написаны на языке C#. Этот метод обеспечивает максимальную гибкость и эффективность, однако большинство аспектов узла необходимо определить явно, а функции должны находиться в отдельной сборке.

С помощью этого метода можно:

  • создать полностью настраиваемый пользовательский интерфейс узла с помощью ползунков, изображений, цвета и т. д. (например, узел ColorRange)

  • получить доступ к инструментам в рабочей области Dynamo и управлять ими

  • настроить переплетение

  • загрузить узел в Dynamo в виде пакета

Управление версиями Dynamo и изменения API (1.x → 2.x)

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

Разрешение на распространение двоичных файлов в пакете

Следует учитывать DLL-файлы, входящие в пакет, выгружаемый в диспетчер пакетов. Если автор пакета не создал DLL-файл, у него должны быть права на общий доступ к такому файлу.

Если пакет содержит двоичные файлы, то при скачивании пакета необходимо уведомить об этом пользователя.

Факторы производительности пользовательского интерфейса Dynamo

На момент подготовки этой статьи для визуализации пользовательского интерфейса в Dynamo в основном используется WPF (Windows Presentation Foundation). WPF — это сложная и мощная система, основанная на XAML/связывании. Поскольку программа Dynamo имеет сложный пользовательский интерфейс, в ней могут возникать зависания, утечки памяти или снижение эффективности выполнения графа и обновления пользовательского интерфейса, что негативно сказывается на производительности.

В этом руководстве приведены инструкции по .

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

Скачайте пример блока кода — щелкните правой кнопкой мыши и выберите Save As (Сохранить как) — или посмотрите подробные инструкции в .

Скачайте пример пользовательского узла — щелкните правой кнопкой мыши и выберите Save As (Сохранить как) — или посмотрите подробные инструкции в .

Скачайте пример узла Python — щелкните правой кнопкой мыши и выберите Save As (Сохранить как) — или посмотрите подробные инструкции в .

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

Изменения API документируются на . Здесь рассматриваются изменения в Dynamo Core, библиотеках и рабочих пространствах.

Пример предстоящего значительного изменения — переход от формата XML к формату JSON в версии 2.0. Для производных узлов NodeModel теперь требуется , в противном случае они не будут открываться в Dynamo 2.0.

В документации по API Dynamo в настоящее время описаны функции Core:

Обратитесь к странице Wiki , сведения на которой помогут вам избежать нескольких распространенных ошибок при внесении изменений в код Dynamo.

импорту библиотек Zero-Touch
Методы написания сценариев
этом руководстве
этом руководстве
руководстве
вики-странице Dynamo на Github
конструктор JSON
http://dynamods.github.io/DynamoAPI
Факты производительности Dynamo
примере A-Forge
Три среды разработки
Интерфейс Visual Studio
Разработка в рабочем пространстве Dynamo с помощью узла Python
Блок кода, сценарий Python и пользовательский узел
Узлы Zero-Touch
Производные узлы NodeModel
Документ об изменениях Dynamo API
Документация по API