惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
S
Securelist
U
Unit 42
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
T
Tenable Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
博客园_首页
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
A
Arctic Wolf
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
V
Visual Studio Blog
月光博客
月光博客
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Поиск и устранение коллизий в архитектурной модели в рамках nanoCAD BIM Строительство
nanocad (Нан · 2026-04-24 · via Все публикации подряд на Хабре

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

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

Рис. 1. Модель в nanoCAD BIM Строительство

Рис. 1. Модель в nanoCAD BIM Строительство

Рис. 2. IFC-объекты смежных разделов в пространстве сводного проекта

Рис. 2. IFC-объекты смежных разделов в пространстве сводного проекта

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

Рис. 3. Вид ярлыка nanoCAD BIM Строительство «СПДС»

Рис. 3. Вид ярлыка nanoCAD BIM Строительство «СПДС»

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

Рис. 4. Команда TABS

Рис. 4. Команда TABS

Рис. 5. Функция в ленте

Рис. 5. Функция в ленте

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

Рис. 6. Контекстное меню команды TABS

Рис. 6. Контекстное меню команды TABS

Принципы работы с каждой из вкладок разберем последовательно. Для непрерывности действий начнем с вкладки Проверка модели (рис. 7)

Рис. 7. Вкладка Проверка модели

Рис. 7. Вкладка Проверка модели

Для начала разберем команды, доступные нам на вкладке.

Команда Добавить папку позволяет создавать новые папки для будущих правил проверки, с ее помощью можно сформировать иерархию, по которой будут расположены правила (рис. 8).

Рис. 8. Произвольная структура папок

Рис. 8. Произвольная структура папок

Команды импорта и экспорта правил позволяют загружать и выгружать сформированные правила в формате JSON.

Команда Удалить, позволяющая удалять правили или папки.

Команда Создать правило позволяет создать новое правило в рамках выбранной папки.

Команда Запуск проверок позволяет запускать все проверки в рамках папки.

Команды для открытия вкладки отчета по проверкам и экспорту отчетов.

Команда для вызова справки.

Создадим новое правило и более детально рассмотрим принципы работы с правилами (рис. 9).

Рис. 9. Пустое правило

Рис. 9. Пустое правило

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

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

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

Рис. 11. Правила проверки (конец)

Рис. 11. Правила проверки (конец)

Описание всех типов условий, представленных на вкладке Проверка модели:

  1. Минимальное расстояние выводит пары объектов, расстояние между которыми меньше указанного.

  2. Максимальное расстояние выводит пары объектов, расстояние между которыми больше указанного.

  3. Расстояние между объектами определяет расстояние между объектами.

  4. Базовая точка левого объекта находится на осевой линии правого, например, базовая точка запорной арматуры находится на осевой линии трубы.

  5. Включение базовой точки левого объекта в пределы правого, например, базовая точка стола входит в объем комнаты.

  6. Наличие объектов – наличие хотя бы одного правого объекта в пределах левого или в пределах расстояния относительно левого.

  7. Пересечение объектов – выводит пары пересекающихся объектов.

  8. Касание объектов – выводит пары касающихся объектов.

  9. Полное включение левых объектов в правые – проверяет предположение о том, что левые объекты полностью включаются в правые.

  10. Включение проекции базовой точки левого объекта в проекцию правого. Например, проекция базовой точки стола входит в проекцию комнаты. Проецирование производится по указанному вектору проецирования.

  11. Пересечение проекций объектов – определяет наличие пересечений проекций объектов. Проецирование производится по указанному вектору проецирования.

  12. Полное включение проекции левых объектов в проекцию правых – проверяет предположение о том, что проекция левых объектов полностью включается в проекцию правых. Проецирование производится по указанному вектору проецирования.

  13. Сумма атрибутов группы – вычисляет сумму значений атрибутов с указанным наименованием.

  14. Площадь группы – определяет площадь проекции группы объектов. Проецирование производится по указанному вектору проецирования.

  15. Количество объектов в группе – определяет количество выбранных объектов либо количество всех объектов модели, если объекты не выбраны.

  16. Значение числового атрибута – выводит объекты с параметром, соответствующим условию.

  17. Значение строкового атрибута – выводит объекты с параметром, соответствующим условию. Например, Наименование атрибута – IfcType, значение – \w*window\w* (window).

  18. Условие – проверяет пары объектов на соответствие заданному условию. Возможно использование значения пары объектов из проверки входного множества. Для обращения к параметрам левого и правого объектов используются префиксы Object1. «Наименование параметра» и Object2. «Наименование параметра» для обращения к значению из проверки входного множества Value.

  19. Угол между осевыми линиями объектов – проверка выполняется только для объектов, содержащих осевую линию.

  20. Расстояние между осевыми линиями объектов – проверка выполняется только для объектов, содержащих осевую линию.

  21. Дублирование – выводит пары дублирующихся объектов.

  22. Последовательность нумерации атрибутов – проверяет корректность последовательности нумерации атрибутов. Например, объекты пронумерованы: П-1, П-2, П-4, П-5. П-3 пропущено – это ошибка.

  23. Левые объекты принадлежат контуру/объему правых – выводит левые объекты, принадлежащие объему/контуру правых объектов. Принадлежность контуру/объему означает, что объекты пересекаются с контуром/объемом либо полностью входят в контур/объем, либо лежат на контуре/объема.

  24. Входит в – проверяет предположение о том, что левый объект входит в правый согласно структуре IFC либо наоборот – правый объект входит в левый, если установлена галочка Обменять левые с правыми.

  25. Выборка – выборка.

При выборе одной из проверок появляется возможность выбора входных множеств (рис. 12). В зависимости от типа проверки может быть использовано одно (левые) или два (левые и правые) множества объектов. Каждое множество имеет свои: источник данных, список классов, список выбора типа объектов и фильтр объектов.

Рис. 12. Правило с выбранным условием

Рис. 12. Правило с выбранным условием

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

Рис. 13. Настройки правила по проверке пересечений

Рис. 13. Настройки правила по проверке пересечений

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

Рис. 14. Фильтр отбора объектов

Рис. 14. Фильтр отбора объектов

В колонке Свойства из списка выбираются доступные для фильтрации свойства.

В колонке Способ проверки из списка выбирается способ проверки значения: =, <, <=, >, >=, Список, Regex, Формула.

В колонке Значение указывается числовое значение, список через точку с запятой, выражение Regex или Формула, в зависимости от выбранного способа проверки. Для удобства в выпадающем списке перечислены все варианты значений выбранного свойства объектов.

При выборе входного множества в функции предусмотрено несколько вариантов отбора объектов: Документ, Выборка, Проверка.

Документ – используются все объекты на чертеже.

Выборка - используются выбранные объекты на чертеже. Для выбора необходимо нажать кнопку Выбор объектов, далее выбрать объекты на чертеже и нажать клавишу Enter. Количество выбранных объектов отобразится на кнопке. Также работает и в обратную сторону, сперва в модели выбираем требуемые элементы для проверки, далее необходимо нажать кнопку Выбор объектов.

Проверка – выбираются объекты из этой проверки. Кроме номера исходной проверки следует выбрать множество (левое, правое, оба) и результат проверки (положительный, отрицательный, любой).

Последним этапом перед запуском проверки является настройка параметров правила.

Вот два основных параметра, которые есть в каждом типе проверок модели:

  • Инвертировать правило – параметр инвертирует результат правила, то есть положительный результат станет отрицательным и наоборот;

  • Выводить результат – определяет какой результат выводить, положительный (Да), отрицательный (Нет) или любой.

Опциональные параметры, отображение которых зависит от выбранного типа проверки:

  • поле Минимальное расстояние – значение минимального расстояния;

  • поле Максимальное расстояние – значение максимального расстояния;

  • список Режим сравнения – выбор режима сравнения. В скобках указано пояснение как работает режим;

  • поле Левый предел – сравниваемое значение расстояния;

  • поле Правый предел – сравниваемое значение расстояния;

  • поле Максимальное расстояние – максимальное расстояние поиска от объекта. Обязательный не должен быть равен 0;

  • флажок Завершить поиск на первом обнаруженном касании – поиск завершается при обнаружении касания. Для пошаговой проверки объектов. Необязательный;

  • список Ось проецирования – вектор проецирования, по умолчанию Z;

  • список Наименование атрибута – название строкового атрибута. Выбирается из выпадающего списка. Обязательный;

  • список Значение атрибута – значение строкового атрибута. Выбирается из выпадающего списка. Обязательный;

  • флажок Игнорировать регистр при проверке – игнорирование регистра при проверке. Необязательный;

  • флажок Обменять левый с правыми – изменение списков местами при проверке. Необязательный;

  • список Операция над множествами – выбор способа сравнения множеств.

После настройки правила активируем команду Запуск проверок и после ее выполнения происходит переход на вкладку Отчет о проверках с результатами проверок (рис. 15).

Рис. 15. Отчет о проверке на пересечение объектов

Рис. 15. Отчет о проверке на пересечение объектов

На вкладке отчетов мы можем совершать следующие действия:

  • Разрешить выделенное – команда позволяет разрешить выбранный в списке результат;

  • Отображать результаты – отображение результатов двух типов: разрешенные и запрещенные;

  • Экспорт отчета в формате JSON;

  • Справка.

Через отчет мы можем перейти к объектам с помощью нажатия левой кнопки мыши (ЛКМ), получив конкретный результат либо выбрать часть или все результаты для дальнейшего взаимодействия с объектами внутри этих результатов с помощью сочетания клавиш Ctrl+ЛКМ либо Shift+ЛКМ (рис. 16-17).

Рис. 16. Выделение объекта в рамках результата единичной проверки

Рис. 16. Выделение объекта в рамках результата единичной проверки

Рис. 17. Выделение нескольких результатов в рамках отчета с помощью нажатия клавиш Ctrl+ЛКМ

Рис. 17. Выделение нескольких результатов в рамках отчета с помощью нажатия клавиш Ctrl+ЛКМ

Выделенный результат в пространстве модели выделяет объекты и подсвечивает пространство коллизии, если выбранный тип проверки подразумевал проверку на коллизии (рис. 18).

Рис. 18. Визуальное отображение результата проверки в модели

Рис. 18. Визуальное отображение результата проверки в модели

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

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

Рис. 19. Пример другого типа проверки

Рис. 19. Пример другого типа проверки

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

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

Рис. 20. Правила проверки дублирования объектов

Рис. 20. Правила проверки дублирования объектов

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

После выполнения проверки происходит переход в окно Отчет о проверках с ее результатами (рис. 21).

Рис. 21. Отчет о проверке дублирования для объектов мебели

Рис. 21. Отчет о проверке дублирования для объектов мебели

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

Рис. 22. Дублирующийся объект

Рис. 22. Дублирующийся объект

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

Рис. 23. Повторный отчет о проверке на дублирование

Рис. 23. Повторный отчет о проверке на дублирование

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

Заключение

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

Автор: Дмитрий Малиновский, эксперт по внедрению и поддержке ТИМ, ГК «ИНФАРС»