Как с помощью Autodesk Forge автоматизировать проектирование
Современное проектирование предполагает автоматизацию рутинных процессов. Так, например, для пакетного заполнения атрибутов в компонентах BIM-модели необходимо написать скрипт, который по заданным условиям, заполнит их в тысячах компонентов за считанные секунды/минуты – это пример автоматизации, но также есть задачи, которые не решить стандартными методами, тогда на помощь приходит машинное обучение и платформа Autodesk Forge.
В статье разбираемся чем отличаются автоматизация и машинное обучение, когда и какой из методов эффективнее, а также – при чём тут облачная платформа от Autodesk.
Примеры кейсов машинного обучения, рассмотренные в статье, – опыт EMDC Group.
Что такое Autodesk Forge
Autodesk Forge – облачная платформа, с помощью которой разработчики могут выпускать собственные решения на базе продуктов Autodesk. В общем виде, платформа представляет собой набор интерфейсов прикладного программирования (API) и комплект средств разработки программного обеспечения (SDK).
Какие API входят в Autodesk Forge:
- BIM 360 – помогает организовать совместную работу над BIM-проектами. Так, используя данную надстройку, можно управлять учётными записями, RFI, назначать администраторов проекта.
- Data Management – позволяет управлять данными в таких хранилищах, как Fusion 360 Team, BIM 360 Docs, A360, а также во встроенном в Forge Object Storage Service через один интерфейс.
- Viewer – позволяет просматривать графические 2D- и 3D-объекты, а также их характеристики в 80 различных форматах с помощью смартфона или браузера. Также данное API позволяет проводить измерения, оставлять комментарии.
- Reality Capture позволяет создавать сцены виртуальной реальности, текстурированные трёхмерные сетки и облака точек на основе изображений/фотографий.
- Design Automation – об этом API поговорим подробнее в нашей статье. Он запускает скрипты AutoCAD в облачном хранилище и позволяет создавать чертежи для веб-приложений. Это возможно благодаря поддержанию нескольких платформ Autodesk, начиная от AutoCAD и Revit, заканчивая 3ds Max и Inventor. Также данная надстройка позволяет конвертировать DWG в другие форматы, например, в PDF, STL.
О машинном обучении в проектировании
Когда машинное обучение применяется в проектировании:
- При недостатке информации. К примеру, при работе с непараметрическими объектами – такими как 2D-чертежи CAD, недостоверные BIM-модели, облака точек или растровые изображения.
- Когда API имеют ограничения. Когда не все необходимые функции доступны в API, или когда автоматизация процесса не решается с помощью стандартных средств.
Об автоматизации в проектировании
Важно усвоить, что не вся автоматизация – машинное обучение. Например, скрипты Dynamo, макросы, плагины – это примеры стандартной автоматизации, которые никак не относятся к МО.
Прежде чем переходить к сценариям, в которых применимо машинное обучение, рассмотрим пару примеров, которые решаются с помощью автоматизации, хоть и более продвинутой.
Пример 1: автоматическое подключение гидрозатвора
Начнём с примера автоматической трассировки, в которой подключаются соединения для отвода конденсата и гидравлический затвор к трубопроводу. Это пример автоматизации (не МО), который включает в себя много высшей математики, векторного анализа, линейной алгебры для правильного размещения и соединения компонентов.
Эта задача нетривиальна, и поэтому часто вводит пользователей в заблуждение (которые считают, что задача решается с помощью машинного обучения).
Если вкратце, то при решении данного примера нет сбора данных и их последующей группировки, нет ни обучения алгоритмов, ни статистически установленных связей между данными, поэтому это пример автоматизации, а не машинного обучения.
Пример 2: автоматическое размещение кронштейна
К примерам сложной автоматизации можно отнести размещение кронштейна для труб и воздуховодов с последующим их соединением к конструктивным элементам.
Пример 3: автоматически прикрепленные кронштейны
Третий пример также иллюстрирует подключение кронштейнов. Однако в данном случае речь идёт о соединении кронштейнов с расположенными выше.
Это также пример сложной автоматизации с использованием высшей математики для определения несущего кронштейна.
В каких случаях автоматизация не поможет
1. Извлечение данных из отсканированного PDF. Например, отсканированный чертёж в PDF, из которого нужно извлечь рукописные комментарии.
2. Документирование многокомпонентных чертежей в САПР. Пример: чертёж AutoCAD, из которого необходимо перенести нумерацию и наименования страниц в электронную таблицу.
3. Преобразование деталей растрового изображения. Пример: деталь установки, которую требуется перенести в чертёж в AutoCAD.
4. Преобразование облака точек в BIM-модель.
Невозможность автоматизации в описанных случаях приведёт к ручному вводу данных, большому количеству рутины, сверхурочной работе и повышению затрат проекта.
Кейсы EMDC Group с примерами машинного обучения
Кейс 1. Использование машинного обучения для автоматизации группирования с несколькими выносками
1) Клиент хочет создать подробные чертежи AutoCAD на основе BIM-моделей.
2) Первый шаг – экспорт модели Revit в чертежи AutoCAD, что позволяет сэкономить половину времени на работу.
3) Возникает проблема – теги экспортируются в разнесённые мультивыноски (в данном случае заказчику требовались мультивыноски ещё и в определённом стиле).
Стандартное решение
Создаём надстройку AutoLISP для группировки текстовых элементов и разнесения выносок в мультивыноски.
Минусы решения:
при работе пользователь всё равно столкнётся с большим количеством ручного ввода – выбором текста для мультивыноски. Поэтому стандартное решение в этом случае не подходит.
Решение с использованием машинного обучения
Автоматическая группировка элементов выносок в мультивыноски на основе плотности распределения и сходства вокруг каждого текста (алгоритм кластеризации DBSCAN).
Параметр сходства – расстояние, разделяющее каждую строку внутри текстового абзаца.
Как работает решение с использованием МО
Решение представляет собой надстройку на основе Revit API и используется для выполнения автоматической группировки на экспортированных чертежах AutoCAD.
Подробнее
- Эта надстройка экспортирует листы Revit в чертежи AutoCAD, после чего их открывает и запускает решение в AutoCAD.
- Надстройка на основе Revit API исключает ручной ввод и экономит время.
Кейс 2. Размещение видов на листах Revit с помощью МО
Кошмар любого BIM-специалиста – это ручное размещение большого количества видов на листы. Это рутинный и трудоёмкий процесс, который выполняется вручную.
Эту задачу можно решить несколькими способами. Рассмотрим некоторые из них:
Первый вариант
Надстройка, которая одновременно создаёт виды и листы.
Минусы решения:
1. не предусмотрены случаи, когда требуется на одном листе отображение нескольких видов;
2. список листов не всегда готов к моменту создания видов.
Второй вариант
Применение надстройки с более простыми пользовательскими интерфейсами (например, два противоположных списка для видов и листов, доплисты и т.д.). В этом случае количество ручной работы снижается (исключается перетаскивание листов).
Минусы решения – остаётся ручное сопоставление видов с листами.
В итоге эти два варианта не решают проблему полностью, так как в задаче по-прежнему много рутины, поскольку решение о сопоставлении основывается на случайных параметрических данных, общих для вида и листа.
Третий вариант
Использование алгоритма ранжирования (алгоритм скоринга) для сопоставления случайных параметров с обеих сторон. Эту механику используют поисковые системы: ключевое слово извлекается из всех параметров как на стороне просмотра, так и на стороне листа. При нахождении соответствия для заданного ключевого слова листа – оценка увеличивается, и далее вид помещается на лист с наивысшим баллом. Вмешательство человека для определения совпадающего листа сводится к минимуму.
Минусы решения:
1. Технические слова в видах не совпадают с наименованиями в таблице. Такое бывает, например, при использовании синонимов.
Пример: «Дренаж» и «Санитарно-техническое обеспечение», которые часто используются при работе над моделью.
2. Включение предлогов в ключевые слова.
Незначащие параметры не должны влиять на процесс ранжирования, однако они оцениваются алгоритмом также как и значимые.
Получается, что и третий вариант не решает проблему полностью.
Четвёртый вариант
Для автоматического размещения видов на листах Revit возьмём за основу третий вариант и подключим к решению машинное обучение, чтобы автоматизировать разграничение значимых и незначимых параметров.
Так, синонимы должны иметь более высокие баллы, а менее значимые параметры – более низкие.
Для решения применяем алгоритм прогнозирования текста (используется во всех современных смартфонах).
Применение алгоритма прогнозирования текста решает проблемы со значимыми параметрами и ключевыми словами, так как оценка каждой «пары» неодинакова и зависит от вероятности появления.
Почему решение кейса №2 стоит перенести в Forge
Большие проекты содержат тысячи листов, а базы данных могут включать сотню моделей, также стоит учесть, что n-количество вычислительных мощностей уйдёт на обучение машинного алгоритма. В этом случае мощности домашнего компьютера не хватит.
Forge решит эту задачу: платформа упакует модели, быстро их подгрузит и запустит удалённо. После того, как обучающий набор сформирован, пользователь получает к нему доступ со смартфона, браузера и любых других устройств.
Если в статье вы нашли ошибку, неточность или хотите по материалу дать комментарий, отпишите нам на почту marketing@bimlib.pro.