SomeStuff AI Context ru - kuvbur/AddOn_SomeStuff GitHub Wiki

SomeStuff — AI-справочник по дополнению для Archicad

Файл для подключения в контекст ИИ-ассистента. Содержит сжатую справку по всем функциям дополнения SomeStuff для Archicad. Термины соответствуют официальной справке Archicad и форуму community.graphisoft.com.


Что такое SomeStuff

Дополнение (Add-On) для Archicad, автоматизирующее работу со Свойствами элементов: синхронизация GDL-параметров Библиотечных Элементов и Свойств, нумерация, анализ состава Конструкций, оформление чертежей по ГОСТ, управление Классификацией Элементов и многое другое.


Установка

Windows: скачать из Releases (суффикс WIN), закрыть Archicad, скопировать в папку расширений (C:\Program Files\GRAPHISOFT\ARCHICAD XX\Расширения ARCHICAD\Дополнения), запустить Archicad.

Mac: скачать (суффикс MAC), в Терминале выполнить:

xattr -cr SomeStuff.bundle
codesign --force --deep --sign - SomeStuff.bundle

Затем в Менеджере Дополнений нажать «Добавить» и указать путь к файлу.

Добавление команд в меню: Параметры → Окружающая Среда → Меню / Табло Команд → «Все команды по теме» → Расширения → SomeStuff → добавить нужные команды.


Ключевой принцип работы

Вся настройка производится через поле «Описание» Свойства в Менеджере Свойств (Параметры > Менеджер Свойств). Дополнение читает это поле и выполняет соответствующее действие.

Обязательные условия для работы

  1. Элемент должен быть классифицирован — Класс назначается на панели «Классификации и Свойства» в Диалоге Параметров Элемента
  2. У элемента должно быть Свойство-флаг — Свойство типа Критерий Соответствия с текстом Sync_flag в поле «Описание», со значением ИСТИНА
  3. Свойства должны быть доступны для Класса данного элемента — настраивается в нижней части Менеджера Свойств
  4. Нужный тип элемента должен быть включён в меню дополнения

Диагностика: Панель Навигатора → Отчёт — дополнение выводит туда подробную информацию о каждой выполненной операции.


Флаги управления обработкой

Описание пишется в поле «Описание» Свойства в Менеджере Свойств.

Описание Свойства Тип данных Свойства Назначение
Sync_flag Критерий Соответствия Включение/отключение всей обработки элемента
Sync_class_flag Критерий Соответствия Отключить только обработку Классификации
Sync_correct_flag Критерий Соответствия Отключить только проверку координат
Sync_reset любой Сбросить значение Свойства к значению по умолчанию везде

Команды управления дополнением

  • Отслеживать — автоматическая синхронизация при каждом изменении элемента
  • Синхронизировать все — обработать все элементы выбранного типа в проекте
  • Синхронизировать выделенные — обработать только выделенные элементы (без активации мониторинга)

Синхронизация Свойств и GDL-параметров

Описание команды пишется в поле «Описание» целевого Свойства в Менеджере Свойств.

Основные команды

Описание Свойства Действие
Sync_from{ИМЯ_ПАРАМЕТРА} Скопировать GDL-параметр Библиотечного Элемента → в Свойство
Sync_from{description:ОТОБРАЖАЕМОЕ_ИМЯ} По отображаемому имени GDL-параметра (поддерживает кириллицу)
Sync_from{Property:ГРУППА/СВОЙСТВО} Скопировать значение другого Свойства → в данное Свойство
Sync_from{IFC:ИМЯ_СВОЙСТВА} Скопировать значение IFC-свойства → в Свойство Archicad
Sync_to{ИМЯ_ПАРАМЕТРА} Записать значение Свойства → в GDL-параметр Библиотечного Элемента
Sync_to{id} Записать значение Свойства → в ID Элемента

Имя GDL-параметра (переменная на латинице) смотреть в Редакторе Объекта: Файл → Библиотеки и Объекты → Открыть Объект, кнопка «Параметры» → столбец «Переменная». Для запароленных объектов использовать команду «Дамп Библиотечных Элементов» — выводит список параметров в Отчёт.

Модификаторы игнорируемых значений (добавляются через ;)

Модификатор Смысл
empty Игнорировать пустые строки и нулевые числа
trim_empty Игнорировать строки из пробелов и нулевые числа
def Сбросить к значению по умолчанию, если подходящее значение не найдено

Пример: Sync_from{Property:Группа/Свойство; empty}

Работа с массивами GDL-параметров (только чтение)

Модификатор Результат для текста Результат для чисел
uniq Уникальные значения Сумма
sum Конкатенация всех значений Сумма
max Максимум
min Минимум

Пример с диапазоном строк: Sync_from{param_name; uniq(1,3)}
Можно использовать GDL-параметры как границы диапазона: Sync_from{param_name; uniq(1,nrow)}

Координаты элементов

Описание Свойства Данные
Sync_from{symb_pos_x} / {symb_pos_y} / {symb_pos_z} Базовые координаты (для Стен/Балок — точка начала)
Sync_from{Coord:symb_pos_sx} / {symb_pos_sy} Координаты начала Стены/Балки
Sync_from{Coord:symb_pos_ex} / {symb_pos_ey} Координаты конца Стены/Балки
Sync_from{Coord:symb_pos_lo_x} и т.д. Координаты относительно пользовательского начала координат
Sync_from{Coord:symb_pos_sp_x} и т.д. Координаты относительно Точки Местоположения Проекта (Survey Point)

Поддерживаемые типы: Окно, Дверь, Стена, Балка, Колонна, Объект, Зона. Для панелей Навесной Фасадной Системы возвращает центр Панели (x, y, z).

Иерархические структуры (Навесная Фасадная Система, Зоны)

Описание Свойства Действие
Sync_from_sub{Property:ГРУППА/СВОЙСТВО} Прочитать Свойство из вложенного подэлемента (Панель, Рама, Аксессуар Навесной Фасадной Системы)
Sync_to_sub{Property:ГРУППА/СВОЙСТВО} Записать значение Свойства во вложенный подэлемент

Связь произвольных элементов по GUID

  1. Выделить дочерние элементы (должны быть доступны для редактирования)
  2. Запустить команду «Связать Элементы»
  3. Кликнуть на родительский элемент (источник данных)

В поле «Описание» Свойства дочернего элемента: Sync_from_GUID{Property:ГРУППА/СВОЙСТВО_C_GUID; Property:ГРУППА/СВОЙСТВО}

В поле «Описание» Свойства, хранящего GUID родителя: Sync_GUID


Классификация Элементов

Классами управляет Менеджер Классификаций (Параметры > Менеджер Классификаций). Класс назначается элементу на панели «Классификации и Свойства» в Диалоге Параметров Элемента.

Место настройки Текст в поле «Описание» Действие
Поле «Описание» Класса в Менеджере Классификаций some_stuff_class Автоматически назначить этот Класс неклассифицированным элементам
Поле «Описание» Свойства (тип: Строка) Sync_to{Class:ИМЯ_КЛАССИФИКАЦИИ} Менять Класс элемента при изменении значения Свойства (поиск Класса выполняется по его ID)
Поле «Описание» Свойства (тип: Строка) Sync_from{Class:ИМЯ_КЛАССИФИКАЦИИ; FullName} Вывести полное имя Класса элемента в Свойство

Состав Конструкций

Описание команды пишется в поле «Описание» целевого Свойства. Имена Свойств в строке-шаблоне обрамлять символами %.

Базовый синтаксис

Sync_from{Material:Layers; "%Описание% - %Толщина.2mm%мм. "}
Вариант ключевого слова Порядок слоёв
Material:Layers По порядку в Редакторе Составных Конструкций (первый слой сверху)
Material:Layers_inv В обратном порядке
Material:Layers_auto Как в Предпросмотре Поперечного 2D-Сечения
Material:Layers,НОМЕР_ПЕРА Слои Сложного Профиля, определённые указанным Пером сечения
Material:Layers,all Все слои с вычислением объёмов и площадей
Material:Layers,unic Объединить слои с одинаковым Строительным Материалом и толщиной

Встроенные переменные строки-шаблона

Переменная Значение
%Толщина% / %layer_thickness% / %th% Толщина слоя Конструкции
%n% Порядковый номер слоя (все слои)
%ns% Порядковый номер слоя (только слои с непустой строкой)
%штриховка% Имя Штриховки Строительного Материала
%описание% Описание Строительного Материала
%наименование% Наименование Строительного Материала
%плотность% Плотность Строительного Материала
%area% Площадь компонента, кв.м.
%volume% Объём компонента, куб.м.
%qty% Количество по выбранной единице измерения
%unit% Единица измерения (из Свойства материала some_stuff_units)
%bmat_inx% Индекс Строительного Материала

Форматирование вывода

  • Спецсимволы для Выносных Надписей: \CRLF, \LF, \TAB, \PS, \LS, \NEL
  • Выравнивание в Интерактивных Каталогах: добавить ~200 (дополнить пробелами) или @200 (табуляцией) перед закрывающей кавычкой в правиле
  • Формулы по слоям: часть выражения в < > повторяется для каждого слоя. Пример: для Стены 20+380+20 мм запись <+2*%толщина.1мм%> даст +2*20+2*380+2*20 = 840

Свойства Строительных Материалов для вычисления количеств

Свойства создаются и делаются доступными для Классов Строительных Материалов через Параметры > Реквизиты Элементов > Строительные Материалы.

Описание Свойства Строительного Материала Назначение
some_stuff_units Единица измерения: кв.м., м², куб.м., м³, п.м., не специфицировать
some_stuff_th Толщина материала с постоянной толщиной (например, гидроизоляция). Тип данных: Длина
some_stuff_kzap Коэффициент запаса (влияет только на переменную %qty%)
Sync_name Задать произвольный текст вместо имени Строительного Материала в составе

Чтобы пользовательское Свойство считывалось из Строительного Материала, а не из элемента Archicad, добавить в его поле «Описание»: {@property:buildingmaterialproperties}


Округление числовых значений Свойств

Формат задаётся в имени Свойства после точки — эта часть должна содержать букву m:

Формат имени Свойства Пример результата
МоёСвойство.1mm Миллиметры, 1 знак, нули подавляются: 12 или 12,1
МоёСвойство.01mm Миллиметры, 1 знак, нули сохраняются: 12,0 или 12,1
МоёСвойство.01mp Миллиметры, разделитель — точка: 12.0 или 12.1

В строке-шаблоне состава Конструкции: %Толщина.2mm%
В описании Свойства при синхронизации: Sync_from{A.1mm}


Нумерация Элементов (аналог Менеджера ID)

Требуются два Свойства в Менеджере Свойств: свойство-флаг и свойство-позиция. Правила нумерации пишутся в поле «Описание» каждого из них.

Свойство-флаг нумерации

Тип данных: Критерий Соответствия или Набор Параметров (значения: Добавить / Перенумеровать / Исключить).

Описание Свойства-флага Поведение
Renum_flag{Property:Группа/СвойствоС_Правилом} Стандартная нумерация
Renum_flag{...; NULL} Заполнение нулями, длина — по максимальной позиции в группе
Renum_flag{...; SPACE} Заполнение пробелами, длина — по максимальной позиции в группе
Renum_flag{...; ALLNULL} Заполнение нулями без учёта групп
Renum_flag{...; 4_NULL} Жёсткая длина 4 символа, заполнение нулями
Renum_flag{...; 4_SPACE} Жёсткая длина 4 символа, заполнение пробелами

Свойство-позиция (хранит результирующий номер элемента)

Описание Свойства-позиции Поведение
Renum{Property:Группа/Свойство_Критерий} Нумерация по одному критерию
Renum{Property:Группа/Критерий; Property:Группа/Разбивка} Нумерация с независимыми группами, разделёнными по Свойству-разбивке

Для одновременной записи позиции в ID Элемента добавить в поле «Описание» Свойства-позиции: Sync_to{ID}

Если в проекте выделен один элемент — дополнение автоматически обрабатывает все элементы на видимых Слоях с такими же правилами нумерации. Учитываются позиции выделенных заблокированных элементов, в том числе элементов в Хотлинках.


Суммирование Свойств

Свойство-флаг для суммирования не требуется. Запускается командой «Суммировать Выделенные» на выделенных элементах.

Описание Свойства (в него записывается результат) Действие
Sum{Property:Группа/Суммируемое; Property:Группа/Критерий} Сумма чисел или объединение уникальных текстовых значений (разделитель по умолчанию ;)
Sum{...; разделитель} Задать произвольный разделитель для текстовых значений
Sum{...; max} Вывести максимальное значение (только для числовых Свойств)
Sum{...; min} Вывести минимальное значение (только для числовых Свойств)

Обработка Размеров — округление и контроль

Правила задаются в Информации о Проекте (Файл > Информация > О Проекте), поле Addon_Dimensions. Несколько правил разделять символом ;.

Форматы правил

"ЧАСТЬ_ИМЕНИ_СЛОЯ" - КРАТНОСТЬ_ММ, ПЕРО_ИЗМЕНЁННОГО_ТЕКСТА, ФЛАГ_ИЗМЕНЕНИЯ_СОДЕРЖИМОГО
ПЕРО_ЛИНИИ_РАЗМЕРА - КРАТНОСТЬ_ММ, ПЕРО_ИЗМЕНЁННОГО_ТЕКСТА, ФЛАГ_ИЗМЕНЕНИЯ_СОДЕРЖИМОГО

Перо линии Размера — это Перо самой размерной линии (не текста). Если Флаг = 0, то изменяется только Перо текста, содержимое Размера не меняется.

Дополнительные модификаторы (добавляются в конец правила через запятую или пробел)

Модификатор Действие
ClassicRound Классическое математическое округление (не только вверх)
DeleteWall Скрыть значения толщин Стен в размерной цепочке
ResetText Сбросить вручную изменённый текст Размеров на измеренное значение
CheckCustom Подсветить Размеры с вручную изменённым текстом

Пример правила: ".КЖ" - 5, 20, 0, ClassicRound

Обработка происходит: при открытии Вида, при смене этажа, при изменении отслеживаемого элемента (если включено «Отслеживать»), при команде «Синхронизировать всё».

Ограничение Archicad: Размеры, ассоциированные с Профильными Колоннами или Отверстиями, не обрабатываются из-за ошибки в Archicad.


Заполнение Изменений по ГОСТ Р 21.101-2020

Функция совместима только с Маркером Изменений и Штампом из библиотеки kuvbur_Формат по ГОСТ.

  • Кнопка активна только при вызове с Макета
  • Обрабатываются все видимые зарезервированные Маркеры Изменений на всех Макетах проекта
  • Действие необратимо — не резервировать чужие Листы при совместной работе в Teamwork
  • Результаты записываются в Свойства Макета: Somestuff_QtyIssue_1...n и Somestuff_Note
  • Для регенерации Листа переключиться на другой Лист и вернуться обратно

QR-код из значения Свойства

Создать Свойство типа Строка. В поле «Описание» указать: Sync_from{QRCode:Property:ГРУППА/ИМЯ_СВОЙСТВА}

Дополнение подготавливает строку данных для макроса macro_qrcode (библиотека kuvbur). Макрос вызывается из 2D- или 3D-скрипта Библиотечного Элемента или через готовую Выносную Надпись из библиотеки kuvbur_QRCode.

Для передачи через IFC: создать IFC-свойство с именем QRCode (тип ifcText), назначить ему правило из Свойства, куда дополнение записало подготовленную строку.


Создание Элементов Спецификации (Spec_rule)

Генерирует строки Интерактивного Каталога для составных GDL-объектов — обходит ограничение «1 элемент = 1 строка спецификации».

Свойство-правило (тип данных: Критерий Соответствия)

Spec_rule {"ИМЯ_ИЗБРАННОГО"; g(U1,U2; P1,P2; F; Q) s(Pn1,Pn2; Qn)}
  • g(...) — группа исходных данных: U — критерии уникальности, P — передаваемые GDL-параметры или Свойства, F — флаг активности (1/0), Q — параметры количества для суммирования
  • s(...) — структура создаваемого элемента: Pn — принимающие GDL-параметры или Свойства, Qn — параметры для записи итогового количества
  • gm(...) — аналог g(...) для Строительных Материалов слоёв Составных Конструкций и Сложных Профилей
Версия правила Отличие
Spec_rule Базовая версия
Spec_rule_v2 Автообновление ранее созданных элементов + вывод изменившихся значений в Отчёт
Spec_rule_v3 Как v2, плюс игнорирует элементы с отсутствующими GDL-параметрами без вывода ошибок

Базовый элемент берётся из активного инструмента Объект или из Избранного (если его имя указано в правиле). У базового элемента должна быть настроена Классификация и доступны нужные Свойства.


Производительность

Дополнение срабатывает только при изменении элемента (при включённом «Отслеживать») или при ручном запуске. На скорость 3D-отрисовки и работу в 3D-окне не влияет. Количество синхронизируемых Свойств на производительность практически не влияет.

Рекомендации при замедлении:

  • Ограничивать Доступность Свойств по Классам в Менеджере Свойств — не делать Свойства доступными для ненужных Классов элементов
  • При массовых операциях (вставка из другого файла, работа с Хотлинками) временно отключать «Отслеживать», затем выполнять синхронизацию вручную
  • Отключать обработку типов элементов, которые не используются в текущем проекте

Диагностика — ничего не работает

  1. Элемент классифицирован? → проверить панель «Классификации и Свойства» в Диалоге Параметров Элемента
  2. Свойство с описанием Sync_flag (тип Критерий Соответствия) видно в параметрах элемента и равно ИСТИНА?
  3. У элемента только одно Свойство с описанием Sync_flag?
  4. Нужные Свойства доступны для Класса этого элемента и видны в Диалоге Параметров?
  5. Нужный тип элемента включён в меню дополнения?
  6. Синтаксис описания верный? Скобки фигурные {}, пробелов перед { нет: правильно Sync_from{, неправильно Sync_from {
  7. Отслеживание включено? Если нет — выделить элементы и нажать «Синхронизировать Выделенные»
  8. Открыть Панель Навигатора → Отчёт — дополнение подробно описывает каждую выполненную операцию и все ошибки