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
  • Создание геометрии и тесселяция
  • Использование памяти
  • API Revit
Edit on GitHub
Export as PDF
  1. Практические советы

Эффективная работа с большими наборами данных в Dynamo

PreviousУправление структурой программыNextПримеры рабочих процессов

Last updated 1 month ago

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

Содержание

  • Создание геометрии и тесселяция

  • Использование памяти

  • API Revit

Создание геометрии и тесселяция

В Dynamo создание и рисование элемента геометрии — это совершенно разные действия. Как правило, создание геометрии выполняется намного быстрее и при этом используется меньше памяти, чем при рисовании объекта. Геометрию можно рассматривать как список измерений для создания костюма, а тесселяцию — как сам костюм. По его меркам можно рассказать о костюме довольно многое: какова длина рукавов, сколько он стоит и т. д., но почти всегда нужно посмотреть и примерить готовый костюм, чтобы понять, правильно ли он сидит. Аналогичным образом для геометрии без тесселяции можно определить ее ограничивающую рамку, площадь, объем, пересечение с другой геометрией и экспортировать ее в SAT или Revit. Тем не менее, вам почти всегда придется тесселировать геометрию, чтобы понять, правильная она или нет.

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

Узлы геометрии в Dynamo всегда тесселированы*. При этом остается два варианта работы с геометрией без тесселяции: узлы Python и узлы ZeroTouch. До тех пор, пока объект геометрии не будет возвращен из узла Python или ZeroTouch, тесселяция геометрии не выполняется. Например, если граф имеет несколько узлов точек, соединенных с несколькими узлами линий, несколькими узлами сечений и несколькими узлами толщины, тесселяция геометрии будет выполняться на каждом шаге. Вместо этого можно объединить данную логику в узел Python или ZeroTouch и возвращать из этого узла только конечный объект.

Дополнительные сведения об использовании узлов ZeroTouch см. в разделе данного руководства.

Использование памяти

Если тесселяция геометрии больше не выполняется, могут возникнуть проблемы с памятью из-за избыточного накопления геометрии. Геометрические объекты в Dynamo занимают небольшое, но не малое количество памяти при создании. При работе с сотнями тысяч или миллионами объектов объем использования может расти, что неизменно приводит к аварийному завершению работы Dynamo или Revit. В Dynamo версии 2.5 или более поздней это происходит неявным образом путем удаления неиспользуемых объектов, но если используется версия, предшествующая версии 2.5, один из способов избежать создания большого количества геометрии — удалить объекты по завершении работы. Предположим, что создаются сотни тысяч объектов NurbsCurve, для каждого из которых требуются десятки точек. Один из способов их создания — создать в Dynamo двумерный список и передать его узлу NurbsCurve.ByPoints. Однако для этого нужно создать миллионы точек. Еще один способ — использовать узел Python или ZeroTouch. В этом узле можно создать десяток точек, передать их в узел NurbsCurve.ByPoints, а затем удалить десяток точек с помощью вызова метода .Dispose(). Дополнительные сведения об использовании узлов ZeroTouch см. в разделе данного руководства. Удаление объектов геометрии после их создания может значительно сократить объем используемой памяти в определенных обстоятельствах. Хотя данная проблема решена для пользователей Dynamo 2.5 или более поздней версии, рекомендуется по-прежнему удалять геометрию явным образом, если при использовании требуется сократить объем памяти в определенный момент времени. Дополнительные сведения о новых функциях обеспечения стабильности, появившихся в Dynamo 2.5, см. в разделе .

API Revit

Если вы активно удаляете объекты в узле ZeroTouch или Python и по-прежнему испытываете проблемы с памятью или производительностью, возможно, потребуется полностью исключить из процесса Dynamo и создать объекты Revit непосредственно с помощью API. Например, можно выполнить синтаксический разбор файла Excel для получения информации о точках, а затем использовать эту информацию для создания координат XYZ и других элементов Revit с помощью соответствующего API. На этом этапе Revit станет единственным узким местом, которого невозможно избежать.

Разработка для Dynamo
Разработка для Dynamo
Повышение стабильности геометрии в Dynamo