Russian Federation
Russian Federation
The paper examines the necessity and possibility of interface interaction of the information modeling program Revit Autodesk with the common office program MS Excel. Such interaction makes it easier to prepare project documentation in accordance with the requirements of Russian standards, GOST. An analysis of the capabilities of the built-in Revit tools for creating specifications and their design according to GOST requirements showed an insufficient level of automation of these processes. Ready-made foreign and Russian solutions in the field of Revit plugins that implement interaction with Excel have a number of disadvantages. The purpose of this article is to demonstrate the capabilities of the application programming interface (API) for creating applications using the example of a developed software solution for automating the unloading of information from a BIM model into an Excel electronic document, in order to bring data presentation standards in line with GOST requirements. The application is developed using a tool environment: the C# programming language, the MS Visual Studio development environment, the WPF user interface creation tool, the Revit-side application programming interface .Net API, an interface for interacting with Excel ClosedXML files. As a result, the interface of the developed plugin is presented. The program allows you to export documents-statements and specifications - to Excel, designed according to the requirements of GOST. The user-friendly tab-based user interface, the compliance of the program design with the Revit system and the implemented functionality give the program advantages over its analogues. The application is available for free download to any Revit user, which is of practical importance.
BIM modeling, plugin, specification, computer programs, GOST
1. Введение
Технологии информационного моделирования зданий – BIM (Building Information Model) – находят все большее применение в России. Инструментальная среда для реализации таких проектов представляет собой совокупность прикладных программ для разных целей и разных разработчиков. Это, прежде всего, программы по созданию информационных моделей зданий. Среди них программное решение Renga российской компании AСКОН, и наиболее используемая программа Rеvit от компании Autodesk. Кроме того, применяются программы для проверки этих моделей (например, Autodesk Navisworks), а также специальные сервисные программы для совместного просмотра моделей, например в облаке или мобильном приложении. На текущий момент накопился уже определенный опыт использования различного программного обеспечения информационного моделирования объектов строительства [1]. Многообразие инструментальной среды требует определенных знаний и навыков пользователей. Что бы облегчить переход к технологиям и программам информационного моделирования объектов строительства могут быть разработаны и в дальнейшем использованы надстройки, программные приложения, позволяющие интегрировать различные программные средства. Интерфейсное взаимодействие наиболее востребованной в России BIM программы Revit с распространённым офисным приложением MS Excel представляет определенный интерес, особенно, если учитываются российские ГОСТы на подготовку проектной документации.
Autodesk Revit – это программный комплекс, служит основной средой автоматизированного проектирования для многих архитекторов, конструкторов и инженеров-проектировщиков в строительной сфере [2]. Разработка проекта объекта строительства, помимо создания и наполнения информацией BIM модели, подразумевает также разработку комплекта проектно-технической документации, включающей чертежи, планы работ и в том числе ведомости и спецификации. Важная функция Revit – создание ведомостей и спецификаций элементов строительного проекта. Программа позволяет получить готовые спецификации, пригодные для использования в проектной документации на основе информационной модели.
Однако при работе в РФ и некоторых странах СНГ важно учитывать необходимость соответствия проектной документации требованиям ГОСТ, в индивидуальном порядке установленным на каждый вид технического документа. Встроенного в Revit функционала достаточно, чтобы создать спецификацию по ГОСТ путем ее настройки вручную, по колонке, но в самой программе отсутствуют предустановленные шаблоны таких спецификаций. Этот факт позволяет говорить о необходимости автоматизировать создание спецификаций и ведомостей, полностью соответствующих ГОСТам, применяемым в строительной проектной деятельности.
С другой стороны, Microsoft Office (MS Office) – мировой лидер среди пакетов офисных программ. Пакет офисных программ широко используют, в том числе и в строительных проектных организациях. Навыки работы с MS Office есть у большинства сотрудников современных проектных организаций. Поэтому ведение части проектной документации в программах MS Office на сегодня остается актуальным.
Автоматизированной выгрузкой параметров модели может воспользоваться также и сотрудник, не знакомый с интерфейсом используемой BIM системы, в частности, с методами создания спецификаций и ведомостей. Автоматизированный экспорт таких таблиц с оформлением по строительным стандартам ГОСТ делает выгруженный табличный файл готовым документом. А работа по его созданию выполняется довольно просто.
Примеры интеграции Revit и Excel для решения разных узкоспециализированных задач можно найти в работах [3-5].
Анализ возможностей встроенных инструментов в Revit по созданию спецификаций и их оформлению по требованиям ГОСТ показал, что использование шаблонов – это наилучший вариант для многократного использования. Шаблон заранее настраивается под нужный стандарт. При применении готового шаблона таблицы спецификаций автоматически форматируется под заданную форму и наполнение, что упрощает и ускоряет работу над спецификацией. Шаблоны спецификаций создаются самими пользователями Revit для других пользователей и далее распространяются внутри компании, или по сети на безвозмездной или коммерческой основе. Однако при таком решении можно выделить ряд недостатков: необходим поиск подходящего шаблона под требования проекта; таблицы все еще нужно заполнять самостоятельно, автоматизируется только создание формы таблицы. Таким образом, использование шаблонов вида спецификаций решает проблему только частично и не может удовлетворить каждый запрос на автоматизированное создание спецификации на основе модели в Revit.
Учитывая тот факт, что работа Revit идет на операционной системе Microsoft Windows, офисный пакет Microsoft Office наиболее подходит для интеграции программ. Для работы со спецификациями в MS Office наиболее подходящей вариант – это экспорт информации об элементах модели в Microsoft Excel и последующая работа с данными в этой программе. Excel позволяет пользователю систематизировать любой тип информации, в том числе параметры компонентов информационной модели здания. Гибкость настройки внешнего вида таблиц позволяет отредактировать полученные спецификации под любые требования.
Для расширения базового функционала в Revit предусмотрена возможность установки сторонних «надстроек» (add-ins) или «плагинов» (plug-ins). Плагины – это программы, которые обеспечивают дополнительные функции для программного обеспечения Autodesk, отдельно встраиваемые в ПО Revit с возможностью их использования как обычного инструмента Revit, наряду с базовыми функциями – просто через вызов команды из ленточного меню вверху рабочего окна программы. Доступ к элементам модели и их характеристикам осуществляется с помощью интерфейса прикладного программирования Revit (Revit Application Programming Interface, API).
С использованием API на рынке представлены готовые решения интеграции Revit и Excel. Обзор готовых решений по автоматизации создания спецификаций в Excel и выгрузкой в них данных из Revit подробно изложен в работе [6]. Рассмотрены зарубежные и отечественные решения в области плагинов Revit, реализующие вышеописанную концепцию. Это следующие программы [7-10]: «Export-Import Excel» (Virtual construction and technology BIM One Inc.), «Tables» (Planworks), «SheetLink | Excel Import/Export» (DiRoots), «Спецификация по ГОСТ в один клик» (Павел Рединов). Приведены сильные и слабые стороны готовых решений. Однако в ходе анализа не было обнаружено плагина, объединяющего сильные стороны всех перечисленных выше аналогов. Решение задачи выгрузки спецификаций и их автоматическое оформление согласно ГОСТ в полном объеме не реализовано. Таким образом, автоматизация выгрузки BIM модели в стороннюю таблицу по требованиям ГОСТ остается актуальной.
Целью данной статьи является демонстрация возможностей интерфейса прикладного программирования (API) для создания приложений на примере разработанного программного решения по автоматизации выгрузки информации из BIM модели в табличный документ, для приведения в соответствие стандартов представления данных. Полученный документ своим оформлением и наполнением должен соответствовать требованиям ГОСТ. Данное решение должно представлять систему интерфейсного взаимодействия двух других систем – среды информационного моделирования зданий Autodesk Revit и офисной программы MS Excel.
2. Методы
Для разработки приложения осуществлен анализ и выбор инструментальной среды: системы интерфейсного взаимодействия Revit, языка программирования и среды разработки программного приложения.
Анализ систем интерфейсного взаимодействия Revit на программном уровне позволяет выделить на данный момент две системы: .Net RevitAPI и Dynamo. .Net RevitAPI – это библиотека, позволяющая обратиться к открытому в Revit документу и взаимодействовать с почти любым его компонентом: получить данные о нем, изменить эти данные, сохранить это изменение и применить к модели. API (интерфейс прикладного программирования) позволяет пользователям и разработчикам расширять возможности существующего приложения путем написания программы или скрипта, которые добавляют новые функции к программному обеспечению.
Autodesk официально представила Revit .Net API в Revit 8 и с тех пор постоянно расширяет, и улучшает его. Несмотря на то, что все еще существуют значительные ограничения, .Net API становится весьма полезным для решения широкого круга проблем и автоматизации рутинных операций [11]. Revit .Net API позволяет программировать на любом языке, совместимом с .Net Framework, включая VB.NET, C# и C++ [12]. .Net Framework – это платформа разработки программного обеспечения, разработанная Microsoft для создания и запуска приложений для ОС Windows. Инфраструктура .Net состоит из инструментов разработчика, языков программирования и библиотек для создания настольных и веб-приложений.
Также разработчик Autodesk сделал возможным получать данные и изменять параметры модели с помощью сценариев Dynamo. Этот инструмент позволяет с меньшим навыком программирования автоматизировать рутинные операции или создавать сложные автоматизированные алгоритмы с расчетами, сложными для производства человеком. Dynamo основан на графическом элементе Node (узел), которым можно описать элементы модели и связать их вместе для взаимодействия, параллельно прописывая логику взаимодействий на языке программирования Python.
Используя Dynamo, пользователь имеет практически те же самые возможности и доступ к тому же набору компонентов сессии Revit, что и при использовании .Net RevitAPI. Однако между этими вариантами программного взаимодействия с ПО Revit есть отличия [13-14].
Программный интерфейс RevitAPI дает возможности для разработчика в плане создания сложного инструмента с графическим интерфейсом, что предпочтительнее в создании системы взаимодействия Revit и офисной программы. Dynamo имеет свои преимущества, однако для данной задачи не подходит.
Примеры использования встроенных инструментов Revit для расширения функционала и решения разных задач можно видеть в работах [15-18].
Выбор языка программирования для разработки программного приложения ограничен возможностями платформы разработки .Net Framework. Выбирая между C# и C++ в программировании плагина для Revit, предпочтительнее использовать C#. Этот язык намного сильнее интегрирован в платформу .Net и в официальном учебнике Autodesk по .Net Revit API присутствуют примеры кода чаще для C#, чем любого другого языка. Для таких алгоритмически и объемно несложных задач, как написание плагина, C++ проигрывает в выборе. Преимущества, которые дает C++, к примеру, скорость выполнения программы и углубленная работа с памятью, в данном случае не актуальны. А недостатки, например, необходимость вручную очищать динамически выделенную память, только усложняют процесс написания кода.
С целью выбора среды разработки программного приложения рассмотрены существующие IDE (Integrated Development Environment, или интегрированная среда разработки), поддерживающие работу с языком C# и платформой .Net. IDE повышают продуктивность программистов за счет объединения общих действий по написанию программного обеспечения в одном приложении: редактирование исходного кода, создание исполняемых файлов и отладки.
В качестве среды разработки сделан выбор в пользу Microsoft Visual Studio, приложения, нативно поддерживающего платформу .Net. Это интегрированная среда разработки (IDE) для создания консольных приложений и приложений с графическим пользовательским интерфейсом, а также приложений Windows Forms или WPF [19], которые использованы в разработке собственного плагина.
На основе проведенных исследований инструментальной части поставлена задача разработать plug-in для Autodesk Revit, реализующий интеграцию Revit с офисным пакетом MS Excel. Приложение должно выполнять следующие функции:
• Вызываться по нажатию иконки в панели расширений;
• Иметь графический интерфейс;
• Сохранять файлы .xlsx с ведомостью/спецификацией элементов BIM модели;
• Включать в себя окна выбора:
o Стандарта ГОСТ для составления спецификации;
o Включаемых в спецификацию объектов модели;
o Способа сортировки объектов;
o Файла для сохранения в памяти устройства;
• На выходе представлять собой .dll файл, загружаемый в папку /AddIns вместе с конфигурационным текстовым файлом с расширением .addin;
Приложение должно быть реализовано с помощью выбранных инструментов. Интерфейс прикладного программирования на стороне Revit реализуется с использованием Autodesk Revit .Net API. Интерфейс взаимодействия с файлами Excel – с использованием ClosedXML. Стандарты технической документации, требуемые к реализации в приложении должны соответствовать ГОСТ Р 21.101-2020, ГОСТ 21.110-2013, ГОСТ Р 2.106-2019, ГОСТ 2.104-2006, ГОСТ 21.301-2014.
3. Результаты
В результате проделанной работы создано программное приложение «Спецификация в Excel по ГОСТ» – это бесплатный плагин для Autodesk Revit. Эта программа облегчаем процесс подготовки проектно-сметной документации для строительного проекта. Поддерживается версиями Revit: R2021, R2020. Установить плагин возможно из официального магазина приложений Autodesk или из репозитория Github с исходным кодом программы [20]. Скачанный установщик необходимо запустить. После установки плагин будет доступен в Revit. Удаление плагина происходит как удаление обычной программы на ОС Windows.
После установки на вкладке "Надстройки" (рис. 1) ленты управления Revit появится кнопка запуска плагина «Экспорт в Excel». По нажатию кнопки, после загрузки, отобразится окно с интерфейсом настройки экспортируемого документа.
Рис. 1. Лента управления Revit
В левой части окна представлены основные элементы управления плагина (рис. 2):
- Вкладки, отвечающие за переключение этапа настройки экспорта.
- Опция нумерации столбцов спецификации – порядковая нумерация каждого столбца, номера занимают строку таблицы, идущую после головной строки.
- Опция группировки элементов по категориям – элементы будут сгруппированы как в экспортируемой спецификации, в соответствии с ГОСТ, так и в окне выбора элементов на вкладке "3. Выбор элементов".
- Кнопка запуска экспорта. По нажатию запускается процесс формирования файла Excel. По завершении процесса будет предложено сохранить файл и открыть его в Excel. Для отмены экспорта нужно также нажать на эту кнопку.
- Строка состояния/подсказок. При наведении курсора на любой элемент интерфейса, к нему будет высвечено пояснение. Также в этой строке отображается индикатор прогресса экспорта.
Рис. 2. Основные элементы управления
Элементы управления вкладки 1 приведены на рис. 3, где выделены выпадающие списки с вариантами ГОСТов (1), окно предпросмотра (2) и пояснения к текущему виду предпросмотра (3).
Рис. 3. Вкладка 1 «Определение стандартов для составления документации»
Элементы управления вкладки 2 «Выбор категории» приведены на рис. 4, где выделены доступные для выбора категорий элементов модели (1), выбранные категории (2) и инструменты выбора (3).
Рис. 4. Вкладка 2 «Выбор категории»
Аналогичным образом представлены элементы управления вкладки 3 «Выбор элементов» (рис. 5): список доступных для экспорта элементов (1), выбранные элементы (2) и инструменты выбора (3).
Рис. 5 Вкладка 3 «Выбор элементов»
Таким образом разработанный программный продукт позволяет взаимодействовать Revit c Excel и экспортировать спецификации, подготовленные согласно требованиям ГОСТ.
4. Обсуждение
Разработанный программный продукт можно сравнить с ближайшим аналогом «Спецификация по ГОСТ в один клик». В таблице 1 приведены показатели двух сравниваемых решений в различных параметрах, отвечающих за эффективность и удобство, значения которых у аналогов разнятся.
Таблица 1.
Сравнение двух программ
Параметр |
Спецификация по ГОСТ в один клик |
Спецификация в Excel по ГОСТ |
Количество ГОСТов |
1 |
6 |
Поддерживаемые версии Revit |
2016-2021 |
2020-2021 |
Форматы экспорта |
Аннотации в Revit, Excel |
Excel |
Произвольное изменение спецификации |
Изменение колонок и их содержимого |
Нет |
Поддержка разделов проектирования |
ОВ, ВК |
Все |
Стоимость лицензии |
5000 руб. |
Бесплатно |
Возможность выбора формата основной надписи |
Нет |
Доступно 7 форм основной надписи |
Экспорт в Excel по ГОСТ |
Нет |
Основная функция решения |
Вставка титульного листа |
Нет |
Доступно 3 формы титульных листов |
Предлагаемое решение не имеет функционала создания спецификаций непосредственно в Revit, однако такая задача и не ставилась. Также решение не обладает возможностью редактирования формата таблиц и содержимого, в отличии от аналога. Это задача для дальнейшей работы над проектом.
Решение имеет меньшее количество поддерживаемых версий Revit, тем не менее поддерживает наиболее актуальные версии: текущего года и прошедшего. Также немаловажным преимуществом является свободная модель распространения – не требуется покупка для использования.
Удобство приложения определяется его пользовательским интерфейсом и поставляемым функционалом. Удобство интерфейса обусловлено уже описанной системой вкладок и вспомогательными элементами, такими как окно предпросмотра и строки подсказок. Также для увеличения удобства работы, дизайн приложения был приведен к дизайну самой системы Revit, чтобы пользователь видел в окне знакомые элементы управления. В сравнении с аналогом «Спецификация по ГОСТ в один клик», интерфейс предлагаемого решения более разгружен и имеет меньшее количество настроек – только минимально необходимый для экспорта документации набор.
Таким образом, полученное в результате работы решение отвечает установленным на разработку требованиям и имеет описанные преимущества над ближайшим аналогом, что делает это решение актуальным для эксплуатации в проектировании.
5. Заключение
Разработанное программное решение интерфейсного взаимодействия программы информационного моделирования Revit и офисной программы MS Excel позволяет экспортировать документы – ведомости и спецификации – в одну из самых распространенных и доступных сред работы с документацией. При этом экспортируемые документы удовлетворяют требованиям ГОСТов при создании таблиц и спецификаций для строительных объектов. Для этого отобраны 5 актуальных стандартов, описывающих спецификации и сопутствующие компоненты проектно-сметной документации, подходящие для любого раздела проектирования. Приложение разработано в соответствии с шаблоном проектирования MVVM (Model-View-ViewModel), который применяется для разработки современных оконных и веб-приложений. Приложение доступно для бесплатной загрузки любому пользователю Revit.
1. I.L. Kievsky, A.Yu. Krutyakov, O.A. Ivanova, A.Yu. Chitaev, I.P. Mykytiv, Experience in the use of domestic and imported BIM-products in the design of residential buildings, Industrial and civil construction, 2020, 11, DOI:https://doi.org/10.33622/0869-7019.2020.11.42-48 (2020)
2. J. Zolotova, N. Vatin, Autodesk Revit - Key to successful training of highly qualified civil engineers, Applied mechanics and materials, 2015, 725-726 (2015)
3. O. Javed, A. Javed, Y. Ali, M. Adil, Application of ICT and BIM in the implementation of Building Byelaws, Second International Sustainability and Resilience Conference: Technology and Innovation in Building Designs (51154), 2020, pp. 1-3, DOI:https://doi.org/10.1109/IEEECONF51154.2020.9319975 (2020)
4. N.Q. Toan, N.T.T. Hang, L.H. Nam, D.H. Duyen, T.P. Nam, Application of Building Information Modeling (BIM) for automatic integration of construction costs management information into 3D models in consideration of Vietnamese regulations, International Scientific Conference on Advance in Civil Engineering: Construction - The Formation of Living Environment, FORM 2020, Hanoi, 2020, v 869, is 69, 06200723 (2020)
5. M. Dawood, BIM Based Bridge Management System. In: Şahin S. (eds) 8th International Conference on Engineering, Project, and Product Management (EPPM 2017). EPPM 2017. Lecture Notes in Mechanical Engineering. Springer, Cham. https://doi.org/10.1007/978-3-319-74123-9_17 (2018)
6. L.E. Surkova, D.V. Davydov, Analysis of the possibilities of integrating bim modeling software with an office application, Informationand Technological Bulletin, 2021, 2(28), https://elibrary.ru/item.asp?id=46376899 (2021)
7. Export-Import Excel, Autodesk App Store, https://apps.autodesk.com/RVT/ru/Detail/Index?id=6290726048826015851&appLang=en&os=Win64 (2021)
8. Tables, Autodesk App Store, https://apps.autodesk.com/RVT/ru/Detail/Index?id=2349381363455444680&appLang=en&os=Win64 (2021)
9. SheetLink Excel Import/Export, Autodesk App Store, https://apps.autodesk.com/RVT/ru/Detail/Index?id=4089038677237188183&appLang=en&os=Win64 (2021)
10. Specification according to GOST in one click, Autodesk App Store, https://apps.autodesk.com/RVT/ru/Detail/Index?id=515154252762362011&appLang=ru&os=Win64 (2021)
11. M. Mason, Extending BIM Design Value Using the Revit Api, AUGI, The world’s largest CAD & BIM User Group, 2009, https://www.augi.com/articles/detail/extending-bim-design-value-using-the-revit-api#:~:text=An%20application%20programming%20interface%20(API,new%20functionality%20to%20the%20software.&text=Power%20users%20and%20software%20developers,create%20their%20own%20custom%20tools (2021)
12. T. Northrop, B. Ryan, S. Wildermus, Basics of developing applications on the Microsoft .NET Framework, Training course Microsoft, Russian Edition, SPb.: Peter (2007)
13. R.M. Smakaev, T.A. Nizina, Application of dynamo visual programming environment in the development of a building project in Autodesk Revit, Basics of EUP, Publishing House of Mordovian University, Saransk, 2020, 2(21) (2020)
14. D. Shishina, P. Sergeev, Revit Dynamo: designing objects of complex forms, Toolkit and process automation features, AEJ, 2019, 3 (2019)
15. Y. Weng, N.A.N. Mohamed, B.J.S. Lee, N.J.H. Gan, M. Li, M. Jen Tan, H. Li, S. Qian, Extracting BIM Information for Lattice Toolpath Planning in Digital Concrete Printing with Developed Dynamo, Journal of Computing in Civil Engineering, v 35, is 31 (2021)
16. Z. Jin, J. Gambatese, BIM for temporary structures: Development of a Revit API plug-in for concrete formwork, Proceedings, Annual Conference - Canadian Society for Civil Engineering, Canadian Society for Civil Engineering Annual Conference, CSCE 2019, Laval, 2019, v 153, pp 915-919 (2019)
17. S.P. Zotkin, E.V. Ignatova, I.A. Zotkina, The Organization of Autodesk Revit Software Interaction with Applications for Structural Analysis, v21, is2, pp244 - 258 (2021) https://doi.org/10.1016/j.proeng.2016.08.225,)
18. F. Rodrigues, F. Antunes, R. Matos, Safety plugins for risks prevention through design resourcing BIM, DOIhttps://doi.org/10.1007/978-3-319-61645-2_9 (2018)
19. N. Randolph, D. Gardner, M. Minutillo, Ch. Anderson, Professional Visual Studio 2010 (2011)
20. DenisDavydov1/Excel Specification GOST, Github, URL: https://github.com/DenisDavydov1/ExcelSpecificationGOST (2021)