Привет, Хабр! Меня зовут Алексей Новиков, уже 5 лет я занимаюсь информационным моделированием систем электроснабжения в компании STEP LOGIC.   Раньше основной ценностью работы проектировщика был комплект чертежей, сейчас – это информационная модель, которая является продуктом не конкретного сотрудника, а целой команды. Мы неоднократно сталкивались с ситуациями, когда из-за разного подхода к проектированию информационная модель превращалась в простой набор геометрических форм, параметры и связи в котором были понятны лишь одному проектировщику. Всё это усложняло командную работу. Мы раз за разом задавались вопросом: как сделать процесс проектирования прозрачным для всей команды, а результат более прогнозируемым? Так родилась идея создания системы проектирования электроснабжения, которая должна автоматизировать рутинные процессы и упростить внесение изменений в проект, а значит и нашу жизнь. Выигрывает от этого и заказчик: время подготовки проекта сокращается, а на выходе получается более качественный продукт. Изначально для проектирования зданий использовались бумага и кульман. Переход от плоских чертежей к трехмерным стал возможен с появлением и развитием AutoCAD и подобных программ. А с ростом популярности Building Information Modeling (BIM) на рынке появился целый ряд технологий для создания информационных моделей зданий.   Для работы я использую Autodesk Revit, который занимает большую нишу. Проектирование в Revit сильно отличается от того же AutoCAD, в котором можно за несколько дней научиться рисовать линии и ставить размер. С Revit это не работает. Здесь нужен другой подход, моделирование осуществляется элементами – экземплярами семейств, которые изначально надо создать.  Помимо геометрии, их наделяют набором физических параметров: масса, мощность, сопротивление и т.д. Затем созданные элементы размещаются в пространстве, объединяются в системы и после выполнения соответствующих расчетов можно получить чертежи однолинейных схем, длины и сечения кабелей, значения освещенности помещений, зоны молниезащиты, токи короткого замыкания и другую информацию.  В результате мы имеем максимально наполненную информационную модель – базу данных с элементами, их параметрами и зависимостями, правильно используя которую можно сформировать всю необходимую документацию: начиная от планов и однолинейных схем и заканчивая спецификациями и заданиями для смежных отделов. Можно сказать, что мы создаем прототип цифрового двойника объекта. Следующий шаг после создания модели – оптимизация ее систем и элементов для принятия наиболее правильных проектных и эксплуатационных решений.  Но, как и другие аналогичные программы в первую очередь Revit заточен под архитектурную и строительную часть проектов, так как они занимают львиную долю всех бюджетов. Функционал же проектирования инженерных систем (которыми я и занимаюсь) здесь во многом ограничен. Конечно, определенный набор инструментов в программе все же заложен, но для создания моделей слаботочных систем, электроснабжения, кондиционирования и вентиляции в полном объеме его явно недостаточно. Поэтому возникла идея создать дополнительный функционал для Revit. Чего не хватает: Расчетная часть программы минимальна и соответствует западным нормативам и стандартам. Более того, результаты расчетов зачастую неверны. Тестовые расчеты показали, что значения средней освещенности могут различаться на 20-30%. Для примера результаты расчетов для одного и того же помещения в Revit составили 653 лк, а в специализированном софте Dialux Evo - 496 лк. Возможности создания выходных документов сильно ограничены. Например, применять отображение однолинейных электрических схем из Revit можно исключительно от безысходности, так как создать его можно только в виде таблицы. Добавление дополнительных аппаратов или контактов здесь невозможно. Отсутствует возможность создания уникальной топологии схем инженерных систем. Например, нельзя создать и рассчитать схемы с АВР или кольцевые схемы. Но ведь именно с такими решениями приходится сталкиваться при проектировании сложных комплексных объектов.  После тщательного анализа и выявления главных трудностей при проектировании инженерных систем в Revit, наша команда обратилась к уже разработанным плагинам. Их можно разделить на две большие группы.  Коммерческие плагины, например, достаточно популярный пакет MagiCAD для Revit или RChain. На начальных этапах работ мы рассматривали возможность применения коммерческих плагинов, но отказались от этой идеи, потому что:   Плагины решают конкретный ограниченный набор задач. Поэтому их функционал необходимо было вписывать в общую концепцию системы проектирования. И получалось, что проще написать свой модуль, чем интегрировать сторонний. Все алгоритмы и процессы будут понятны в отличие от сторонних плагинов. Качество расчетов при тестировании вызывало ряд вопросов, не всегда хватало глубины проработки расчетной части. Отсутствовала возможность кастомизации. Например, после генерации однолинейной схемы невозможно добавить в цепь независимый расцепитель, контактор или другое дополнительное оборудование. Недостаточная интеграция с информационной моделью.  Плагины от вендоров (Schneider-Electric, Siemens, ДКС), функционал которых заточен под применение конкретного оборудования. Некоторые из них довольно удобны в применении, но, к сожалению, все они идут в привязке к вендору. То есть, грубо говоря, возможности перейти в проекте на оборудование другого производителя без внешних доработок там нет.  После анализа стало ясно, что под наши задачи необходимо создать собственную систему проектирования электроснабжения, включающую функционал Revit, плагины сторонних производителей (вендоров) и наши собственные разработки. Чтобы при совершении определенного набора действий мы могли получить понятный, предсказуемый и быстрый результат. Подробный процесс создания плагинов опишу на примере разработки функционала связи Revit с Dialux Evo. Как я уже говорил выше, встроенный функционал Revit позволяет рассчитывать освещенность пространств, но проведённое тестирование показала крайне низкую точность этих расчетов. А вот Dialux Evo считается одним из самых передовых софтов в этой сфере. Для повышения точности в наших проектах мы решили провести взаимную интеграцию между Revit и Dialux Evo. В идеале хотелось получить полноценную двустороннюю связь между этими программными продуктами с минимальным набором промежуточных действий. В первую очередь мы поставили перед собой задачу автоматизировать передачу информации о модели из Revit в Dialux Evo. В Dialux Evo можно импортировать трехмерные модели в форматах .ifc и .stf. Несмотря на то, что в Revit  есть собственный функционал по созданию файла .ifc, мы остановились на генерировании файла .stf. Это было обусловлено следующими причинами:  .stf в отличии от ifc передает данные не только о геометрии (пространствах), но и о светильниках. Таким образом мы можем передать в Dialux Evo координаты, углы поворота и типы светильников. На больших моделях (высотные здания) .stf гораздо удобнее, так как мы создаем только отметку уровня и не перегружаем расчетную модель избыточной информацией. Из минусов стоит отметить, что нам необходимо предварительно создать (или скопировать из внешнего файла АР) пространства, так как именно они в итоге будут передаваться в Dialux Evo. В результате было разработано два плагина по созданию файла .stf на основе выбранного уровня.   Через генерирование файла .stf и импорт этого файла в Dialux Evo мы осуществили передачу информации о пространствах (геометрии) и светильниках (координаты, угол поворота, тип).  Одной из основных сложностей при создании плагинов стала корректность передачи углов светильников. Мы разработали собственные алгоритмы конвертации углов при переходе из Revit в Dialux Evo и обратно, которые производят обработку более 60 различных вариантов размещения светильников в пространстве. Сейчас в нашей системе реализована возможность создания светильников на потолке, стенах, полу или же произвольно в пространстве под любым углом.  Следующей задачей стала передача информации из Dialux Evo в Revit. Экспортировать из Dialux Evo можно файл формата .dwg. Он содержит блоки светильников и таблицы с данными об их типах и расчетных значениях освещенностей пространств. В блоках светильников находится информация о координатах и углах светильников, а принадлежность блока к слою указывает на тип светильника. Таким образом, сгенерированный в Dialux Evo файл .dwg, содержит всю необходимую нам информацию. В результате получаем плагин, который на основе .dwg файла создает светильники в модели Revit. Расставляет их на свои места с нужными углами и прописывает в пространства результаты расчетов из Dialux Evo. То есть двусторонняя интеграция Revit и Dialux Evo  выглядит следующим образом: Revit - файл.stf – Dialux Evo - файл.dwg – Revit. В результате работы мы создали более 100 плагинов. Их основной функционал включает в себя:  Анализ кабельных конструкций и раскладку кабелей Электротехнические расчеты и расчеты токов короткого замыкания  Конфигурирование электрических щитов и построение однолинейных схем Построение структурной схемы системы электроснабжения всего объекта Интеграция между Revit и Dialux Evo Аналитика по заполнению кабельных лотков. Происходит построение разрезов лотка и расчет горючей массы кабелей в лотке.  Создание таблиц и интеграция с Excel. В частности, происходит выгрузка полной спецификации ЭМ. И приведение спецификации к гостированному виду. Создание планов оборудования, распределительной и групповой сети, кабельных трасс и планов освещения Мониторинг параметров оборудования смежных разделов  Расчет и построение зоны молниезащиты Расчет сопротивления заземляющего устройства Создание кабельных проходок Для того, чтобы создать внешний вид системы электроснабжения, я представил свое понимание этого процесса в виде блок-схем. Через несколько итераций и упрощений родилось такое отображение. По сути в этом интерфейсе расписан весь процесс, который проходят инженеры при проектировании объекта, разбитый на наиболее характерные этапы работ.  В соответствующей вкладке можно получить наиболее полную информацию о выполняемых работах и инструментах. Здесь же размещается панель навигации и ссылки на все используемые на данном этапе работ плагины, где содержится информация об их функционале и соответствующий видеообзор.   На основе разработанной системы проектирования электроснабжения инженер-электрик понимает всю процедуру, инструменты и шаги по созданию информационной модели, а инженеры-оформители получают информацию о том, как и с помощью какого функционала создавать выходные документы. То есть разработанный инструментарий позволяет нам на постоянной основе поддерживать высокое качество информационной модели. Переход от бумажных чертежей к проектированию в 2D, далее 3D и BIM требует смены инструментария. При наличии системы, пройдя соответствующее обучение на тестовых моделях в системе, проектировщик в короткий срок сможет понять всю процедуру проектирования и создания информационной модели. Из-за меняющихся нормативных документов и требований заказчиков систему проектирования необходимо постоянно развивать. Описание этого процесса можно проиллюстрировать с помощью цикла Деминга-Шухарта (PDCA – plan, do, check, act). С определенной периодичностью мы планируем и проводим изменения, а затем проверяем и актуализируем их.  С помощью системы мы можем максимально грамотно внедрять лучшие практики, повышая уровень проектировщиков и проектирования в целом. Проектировщику больше не нужно заниматься рутинными процессами, высвобождается время для принятия наиболее обоснованных схемных или компоновочных решений.  Если заглянуть на 5-10 лет вперед, то я вижу некоторое переформатирование роли проектировщика. Человек со стопкой ГОСТов и калькулятором превратится в своего рода «архитектора решений», задача которого – заполнение модели оборудованием, задание параметров и организация связи между этими элементами. А выбор кабелей, подбор коммутационных аппаратов, создание чертежей и многое другое будет выполняться автоматически. В заключение – минутный ролик, в котором мы собрали основной функционал нашей системы и показали, как его можно использовать при проектировании. Остались вопросы – обязательно задавайте их в комментариях.