Article
Article
Article

Автоматический поиск коллизий с помощью Dynamo для Civil 3D

Share this Article

В данной статье пойдет речь о решении автоматизации поиска ошибок, так называемых коллизий, с помощью программы Dynamo для Civil 3D, объектов, проектируемых непосредственно в среде Civil 3D. Данная статья оформлена в виде вопроса - ответ. Это задумано для того, чтобы легче находить ответы на частые вопросы, касательно Dynamo для Civil 3D.

Введение

Поиск коллизий является сложным и трудоемким процессом, требующий больших затрат времени и знаний. Данный вид работ особо актуален, так как происходит урбанизация городов, уплотнение застройки. Самостоятельно найти все коллизии на экране монитора сложно, тем более запомнить их, а затем вывести отчетность по ним.В процессе строительства объектов могут возникать ошибки, которые не были выявлены в процессе проектирования, что приводит к большим не предвиденным затратам. Особо актуален поиск коллизий в сложных стесненных условиях, большого количества пересекающихся внешних инженерных коммуникаций.
Как вам известно, основным инструментом Autodesk для выявлений коллизий является программа – Autodesk Navisworks. Кроме этого, во многих случаях применяется и Dynamo для Revit.

В Civil 3D, а именно в версии 2020, Autodesk добавил приложение для визуального программирования – Dynamo. В него были включены ноды для работы с объектами Civil 3D, такими как трассы, поверхность, COGO точки, трубопроводные сети, коридоры; ноды для работы с объектами AutoCAD, такими как текст, многострочный текст, штриховка, 3D-солиды, слои, блоки, полилинии и еще много различных функций для работы со списками, геометрией, математическими операциями.
Данный подход проверки на коллизии, с помощью Dynamo для Civil 3D, не исключает применение таких программ, как Autodesk Navisworks, и других сторонних разработок, а только дополняет его. BIM-специалисты могут проверять свои проектные решения, и решения между другими разделами, еще до проверки BIM-менеджером или BIM- координатором. В результате мы получим, что во время строительства объекта количество коллизий будет стремиться к нулю.

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

Какие типы коллизий можно определить с помощью Dynamo для Civil 3D?

Любая проверка на коллизии, является составной частью контроля качества, которая включает в себя получение каких-то фактических данных и сравнение этих данных с заранее установленными характеристиками или требованиями. Объектом контроля может быть не только сама модель, но и различные процессы, информация, возникающие на всех этапах жизненного цикла.

С помощью Dynamo для Civil 3D можно определить различные типы коллизий и проверок. Ниже хочу приложить список наименований коллизий, с которыми вы можете столкнуться в своей практике:

1) Геометрические коллизии;
2) Эргономические коллизии;
3) Нормативно-технические коллизии;
4) Технологические коллизии;
5) Проверка нарушений нормируемых расстояний между элементами модели.
6) Проверка на наличие дублирующих и перекрывающихся элементов;
7) Проверка на «неразрывность» примыкания элементов конструкций, на «неразрывность» систем инженерных коммуникаций;
8) Проверка чертежей на соответствии системе измерений и систем координат;
9) Проверка охранной зоны или зону работы;
10) Проверка деталей модели на наличие имени и идентификатора, наличия заполненности определенных параметров.
И все эти коллизии можно определить с помощью Dynamo для Civil 3D. Но для этого необходимо, чтобы инженеры знали основные инструменты, которые есть для того.

Каким образом можно увидеть в Civil 3D найденную коллизию?

В зависимости от типа поиска коллизий, решение данной задачи можно найти несколькими способами:
Для первого способа можно применить следующую последовательность действий: 1) С помощью Dynamo для Civil 3D необходимо определить пересекаются те или иные объекты с друг другом. Например, с помощью нода который отвечает на вопрос – пересекается ли данный объект с другим или нет – Geometry.DoesIntersect
(см. рисунок 8), или с помощью нода Geometry.Intersect (см. рисунок 9).
2) Затем, определить координаты данного пересечения.
3) После этого автоматически нанести в модели предупреждающие маркеры на пересекающиеся объекты. Предупреждающие маркеры могут быть как в виде 3D- восклицательного знака, или 3D-сферы заданного вами радиуса (нод Sphere.ByCenterPointRadius) и цвета (нод Object.SetColor), так и любым другим придуманным вами способом (см. рисунок 1 – 4, 6).

Рисунок 1 – Пример предупреждающих 3D-сфер в Civil 3D в месте пересечения верхнего строения пути с инженерными коммуникациями
Рисунок 1 – Пример предупреждающих 3D-сфер в Civil 3D в месте пересечения верхнего строения пути с инженерными коммуникациями.
Рисунок 2 – Пример предупреждающих 3D-сфер в Dynamo в месте пересечения верхнего строения пути с инженерными коммуникациями
Рисунок 2 – Пример предупреждающих 3D-сфер в Dynamo в месте пересечения верхнего строения пути с инженерными коммуникациями.
 Рисунок 3 – Пример отображения коллизии между пересекающимися инженерными коммуникациями - трубопроводной сетью
Рисунок 3 – Пример отображения коллизии между пересекающимися инженерными коммуникациями - трубопроводной сетью.

Другой способ отображения коллизии, это вывод результатов проверки в табличный вид и выделение ячейки цветом, с показателем, не отвечающим определенным требованиям (см. рисунок 4).

Рисунок 4 – Пример отображения таблицы с выделением ячейки красным цветом
Рисунок 4 – Пример отображения таблицы с выделением ячейки красным цветом.

Для решения данной задачи необходимо получить данные для сравнения, а затем с помощью нодов операторов сравнения или условных выражений, определить больше это число или нет установленного значения.

В данном выше примере необходимо проверить нормативное расстояния от оси железнодорожного пути до края грани опоры контактной сети. В результате я применил нод "<" , который определяет X меньше Y. На слоте выхода нода "<" получаю значение true или false (см. рисунок 5).

Рисунок 5 – Часть скрипта Dynamo для проверки нормативного расстояния от оси железнодорожного пути до края грани опоры контактной сети
Рисунок 5 – Часть скрипта Dynamo для проверки нормативного расстояния от оси железнодорожного пути до края грани опоры контактной сети.

В результате в модели создаю 3D-стрелку указывающая, что необходимо изменить положение опоры контактной сети (см. рисунок 6).

Рисунок 6 – Указание места негабаритности опор контактной сети до оси железнодорожного пути
Рисунок 6 – Указание места негабаритности опор контактной сети до оси железнодорожного пути.

Кроме этого, можно получить геометрию пересечения объекта с другим объектом (см. рисунок 7). В случае необходимости выделить место пересечения определенным цветом и занести в определенный вами слой.

Рисунок 7 – Вид пересекающихся объектов
Рисунок 7 – Вид пересекающихся объектов.

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

Подключение инженерных коммуникаций на сводный план инженерных сетей, может производиться как с помощью технологии «Быстрые ссылки на данные» Civil 3D, так и с помощью вставки внешней ссылки. Dynamo для Civil 3D позволяет получать данные, как из внешней ссылки, так же из объектов подключенные с помощью технологии «Быстрые ссылки на данные».

Какие есть ноды для поиска коллизий в Dynamo для Civil 3D?

На данный момент в Dynamo для Civil 3D версии 2.5.2.860 есть следующие основные ноды для поиска коллизий между объектами модели:

1) Geometry.DoesIntersect
С помощью нода данного определяется, пересекается ли данный геометрический объект с другим или нет. На выходе получаем значение – True или False (см. рисунок 8).
2) Geometry.Intersect

С помощью данного нода производится получение геометрии пересечения данного объекта с другими. На выходе получаем 3D-тело (solid) (см. рисунок 9).
3) Geometry.IntersectAll
Получение пересечения геометрии данного объекта с набором других геометрических объектов. Поиск общей геометрии для всех задействованных элементов (см. рисунок 10).

Рисунок 8 – Нод Geometry.DoesIntersect
Рисунок 8 – Нод Geometry.DoesIntersect.
Рисунок 9 – Нод Geometry.DoesIntersect
Рисунок 9 – Нод Geometry.DoesIntersect.
Рисунок 10 – Нод Geometry.IntersectAll
Рисунок 10 – Нод Geometry.IntersectAll.

4) Geometry.DistanceTo
Получение расстояния от этой геометрии до другой (см. рисунок 11).
5) Geometry.ClosestPointTo
Получение ближайшей точки на данной геометрии к соседней (см. рисунок 12).

Рисунок 11 – Нод Geometry.IntersectAll
Рисунок 11 – Нод Geometry.IntersectAll.

Рисунок 12 – Нод Geometry.IntersectAll

6) Операторысравнения"<",">",">=","<=","!=","=="

 Рисунок 13 – Пример применения операторов сравнения <, >, >=
Рисунок 13 – Пример применения операторов сравнения <, >, >,=.

7) Логические операторы "AND", "OR" и "NOT"

Можно ли экспортировать результаты поиска коллизий в виде отчета в Excel, Word?

Да, это возможно сделать автоматизировано с помощью Dynamo для Civil 3D. Пример отчета на коллизии можете посмотреть в таблице 1.
В данном примере были получены и выведены следующие данные – координаты коллизии; наименование элементов, которые пересекаются; наименование слоя пересекаемых объектов; ID идентификатор пересекаемых объектов; расстояние до коллизии; дата обнаружения; кем обнаружено; добавлен скриншот пересекаемых объектов; добавлено описание коллизии.

Таблица 1 – Пример отчета на коллизии, выполненного с помощью Dynamo для Civil 3D
Таблица 1 – Пример отчета на коллизии, выполненного с помощью Dynamo для Civil 3D.

Полученные данные можно экспортировать в таблицу Excel с помощью нода Data.ExportExcel в формате .xlsx или в формате .csv (нод - Data.ImportCSV) или в таблицу AutoCAD. Для того, чтобы создать таблицу в AutoCAD необходимо установить пакет нодов Tucrail_Dynamo_AutoCAD. В данном пакете присутствует нод - CadTable.Create, который создает таблицу AutoCAD.
На момент написания статьи в пакете нодов Civil3DTolkit версия 1.1.10 появилась возможность создавать таблицы AutoCAD, настраивать их внешний вид с помощью Dynamo для Civil 3D (см. рисунок 14). Это является большим рывком по созданию пользовательских таблиц.

Есть ли у данной технологии какие-нибудь особенности или недостатки?

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

Рисунок 14 – Ноды из пакета Civil3DTolkit версии 1.1.10 для возможности создавать таблицы AutoCAD
Рисунок 14 – Ноды из пакета Civil3DTolkit версии 1.1.10 для возможности создавать таблицы AutoCAD.

Как проверить модель железнодорожного пути на очертания габарита подвижного состава и приближения строений по ГОСТ 9238-2013?

Очертание габарита подвижного состава и приближения строений по ГОСТ 9238-2013 моделируется коридором, с помощью ранее созданной параметрической конструкцией, в приложении для Civil 3D - Autodesk Subassembly Composer. В данную конструкцию заложены параметры возвышения рельсов в кривых участках железнодорожного пути, габарит очертания подвижного состава и приближения строения, согласно требований указанных в ГОСТ 9238-2013 Габариты железнодорожного подвижного состава и приближения строений (см. рисунок 15). После построения цифровой модели железнодорожного пути, а также цифровых моделей, к которым необходимо проверить габарит (например, опор контактной сети и искусственных сооружений), необходимо извлечь 3D-тела из коридора габарита подвижного состава (см. рисунок 16). После этого необходимо выполнить поиск коллизий с помощью Dynamo для Civil 3D между этими объектами.

Как с помощью Dynamo для Civil 3D проверить ширину плеча балластной призмы?

Данный тип проверки относится к геометрическим коллизиям. Как известно ширина плеча балластной призмы оказывает влияние на устойчивость рельсо-шпальной балластной призмы, в свою очередь влияет на безопасность движения поездов. Часто проектировщики забывают сделать уширение балластной призмы в кривых участках пути, согласно требованиям нормативной документации.

Рисунок 15 – Параметрическая конструкция Autodesk Subassembly Composer for Civil 3D для проверки очертания габарита приближения строений
Рисунок 15 – Параметрическая конструкция Autodesk Subassembly Composer for Civil 3D для проверки очертания габарита приближения строений.
Рисунок 16 – Цифровая модель железнодорожного пути с отображением габарита приближения строений
Рисунок 16 – Цифровая модель железнодорожного пути с отображением габарита приближения строений.

Для того чтобы проверить ширину плеча балластной призмы вдоль оси железнодорожного пути, можно пойти следующим образом:
1. Необходимо чтобы в модели Civil 3D были созданы:
- трасса вдоль оси железнодорожного пути;
- две трассы или характерные линии, отвечающие за левую и правую бровки плеча балластной призмы;
- коридор созданный с помощью специальной конструкции, со звеньями от оси пути до бровки балластной призмы. Длина звена будет отвечать за расстояние от оси пути до бровок балластной призмы.
2. Далее необходимо в Dynamo для Civil 3D создать скрипт, который:
- выбирает коридор по имени (нод - Selection.CorridorByName);
- выбирает базовую линию коридора (нод - Corridor.BaselineByName);
- получает пикеты базовой линии (нод - Baseline.Stations);
- получает элементы конструкции на заданном пикете (нод - Baseline.SubassembliesByStation);
- получает все параметры из элемента конструкции (нод - AppliedSubassembly.Parameters);
- получает все значения параметра (нод - SubassemblyParameter.Value). Как раз данный нод получает значения длины звена из коридора по всем сечениям, который отвечает за ширину плеча балластной призмы;
- после этого полученные данные необходимо отсортировать в необходимом виде;
- на конечном этапе полученные данные можно экспортировать в таблицу Excel (нод - Data.ExportExcel) в формате .xlsx или в формате .csv (нод - Data.ImportCSV) или в таблицу AutoCAD. Для того, чтобы экспортировать данные в AutoCAD необходимо установить пакет нодов Tucrail_Dynamo_AutoCAD. В данном пакете присутствует нод - CadTable.Create, который создает таблицу AutoCAD. Или применить ноды из пакета Civil3DTolkit версия 1.1.10 (см. рисунок 14).

Какие выводы можете сделать, применив данную технологию?

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

Биография автора

Начальник Департамента технологий информационного моделирования и стандартизации ООО "ИПИТ". BIM-лидер в инфраструктуре 2019 года. Сертифицированный инструктор Autodesk. Эксперт в области проектирования объектов транспортной инфраструктуры. Участвовал в проектировании железнодорожных объектов Байкало-Амурской магистрали, Северного широтного хода, Северо-Кавказской железной дороги, Малого Кольца Московской железной дороги. Эксперт по программному обеспечению - Autodesk Civil 3D, Autodesk Subassembly Composer, Dynamo для Civil 3D, InfraWorks. Выступление с докладами на Autodesk University Russia 2017, 2018, 2019; Autodesk Rail Summit 2019.