Анализ стропильной фермы средствами Dynamo Revit и Revit API
Введение
Работа с BIM часто требует анализа данных для выполнения конкретных задач проектирования [1]. Например, это может быть техническая экспертиза по башенным кранам [2], отработка шаблонов 3D-моделирования [3], моделирование и анализ естественного освещения [4], организация взаимодействия программного обеспечения Autodesk Revit с приложениями для расчета конструкций [5], анализ общей устойчивости здания [6]. Инженеры часто используют плагины для таких задач.
В статье рассмотрен расчет стропильной фермы покрытия (рис. 1): получение и подготовка геометрии и конечно-элементный анализ для получения усилий в элементах фермы. Для этого использовался язык программирования C#, python и Revit API. В этой статье показано, что возможности Revit не ограничиваются моделированием. Инженерные расчеты также могут быть выполнены без использования дополнительного программного обеспечения.
⚡️РОССИЙСКИЙ DYNAMO AUTODESK «NVP rus». ТЕХНОЛОГИЯ ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ
Применяемые методы
Плагин основан на расчете элементов ферм методом конечных элементов, описанном в [7], кратко изложенном в данной статье. Данные для расчета были получены специальными методами для объектов в Revit API, о которых также пойдет речь.
Плагин извлекает исходные данные (геометрию фермы) из модели в Revit, фильтрует необходимые данные и задает недостающие параметры (нагрузки, граничные условия).
Структура плагина состоит из трех этапов
На первом этапе получим геометрию элементов фермы, которые представляют из себя отрезки (lines) (рис. 2). Каждый отрезок имеет координаты конечной и начальной точек. Создадим необходимые методы. Все отрезки, составляющие каркас фермы, получают двумя методами GetLine и GetLines (рис. 3). После этого с помощью GetXYZs формируется список всех точек, которые принадлежат концам отрезков, (рис. 4) для получения на его основе узлов фермы. Затем дополнительный метод GetJoints сортирует список всех точек, чтобы получить только уникальные точки (рис. 5).
Одной из задач является разделение поясов стропильных ферм на конечные элементы, так как часто они смоделированы одной линией — от начала фермы до конца. Зная координаты точек, в которых раскосы примыкают к поясу, разобьем пояс на участки.
Второй этап – сортировка. Узлы сортируются по трем координатам: сначала по Z, затем по X и Y (рис. 4).
Второй этап – сортировка. Узлы сортируются по трем координатам: сначала по Z, затем по X и Y (рис. 4).
После этого сортируются отрезки. Для этого был разработан метод поочередного перебора узлов и нахождения соответствий между узлами и отрезками. Порядок сортировки отрезков соответствует минимальной сумме номеров узлов. Первый отрезок — это линия между узлами 0 и 1, второй — между 0 и 2, следующий — между 1 и 2 и так далее. В результате получается необходимый отсортированный список отрезков и узлов.
Третий этап расчетный. Для расчета стропильного каркаса используется метод конечных элементов [7]. Предполагается, что ферма имеет шарнирные соединения. Нагрузка приложена к узлам фермы.
Массив приложенных сил {P0}:
Здесь F — нагрузка по оси, указанной в индексе, n — номер узла. Нуль устанавливается при отсутствии нагрузки в определенном направлении и конкретном узле. Каждый узел верхнего пояса фермы нагружается сосредоточенной нагрузкой 10 кН для примера расчета.
Список граничных условий задается аналогично списку нагрузок, но вместо значений нагрузок устанавливаются положения для закрепленных узлов 1, для не закрепленных – 0. Крайние узлы нижнего пояса фермы принимаются фиксированными, список граничных условий содержит [1, 1] и [0, 1] соответственно для этих узлов.
Жесткость каждого элемента определяется как A⋅E, где A — площадь поперечного сечения, E — модуль упругости стали. Площадь может быть извлечена из модели или задана условно.
В результате получается несколько массивов данных: координаты узлов фермы, длины элементов, списки нагрузок, граничные условия.
Вектор внутренних узловых сил конструкции в общей системе координат X0Y0Z0 [7]:
- {S0k} – вектор внутренних узловых сил конструкции, состоящий из блоков (ячеек) векторов внутренних узловых сил конечных элементов (КЭ);
- [K0k] – квазидиагональная расчетная матрица жесткости, состоящая из блоков матрицы жесткости КЭ в общей системе координат;
- [A] – матрица (узлы) соответствий структуры, состоящая из блоков матриц соответствий КЭ;
- {P0} – вектор узловой нагрузки;
- {Z0} – вектор узловых перемещений конструкции.
Эта часть скрипта получает напряжения элементов фермы. Он умножает матрицы, используя библиотеку Matrix (C#) или библиотеку Numpy (python). В другой программе (SCAD 21.1) был сделан расчет для подтверждения расчета, см. рис. 6 и 7.
Рекомендуем пройти наш новый курс по C#: Программирование на C# под Autodesk Revit
Размещаем информацию по курсам в телеграмм чате https://t.me/+B3kHPJ3U5Mw2OGEy
Заключение
Эта статья будет полезна инженерам и дизайнерам, работающим с API и ищущим способы ускорить и упростить свой рабочий процесс. В Revit API есть специальные методы для получения данных, и в этой статье приведены примеры их применения. В результате анализа данных модели Revit можно извлечь данные для расчетов. Например, расчет МКЭ, по которому можно задать сечение элементов фермы.
Примечание: данная статья была впервые опубликована в сборнике конференции II Siberan Industrial Design Days в 2020 году в соавторстве с Русланом Андреевичем Шишмаревым https://bim-portal.ru/authors/shishmarev-ruslan-andreevich/.
Список литературы
- Mladzievskiy E P 2020 Academy 2(53) 9-10 https://cyberleninka.ru/article/n/rasshirenie-vozmozhnostey-bim-proektirovaniya/viewer
- Sharmanov V V, Mamaev A E, Simankina T L 2019 Vestnik nauchnogo tsentra 2 76-86 https://cyberleninka.ru/article/n/metodika-tehnicheskoy-ekspertizy-bashennogo-krana-na-osnove-bim-tehnologii
- Yarmohammadi S, Castro-Lacouture D 2018 Automation in Construction 93 91-111 https://www.academia.edu/36652201/Automated_performance_measurement_for_3D_building_modeling_decisions
- Kota S, Haberl J S, Clayton M J, Yan W 2014 Energy and Buildings 81 391-403 https://www.sciencedirect.com/science/article/abs/pii/S0378778814005258
- Zotkin S P, Ignatova E V, Zotkina I A 2016 Procedia Engineering 153 915-919 https://www.sciencedirect.com/science/article/pii/S1877705816323736
- Xiongjue W 2016 Perspectives in Science 7 317-322 https://www.sciencedirect.com/science/article/pii/S221302091500097X
- Chernyy A N, Chernov S A 2010 Truss finite element method calculation (Ulyanovsk: UlSTU) p 30 http://lib.ulstu.ru/venec/disk/2010/Cherny3.pdf
Подписывайтесь на наш telegram:
- медиа про технологии, IT и тренды
- не пропускайте новые статьи, новости, обзоры, которые выходят на www.bim-portal.ru
- онлайн трансляции по курсам и вебинары по курсам www.bim-portal.ru/obuchenie
Автор:
Инженер программист. Занимаюсь разработкой приложений на технологии .NET
Теги: #эксперт #NET
Преподаватель конструкций зданий и сооружений
Инженер ПГС