Статья

Разработка каталогов в AVEVA

Информационное моделирование зданий (BIM) — это процесс, основанный на использовании интеллектуальных 3D-моделей. С помощью этой технологии специалисты по архитектуре и строительству (AEC) могут еще эффективнее планировать, проектировать, строить и эксплуатировать здания, сооружения и объекты инфраструктуры.

Использование готовых каталогов позволяет значительно ускорить процесс создания модели, получить корректные спецификации и оформить проектную (ПД) и рабочую (РД) документацию согласно нормативным стандартам.

«ИМ Консалт» разрабатывает и поддерживает каталоги 3D элементов для программного комплекса AVEVA. Это позволит клиентам AVEVA использовать самую актуальную электронную библиотеку оборудования для построения инженерных объектов с использованием продукции производителя.

Каталоги являются основой всего проекта. Из элементов каталога состоит основная часть модели, поэтому принципиально важно обеспечить отсутствие ошибок, как в геометрической составляющей для корректного отображения и оценки на коллизии объектов, так и в описательной части – для правильного вывода отчетов.

Использование готовых каталогов AVEVA позволит:

  • Значительно сократить время на проектирование объектов
  • Снизить возможные ошибки при проектирование
  • Быстро и качественно вносить необходимые изменения
  • Использовать актуальную библиотеку продукции производителя
  • Получить корректную документацию согласно нормативным стандартам

Процесс создания каталога

Первым этапом создания базы данных каталожных элементов в AVEVA Paragon является сбор, подготовка и проверка всей необходимой информации. Исходные данные могут включать стандарты, спецификации, таблицы данных, техническое задание, опросные листы, чертежи изделий и т.д. На этом этапе также разрабатывается структура будущего каталога и идентификация каталожных элементов.

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

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

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

Автор: Алексей Корсун, специалист САПР AVEVA в компании ИМ Консалт

Программирование расстановки креплений в Autodesk Revit

Программирование типовых процедур расположения креплений в системе позволяет быстрее скомпоновать лотки в кабельной трассе. Расстановка креплений также является важной задачей в выборе оптимальной компоновки кабеленесущей системы.

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

Базы данных лотков находятся в структуре проекта Revit и связаны с фактическими параметрами лотков через файл общих параметров, который необходимо подключить к проектам Revit перед началом работы. Автоматизированный расчет компоновки кабеленесущих систем основан на использовании плагинов и добавлений к программе Autodesk Revit. Тестирование добавлений addins выполняется в программе Revit 2021 для определения новшеств в API в отличие от предыдущих версий API.

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

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

Для более оптимального расположения креплений лотков в кабельных трассах для программы Revit необходимо разрабатывать приложения с визуальным интерфейсом, которые используют не только встроенные средства API, но и библиотеки и классы с интерфейсом Windows Forms. Использование визуального интерфейса обусловлено тем, что интерфейс программы Revit не полностью поддерживают функционал для обработки и настройки параметров кабельных лотков и необходимы дополнительное библиотеки из дистрибутива VisualStudio2019.

Программирование сегментации кабеленесущих систем в Autodesk Revit

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

Программирование типовых процедур расположения кабельных лотков в системе позволяет быстрее скомпоновать лотки в оптимальном положении с учетом допускаемых нормативных расстояний между лотками. Расстановка креплений также является важной задачей в выборе оптимальной компоновки кабеленесущей системы.

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

Базы данных лотков находятся в структуре проекта Revit и связаны с фактическими параметрами лотков через файл общих параметров, который необходимо подключить к проектам Revit перед началом работы. Автоматизированный расчет компоновки кабеленесущих систем основан на использовании плагинов и добавлений к программе Autodesk Revit. Тестирование добавлений addins выполняется в программе Revit 2021 для определения новшеств в API в отличие от предыдущих версий API.

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

Преимущество среды программирования Visual Studio перед отладчиком и компоновщиком программ SharpDevelop состоит в гибкой возможности отладки методов API, разработки качественных быстродействующих программ, которые могут функционировать как отдельные, так и совместно работающие с Revit приложения.

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

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

Программирование семейств в Autodesk Revit

В статье представлены практические методы работы с семействами в программе Autodesk Revit. Семейства необходимы для хранения информации о проекте, параметров поверхностей (размерах, углах поворота, положении относительно начала координат и т.д.).  В программе предусмотрено сохранение параметров семейства как шаблона для дальнейшего использования в проектировании. Это облегчает настройку программных шаблонов для следующих проектов, позволяет разрабатывать библиотеки шаблонов для использования в программировании проектов кабеленесущих систем. Для разработки используется язык программирования SharpDevelop, позволяющий программным способом считывать информацию из проектов, определять идентификаторы семейств разных уровней в существующих проектах, генерировать новые идентификаторы для файла общих параметров. Каждый программный идентификатор семейства уникален и является внутренней программной переменной для обозначения семейств и их параметров. С точки зрения программирования набор идентификаторов позволяет осуществлять взаимодействие с внешними программными библиотеками, плагинами, автоматизирующими проектирование кабеленесущих систем.

Поскольку в программе Autodesk Revit предусмотрено взаимодействие с программой разработки запросов SQLite, важным моментом является возможность чтения параметров проекта с помощью SQL-запросов, их сохранения в базе данных проектов, организации ссылок на идентификаторы семейств в проектах. При разработке внутренней системы учета проектов возможно создание структуры проектов на основе программных идентификаторов, повторное использование которых можно зафиксировать на основе использования семейств с повторяющимися идентификаторами в любом проекте. Разрабатывая таким образом иерархию классов семейств и их параметров, получают возможность программирования типовых семейств для кабелей, систем кабелей без значительных затрат времени на программирование новых проектов, обеспечения контроля их версий, быстрого перепрограммирования при появлении новых версий API в Autodesk Revit. При обновлении API могут меняться параметры семейств, процедуры и функции для их обработки, что может усложнить процесс практического внедрения проекта у заказчика. Следовательно, перед программированием необходимо определить набор средств программирования, которые будут использоваться в процессе разработки плагинов, прикладных библиотек. Изучены программные методы работы с семействами Revit в среде программирования Visual Studio 2019 на основе встроенных методов API, языка программирования С# как более универсального языка программирования. Предусмотрено использования языков программирования Dynamo, Iron Python для обработки информации о проектах Revit, но все же был выбрана программа SharpDevelop как менее объемная по отношению к загрузке компьютера и простоты разработки. Среда программирования Dynamo является параметрической системой с необходимостью ручного программирования и настройки параметров для каждого проекта в новых версиях Autodesk Revit. Применение среды программирования Iron Python может потребовать загрузки дополнительных библиотек в процессе разработки программ, медленной программной обработки проектов по мере выходы новых версий Autodesk Revit, API.

Поэтому сейчас для разработки выбраны программы SQLite, SharpDevelop, VisualStudio 2019 как более универсальные программные средства работы с внутренней средой Autodesk Revit. Перспективы использования этих программ будут рассмотрены по мере тестирования новых версий Revit.