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

Материалы можно скачать по ссылке в конце статьи.

Идея

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

Матрица

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

Матрица представляет собой таблицу, в столбцах и строках которой прописаны элементы модели, сгруппированные определенным образом (в моем случае это разделы и категории элементов Revit). На пересечении пар категорий проставляются номера необходимых проверок.

Матрица коллизий
Матрица коллизий

Порядок работы

1. Расстановка приоритетов разделов. На вкладке "Приоритеты" присвоить порядковые номера разделам по "важности" и гибкости с точки зрения внесения изменений.

Таблица приоритетов разделов
Таблица приоритетов разделов

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

Проверки в окне Clash Detective структурируются в соответствии с приоритетами.

2. Определение типов проверок и допусков. Для каждой пары категорий актуален определенный тип проверки: пересечение, пересечение (консервативно), просвет или дублирование. Помимо типа, проверки могут отличаться допусками для разных пар категорий.

На вкладке "Мэппинг проверок" необходимо определить перечень проверок, задать допуски. Можно удалить лишние или добавить недостающие проверки, при этом важно использовать только те значения типов, которые представлены в таблице.

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

Тип проверки - наименование проверки в том виде, в котором оно представлено в файле XML, важно использовать только приведенные наименования типов, создавая новую проверку.

Код типа проверки - сокращение для типа проверки, которое будет указано в наименование проверки в Navisworks.

Допуск - значение в метрах, в пределах которого пересечение не считается коллизией.

3. Заполнение матрицы коллизий. На вкладке "Матрица проверок на коллизии" на пересечениях категорий проставить номера проверок, которые необходимо провести.

Если для пары нужно выполнить несколько проверок, введите двузначное или трехзначное значение без пробелов и запятых. Например, 13 означает проверки 1 и 3, 45 - проверки 4 и 5 и т.п.

В таблице настроено условное форматирование для проверок с 1 по 5, дополнительные условия можно настроить самостоятельно.

4. Запуск скрипта по формированию перечня проверок и поисковых наборов по матрице коллизий. Откройте скрипт 00_BIM_Создание перечня проверок по матрице коллизий, задайте путь к файлу с матрицей коллизий и запустите скрипт.

После завершения работы скрипта проверьте вкладки "Проверки" и "Поисковые наборы".

На вкладке "Проверки" получаем список проверок с соответствующими поисковыми наборами, типами проверки и допусками. Наименование в формате Приоритет_Раздел1_Раздел2_Тип проверки и допуск_Категория 1_Категория 2.

Вид таблицы с данными о проверках после завершения работы скрипта
Вид таблицы с данными о проверках после завершения работы скрипта

В столбце "Допуск" замените запятые на точки. К сожалению, в Dynamo данную операцию произвести не удалось, поэтому приходится заменять в Excel.

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

Вид таблицы с данными о поисковых наборах
Вид таблицы с данными о поисковых наборах

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

5. Сохранение файл Excel. Файл можно не закрывать, но обязательно сохранить. Важно не забыть это сделать, иначе изменения о замене запятых на точки в допуске не сохранятся, и файл XML не загрузиться в Нэвис.

6. Запуск скрипта по формированию XML файла с проверками. Откройте скрипт 00_BIM_Создание файла XML с проверками по перечню проверок и поисковых наборов.

1 - задайте имя файла XML.

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

3 - задайте путь к матрице коллизий.

После завершения всех настроек запустите скрипт. В указанной папке появится файл XML с заданным именем.

6. Загрузка файла XML в Navisworks. Загрузите файл XML, используя кнопку импорта в окне Clash Detective, проверьте правильность созданных проверок и поисковых наборов.

Наименование проверок, правила формирования поисковых наборов, кодировки и прочие частные нюансы можно настроить под себя. Так же, вероятно, скрипты можно оптимизировать. Надеюсь, что кому-то данная информация упростит жизнь и создаст почву для дальнейшей автоматизации.

Скрипты собраны в версии Dynamo 2.0.3. Использованы ноды из пользовательских пакетов Clockwork и Zhukoven.com.

Скачать материалы можно по ссылке.

Комментарии (0)