Программирование сегментации кабеленесущих систем в 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 предназначена для построения полной модели проекта с взаимосвязями между базами данных, файлами параметров, идентификаторами специальных семейств для кабельных лотков, конечному пользователю бывает сложно понять принцип программной обработки данных и расчета компоновки кабеленесущих систем.

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