fle
№ 2 (21)
УДК 69:004.42
ПРИМЕНЕНИЕ СРЕДЫ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ DYNAMO ПРИ РАЗРАБОТКЕ ПРОЕКТА ЗДАНИЯ В AUTODESK REVIT
© 2020 Р.М. Смакаев, Т.А. Низина*
Приведено описание некоторых возможностей среды визуального программирования Dynamo при разработке проекта здания в программном комплексе Revit. Представлены и описаны методики работы сц ена-риев Dynamo, позволяющие существенно ускорить процессы моделирования и подготовки проектной документации.
Ключевые слова: информационное моделирование, визуальное программирование, автоматизация, оптимизация, сценарий, узел.
Dynamo - среда визуального программирования с открытым программным кодом, разрабатываемая крупнейшим в мире поставщиком программного обеспечения для сферы строительства - Autodesk. Главным назначением среды является создание новых программных функций, позволяющих анализировать большие массивы данных и оптимизировать рутинные процессы.
Процесс визуального программирования среды Dynamo можно представить, как последовательный набор действий, выполняемых по заданному алгоритму. Данный алгоритм выпол-
няется с помощью предварительно разработанных текстовых фрагментов программного кода - узлов (англ. node), последовательность которых составляет сценарий (англ. script) [1]. В данной работе описаны созданные алгоритмы Dynamo, позволяющие автоматизировать моделирование и разработку проектной документации в программном комплексе Revit.
Исходный файл проекта Revit, используемый в дальнейшей работе, содержит модель первого этажа многоквартирного односекцион -ного жилого дома и один уровень высотной привязки элементов (см. рис.1).Запуск среды визу-
Рис. 1. Содержимое исходного файла проекта
* Смакаев Равиль Маратович ([email protected]) - магистрант; Низина Татьяна Анатольевна
([email protected]) - доктор технических наук, профессор кафедры «Строительные конструкции», советник РААСН; оба - Национальный исследовательский Мордовский государственный университет имени Н.П. Огарёва, Саранск, Россия.
ального программирования Dynamo осуществляется через одноименный инструмент панели инструментов Визуальное программирование вкладки Управление программного комплекса Revit.
Основой для построения любой трехмерной модели являются параметры привязки элементов по высоте, поэтому первым используем сценарий Dynamo, создающий уровни с требуемыми высотными отметками и именами [2]. Структура сценария представляет из себя последовательность узлов, выполняющих соответствующие функции в указанном порядке:
- создание на основе выбранных пользователем параметров списка высотных отметок эта-жей(см. рис. 2);
- определение имен уровней в соответствии со специальным порядком, например, «раздел-_номер уровня_название этажа_высотная отметка»;
- формирование в модели уровней на основе их высотных отметок и имен с помощью узла Level.By Elevation And Name (см. рис. 3).
Представленный на рис. 2 узел Elevationto String не является базовым нодом библиотеки Dynamo, а разработан под данную задачу пользователем, поэтому носит название «пользовательский узел» [4].
Результатом работы скрипта являются уров -ни модели, построенные по предопределенным параметрам этажности (рис. 2). При изменении исходных данных уровни будут автоматически
Рис. 2. Исходные данные и результат выполнения сценария создания уровней
№ 2 (21)
Рис. 3. Заключительные узлы сценария создания уровней
перестроены и переименованы. Данное решение позволяет свести трудозатраты по созданию и правильному переименованию уровней до нескольких минут выполнения сценария.
После построения уровней были применены сценарии по построению полной модели несущего каркаса здания. В первую очередь был
применен сценарий по копированию имеющихся в модели элементов на остальные уровни жилых этажей. Спецификой программы Dynamo является то, что узлов по прямому копированию элементов модели не существует, однако эти элементы могут быть представлены в виде гео -метрии. Геометрия колонны представляет из
Рис. 4. Сценарий копирования основных несущих элементов и результат его выполнения
Исходные данные Построение технического этажа
Фундаментная плита
Copy Floor to level
eiement ^ Level } EEement
Etement.5etPa rameterBy N aine
element
ö a r a me cerN am e
value
Create WaT Perimeter
startLevei } Efe-ment
endLevei >
Floor Instance >
Wafl Type >
Copy Wall; from Lewi to L«v*l
end Level } Element
start Level )■
Element 3*
Рис. 5. Сценарий моделирования технического этажа
себя точку, стены - линию, а плиты - замкнутый контур линий. В связи с вышесказанным для копирования был использован следующий порядок работы сценария:
-назначение верхнего предела высоты лес -тнично-лифтовым шахтам;
-выделение элементов имеющегося первого этажа и их сортировка по типу геометрии на балки, стены и плиты;
-поочередное извлечение из несущих элементов их геометрии в плоском представлении;
-копирование геометрии и назначение ей типоразмеров и зависимостей по высоте c помощью пользовательских узлов Copy Beamto Level, Copy Floorto Level и Copy Wallfrom Levelto Level (см. рис. 4).
Главными преимуществами данного подхода по сравнению с применением собственных инструментов Revit являются скорость выполнения процесса и его точность. Построение элементов данным образом исключает человеческий фактор и ошибки соосности, привязки к уровням и осям, неточности геометрических размеров конструкций.
Возможности Dynamo не ограничены копированием имеющихся элементов. Для моделирования технического этажа требуется создать монолитный периметр стен. Требуется пояснить, что стены в Dynamo создаются по геомет-
рии осевой линии. Данная задача решается с помощью сценария, реализующего следующий порядок действий:
- назначение в качестве исходных данных типоразмера элементов фундаментной плиты и стен монолитного периметра;
- моделирование фундаментной плиты и стен по геометрии вышерасположенных элементов;
- извлечение из вышерасположенной плиты замкнутого контура и его смещение внутрь на половину ширины выбранного типа стен;
-построение монолитного периметра по смещенным линиям с помощью пользовательского узла Create Wall Perimeter (см. рис. 5).
Для построения элементов лестнично-лиф-товой надстройки необходимо назначить необходимым стенам комментарий, который будет использован в качестве ключа при их выборе. Назначим необходимым стенам комментарий «ЛЛУ» и скопируем на уровень покрытия с помощью пользовательского узла Copy Wallfrom Levelto Level (см. рис. 6).
Для моделирования плиты покрытия лест-нично-лифтовой надстройки воспользуемся методом Bounding Вох, представляющим из себя построение параллелепипеда по любой вписанной геометрии. Последовательность узлов, представленная на рис.7, выполняет следующие функции:
фа
№ 2 (21)
Рис. 6. Сценарий построения стен лестнично-лифтовой надстройки
Рис. 7. Сценарий построения плиты покрытия лестнично-лифтовой надстройки
- представление геометрии стен лестнично-лифтовой надстройки в качестве
твердых объемных тел;
- объединения полученных тел до получения сложного твердого тела;
- построение описанного параллелепипеда вокруг твердого тела;
-извлечение из верхней грани параллелепипеда замкнутого контура и построение плиты с помощью узла Floor. By Outline Type And Level.
Построение парапета здания и лестнично-лифтовой надстройки осуществляется аналогично построению монолитного периметра с помощью пользовательского узла Create Wall Perimeter, но с последующим назначением высоты созданным элементам.
Совместный результат выполнения всех вышеизложенных сценариев Dynamo по копированию и моделированию основных несущих элементов представлен на рис.8.
Подготовка проектной документации является одной из самых трудозатратных задач
Рис. 8. Результат выполнения сценариев моделирования несущих элементов
Рис. 9. Сценарий создания планов и назначения им имен и шаблонов
цикла проектирования. С помощью сценариев Dynamo можно автоматизировать некоторые процессы подготовки планов несущих конструкций. В частности, представленный ниже сценарий может создать необходимое количество планов с заданными именами и параметрами представления элементов на чер -теже (см. рис. 9). Порядок работы представ -ляет из себя последовательность следующих операций:
- создание планов несущих конструкций по указанным уровням с помощью узла Structural Plan View.By Level;
- назначение планам имен на основе отметки уровня;
- применение к планам шаблонов с помощью узла Apply View Template [5].
По итогу выполнения сценария в файле проекта создается корректно названный список планов, представленный на рис. 10.
Рис. 10. Созданные планы вертикальных и горизонтальных несущих конструкций
фа
№ 2 (21)
Рис. 11. Сценарий создания листов проектной документации
Для экономии времени при подготовке проектной документации полученные планы будут размещены на листах. Данную задачу выполняет сценарий Dynamo, выполняющий следующую последовательность операций (см. рис. 11):
- сортировка планов на виды вертикальных и горизонтальных несущих конструкций;
- получение имени листа путем слияния названий планов на листе;
-комбинирование с помощью узла List.Combine планов таким образом, чтобы на листе располагались планы вертикальных и горизонтальных конструкций на одной отметке;
- создание листа с указанием размещаемых видов, имени, номера и семейства основной надписи (рис. 12).
Выполнение всех вышеизложенных сценариев занимает минимальное количество времени, что подтверждает целесообразность применения Dynamo в качестве мощного инструмента автоматизации задач, которые стоят перед пользователем Autodesk ^у/У.Эффективность применения таких сценариев существенно увеличивается при выполнении большого количества повторяющихся однотипных операций, разработке типовых объектов или построении сложной параметрической геометрии. Возможности Dynamo ограничены только возможностями самого проектировщика. Среда визуального программирования поддерживает выполнение внутренних узлов, содержащих фрагменты кода Python, что открывает неограниченные возможности ее применения.
Рис. 12. Результат выполнения сценария создания листов документации
Разумеется, данный проект не является окончательным: несущие элементы, структура планов и видов неоднократно будет изменена. На смену выполненным задачам придет оформление документации, подготовка аналитической модели, многочисленные расчеты, армирование и т.д. Однако полная и сформированная база сценариев позволяет уменьшить сроки проектирования или позволить разработчику проектной документации принимать более взвешенные, обдуманные решения, не отвлекаясь на рутинные процессы.
Библиографический список
1. Смакаев Р.М., Низина Т. А. Автоматизация задач проектирования с помощью среды визуального программирования DYNAMO STUDIO [Электронный ресурс] // Огарев-online. - 2020. - №3. URL: http:/
/journal.mrsu.ru/arts/avtomatizaciya-zadach-proektirovaniya-s-pomoshhyu-sredy-vizualnogo-programmirovaniya-dynamo-studio (дата обращения 13.04.2020).
2. Ланцов А.Л. Autodesk Revit 2015. Компьютерное проектирование зданий. - М.: ДМК, 2014. - 664 с.
3. Талапов В.В. Основы BIM: введение в информационное моделирование зданий. - М. : ДМК, 2011. -394 с.
4. База знаний разработчика Autodesk [Электронный ресурс]. URL: https:knowledge.autodesk.com/ ru/support/revit-products/learn-explore/caas/CloudHelp/ cloudhelp/2 018/RUS/Revit-Customize/files/GUID -F45641B0-830B-4FF8-A75C-693846E3513B-htm.html (дата обращения 13.04.2020).
5. Официальный сайт поддержки продукта DynamoStudio [Электронный ресурс]. URL: https:// www.dynamoprimer.com/index.html (дата обращения 13.04.2020).
Поступила в редакцию 14.04.2020 г.
USE OF DYNAMO VISUAL PROGRAMMING ENVIRONMENT WHEN DEVELOPING A BUILDING PROJECT IN AUTODESK REVIT
© 2020R.M. Smakaev, T.A. Nizina*
The purpose of the report is to describe some of the capabilities of Dynamo visual programming environment when developing a building project in the Revit software package. Dynamo scripting techniques are presented and described, which can significantly accelerate the modeling process and the preparation of project documentation.
Keywords: information modeling, visual programming, automation, optimization, script, node.
Received for publication on 14.04.2020
* Smakaev Ravil Maratovich - student of magistracy; Nizina Tatyana Anatolyevna - Dr. of Technical, Advisor to RAABS, Professor of the Department of Building Structures; Mordovian State University named after N. P. Ogarev (Saransk, Russia).