В рамках любой работы с проектом со временем возникает потребность сведения проекта и проверки модели или чертежа на корректность выполнения как в рамках одного раздела, так и в рамках работы между несколькими смежными разделами. В частности очень важным этапом такой проверки является нахождение и устранение коллизий. Таккже проверка коллизий может помочь пользователям упростить формирование заданий на отверстия и упростить общий контроль над качеством выполнения собственной модели.
Для выполнения всех этих задач командой нанософт было разработано два специальных инструмента: «Проверка модели» и «Отчет о проверках». Данные инструменты доступны в конфигурации nanoCAD СПДС и позволяют проводить проверки между различными типами элементов, в том числе объектов программы BIM Строительство. Именно в рамках этого ПО мы и рассмотрим данные инструменты на примере подготовленной модели, включающей в себя как элементы BIM Строительства (рис.1), так и IFC объекты (рис.2), расположенные в единых координатах.

Рисунок 1 – Модель BIM Строительства

Рисунок 2 - IFC объекты смежных разделов в пространстве сводного проекта
Для возможности взаимодействия с функционалом «Проверка модели» и «Отчет о проверках», необходимо открыть исходную модель в приложении nanoCAD BIM Строительство с подключенным расширением СПДС. Данное расширение можно установить в рамках базовой установки программы. После утановки найдите соответствующую иконку, показанную на рисунке 3:

Рисунок 3 – Вид ярлыка nanoCAD BIM Строительство СПДС
Для начала работы с инструментами «Проверка модели» и «Отчет о проверках» можно воспользоваться командой «TABS», достаточно ввести её в командной строке (рис.4), либо воспользоваться соответствующей кнопкой на вкладке ленты «СПДС» (рис.5)

Рисунок 4 – Команда «TABS»

Рисунок 5 – Функция в ленте
При активации команды открывается контекстное меню со списком вкладок, которые можно открыть в данной конфигурации программы, в рамках статьи нас интересуют вкладки «Проверка модели» и «Отчет о проверках» (рис.6)

Рисунок 6 – Контекстное меню команды «TABS»
Принципы работы с каждой из вкладок разберем последовательно для непрерывности действий, начнём с вкладки «Проверка модели» (рис.7)

Рисунок 7 – Вкладка «Проверка модели»
Для начала разберем команды, доступные нам на вкладке.
- Команда «Добавить папку» позволяет создавать новые папки для будущих правил проверки, с её помощью можно сформировать точную иерархию, по которой будут расположены правила (рис.8)

Рисунок 8 – Произвольная структура папок
- Команды импрота и экспорта правил позволяют загружать и выгружать сформированные правила в формате JSON.
- Команда «Удалить», позволяющая удалять правили или папки.
- Команда «Создать правило» создает новое правило в рамках выбранной папки.
- Команда «Запуск проверок» запускает все проверки в рамках папки.
- Команды для открытия вкладки отчета по проверкам и экспорту отчетов.
- Команда для вызова справки
Создадим новое правило и более детально рассмотрим принципы работы с правилами (рис.9)

Рисунок 9 – Пустое правило
Для начала работы с правилом необходимо указать один из типов проверки (рис.10 и рис.11)

Рисунок 10 – Правила проверки (начало)

Рисунок 11 – Правила проверки (конец)
Описание всех типов условий, представленных на вкладке «Проверка модели»:
Минимальное расстояние - Выводит пары объектов, расстояние между которыми меньше указанного
Максимальное расстояние - Выводит пары объектов, расстояние между которыми больше указанного
Расстояние между объектами - Определяет расстояние между объектами
Базовая точка левого объекта находится на осевой линии правого - Например, базовая точка запорной арматуры находится на осевой линии трубы
Включение базовой точки левого объекта в пределы правого - Например, базовая точка стола входит в объем комнаты
Наличие объектов - Наличие хотя бы одного правого объекта в пределах левого или в пределах расстояния относительно левого
Пересечение объектов - Выводит пары пересекающихся объектов
Касание объектов - Выводит пары касающихся объектов
Полное включение левых объектов в правые - Проверяет предположение о том, что левые объекты полностью включаются в правые
Включение проекции базовой точки левого объекта в проекцию правого - Например, проекция базовой точки стола входит в проекцию комнаты. Проецирование производится по указанному вектору проецирования
Пересечение проекций объектов - Определяет наличие пересечений проекций объектов. Проецирование производится по указанному вектору проецирования
Полное включение проекции левых объектов в проекцию правых - Проверяет предположение о том, что проекция левых объектов полностью включается в проекцию правых объектов. Проецирование производится по указанному вектору проецирования
Сумма атрибутов группы - Вычисляет сумму значений атрибутов с указанным наименованием
Площадь группы - Определяет площадь проекции группы объектов. Проецирование производится по указанному вектору проецирования
Количество объектов в группе - Определяет количество выбранных объектов, либо количество всех объектов модели, если объекты не выбраны
Значение числового атрибута - Выводит объекты с параметром, соответствующим условию
Значение строкового атрибута - Выводит объекты с параметром, соответствующим условию. Например, Наименование атрибута - IfcType, значение - w*windoww* (window)
Условие - Проверяет пары объектов на соответствие заданному условию. Возможно использование значения пары объектов из проверки-входного множества. Для обращения к параметрам левого и правого объектов используются префиксы Object1."Наименование параметра" и Object2."Наименование параметра", для обращения к значению из проверки-входного множества - Value
Угол между осевыми линиями объектов - Проверка выполняется только для объектов, содержащих осевую линию
Расстояние между осевыми линиями объектов - Проверка выполняется только для объектов, содержащих осевую линию
Дублирование - Выводит пары дублирующихся объектов
Последовательность нумерации атрибутов - Проверяет корректность последовательности нумерации атрибутов. Например, объекты пронумерованы: П-1, П-2, П-4, П-5. П-3 пропущено - это ошибка
Левые объекты принадлежат контуру/объему правых - Выводит левые объекты, принадлежащие объему/контуру правых объектов. Принадлежность контуру/объему означает, что объекты пересекаются с контуром/объемом, либо полностью входят в контур/объем, либо лежат на контуре/объеме
Входит в - Проверяет предположение о том, что левый объект входит в правый согласно структуре IFC, либо наоборот - правый объект входит в левый, если установлена галочка Обменять левые с правыми
Выборка - Выборка
При выборе одной из проверок появляется возможность выбора входных множеств (рис.12). В зависимости от типа проверки может быть использовано одно (левые) или два (левые и правые) множества объектов. Каждое множество имеет свои: источник данных, список классов, список выбора типа объектов, фильтр объектов.

Рисунок 12 – Правило с выбранным условием
Разберем принцип работы инструмента «Проверка модели» на примере нескольких базовых вариантах проверки. Для начала посмотрим как можно упростить формирование отверстий путём проверки между объектами IFC и элементами BIM Строительства. Создадим новое правило со следующими настройками, показанными на рисунке 13.

Рисунок 13 – Настройки правила по проверке пересечений.
После выбора конкретного правила у пользователя открывается доступ к выбору объектов в формате множеств. Входящие множества имеют идентичные настройки. В зависимости от выбранного типа проверки множество может быть одно, либо два. Прежде всего необходимо выбрать класс объекта, можно также выбрать несколько классов, однако для более точных и детальных проверок лучше ограничиваться одним классом объектов. Следующим этапом идет отбор типов объектов, участвующих в проверке. Типов объектов также может быть несколько. Последним этапом детализации являются фильтры отбора объектов, позволяющие отбирать объекты по параметрам (рис.14):

Рисунок 14 – Фильтр отбора объектов
В колонке "Свойства" выбираются из списка доступные для фильтрации свойства.
В колонке "Способ проверки" выбирается из списка способ проверки значения: =, <, <=, >, >=, Список, Regex, Формула.
В колонке "Значение" указывается числовое значение, список через точку с запятой, выражение Regex или формула, в зависимости от выбранного способа проверки. Для удобства в выпадающем списке перечислены все варианты значений выбранного свойства объектов.
При выборе входного множества в функции предусмотрено несколько вариантов отбора объектов: Документ, Выборка, Проверка.
Документ - используются все объекты на чертеже.
Выборка - используются выбранные объекты на чертеже. Для выбора необходимо нажать кнопку "Выбор объектов", далее выбрать объекты на чертеже и нажать клавишу "Enter". Количество выбранных объектов отобразится на кнопке. Также работает и в обратную сторону, сперва в модели выбираем требуемые элементы для проверки, далее необходимо нажать кнопку "Выбор объектов".
Проверка - выбираются объекты из выбранной проверки. Кроме номера исходной проверки следует выбрать множество (левое, правое, оба) и результат проверки (положительный, отрицательный, любой).
Последним этапом перед запуском проверки является настройка параметров правила.
Два основных параметра, которые есть в каждом типе проверок модели:
Инвертировать правило - параметр инвертирует результат правила. Т.е. положительный результат станет отрицательным и наоборот.
Выводить результат - определяет какой результат выводить: положительный (Да), отрицательный (Нет) или любой.
Опциональные параметры, отображение которых зависит от выбранного типа проверки:
Поле "Минимальное расстояние" - значение минимального расстояния.
Поле "Максимальное расстояние" - значение максимального расстояния.
Список "Режим сравнения" - выбор режима сравнения. В скобках указано пояснение как работает режим.
Поле "Левый предел" - сравниваемое значение расстояния.
Поле "Правый предел" - сравниваемое значение расстояния.
Поле "Максимальное расстояние" - максимальное расстояние поиска от объекта. Обязательный, не должен быть равен 0.
Флажок"Завершить поиск на первом обнаруженном касании" - поиск завершается при обнаружении касания. Для пошаговой проверки объектов. Необязательный.
Список "Ось проецирования" - вектор проецирования, по умолчанию Z.
Список "Наименование атрибута" - название строкового атрибута. Выбирается из выпадающего списка. Обязательный.
Список "Значение атрибута" - значение строкового атрибута. Выбирается из выпадающего списка. Обязательный.
Флажок "Игнорировать регистр при проверке" - игнорирование регистра при проверке. Необязательный.
Флажок"Обменять левый с правыми" - изменение списков местами при проверке. Необязательный.
Список "Операция над множествами" - выбор способа сравнения множеств.
После настройки правила активируем команду «Запуск проверок» и после выполнения происходит переход на вкладку «Отчет о проверках» с итоговыми результатами проверок (рис.15):

Рисунок 15 – Отчет о проверке на пересечение объектов
На вкладке отчетов мы можем совершать следующие действия:
- «Разрешить выделенное», команда позволяет разрешить выбранный в списке результат.
- Отображение результатов двух типов: разрешенные и запрещенные.
- Экспорт отчета в формате JSON.
- Справка.
Через отчет мы можем перейти к объектам с помощью нажатия ЛКМ, отображенным в конкретном результате, либо выбрать часть или все результаты для дальнейшего взаимодействия с объектами внутри этих результатов с помощью сочетания клавиш Ctrl+ЛКМ либо Shift+ЛКМ (рис.15-16).
![]()
Рисунок 16 – Выделение объекта в рамках результата единичной проверки

Рисунок 17 – Выделение нескольких результатов в рамках отчета через сочетание клавиш Ctrl+ЛКМ
Выделенный результат в пространстве модели выделяет объекты и подсвечивает пространство коллизии, если выбранный тип проверки подразумевал проверку на коллизии (рис.18).

Рисунок 18 – Визуальное отображение результата проверки в модели.
После проведения проверки, пользуясь полученными результатами в отчете о проверке, пользователь может проводить точечные изменения в модели путём перехода к проблемным местам модели с дальнейшим внесением изменениий в геометрю элементов. После редактирования модели с помощью всё тех же инструментов проверки модели и отчетов о проверках, пользователь имеет возможность автоматизированно проверять промежуточные результаты своей работы, ускоряя формирование отверстий, основываясь на актуальной модели смежных разделов.
В зависимости от выбранного типа проверки конечная настройка множества может различаться в зависимости от требуемых условий. В качестве примера сформируем еще одно правило проверки на минимальное расстояние (рис.19).

Рисунок 19 – Пример другого типа проверки.
Как мы видим на этом примере, в проверке минимального расстояния необходимо, кроме прочих стандартных данных, заполнить информацию по минимальному расстоянию в миллиметрах. Следовательно, в ряде проверок присутствуют дополнительные обязательные к заполнению атрибуты, характерные для соответствующих проверок.
Также инструмент Проверка модели позволяет проводить проверки модели не только между элементами разных разделов, загруженных в качестве IFC-объектов, но и между объектами BIM Строительство. В качестве примера сформируем еще одно правило проверки со следующими настройками (рис. 20).

Рисунок 20 – Правила проверки дублирования объектов
Как можно видеть, в этом правиле используется только одна группа объектов – Левое множество. В качестве отбираемых объектов выберем Прочие объекты, в этот класс входят также и объекты BIM Строительство. После отбора класса объектов, выбираем Тип – Объект параметрический, а также дополнительно настраиваем фильтр отбора объектов, в виде свойства объекта и его значения.
После выполнения проверки происходит переход в окно Отчет о проверках с ее результатами (рис. 21).

Рисунок 21 – Отчет о проверке дублирование для объектов мебели.
В полученном отчете мы видим ряд объектов с дублированием и двойным нажатием ЛКМ по одному из полученных объектов из столбца Левые объекты или Правые объекты переходим непосредственно к проблемному месту (рис. 22).

Рисунок 22 – Дублирующийся объект
Удалим один из двух дублирующихся объектов в каждом из результатов и повторно запустим проверку для избежания ошибки.

Рисунок 23 – Повторный отчет о проверке на дублирование
Как мы видим на рис. 23, после того, как мы отработали результаты, полученные при первой проверке, повторная проверка выдала нам 0 результатов и очистила уже существующие значения.
Заключение
Инструменты Проверка модели и Отчет о проверках крайне гибкие и хорошо настраиваемые инструменты, позволяющие не только проверять проект на коллизии, но и проводить комплексный анализ модели как в рамках одного направления, так и при загрузке моделей из смежных разделов в формате IFC, что помогает устранять ошибки уже на этапе проектирования.













