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 → добавить нужные команды.
Ключевой принцип работы
Вся настройка производится через поле «Описание» Свойства в Менеджере Свойств (Параметры > Менеджер Свойств). Дополнение читает это поле и выполняет соответствующее действие.
Обязательные условия для работы
- Элемент должен быть классифицирован — Класс назначается на панели «Классификации и Свойства» в Диалоге Параметров Элемента
- У элемента должно быть Свойство-флаг — Свойство типа Критерий Соответствия с текстом
Sync_flagв поле «Описание», со значением ИСТИНА - Свойства должны быть доступны для Класса данного элемента — настраивается в нижней части Менеджера Свойств
- Нужный тип элемента должен быть включён в меню дополнения
Диагностика: Панель Навигатора → Отчёт — дополнение выводит туда подробную информацию о каждой выполненной операции.
Флаги управления обработкой
Описание пишется в поле «Описание» Свойства в Менеджере Свойств.
| Описание Свойства | Тип данных Свойства | Назначение |
|---|---|---|
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
- Выделить дочерние элементы (должны быть доступны для редактирования)
- Запустить команду «Связать Элементы»
- Кликнуть на родительский элемент (источник данных)
В поле «Описание» Свойства дочернего элемента: 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-окне не влияет. Количество синхронизируемых Свойств на производительность практически не влияет.
Рекомендации при замедлении:
- Ограничивать Доступность Свойств по Классам в Менеджере Свойств — не делать Свойства доступными для ненужных Классов элементов
- При массовых операциях (вставка из другого файла, работа с Хотлинками) временно отключать «Отслеживать», затем выполнять синхронизацию вручную
- Отключать обработку типов элементов, которые не используются в текущем проекте
Диагностика — ничего не работает
- Элемент классифицирован? → проверить панель «Классификации и Свойства» в Диалоге Параметров Элемента
- Свойство с описанием
Sync_flag(тип Критерий Соответствия) видно в параметрах элемента и равно ИСТИНА? - У элемента только одно Свойство с описанием
Sync_flag? - Нужные Свойства доступны для Класса этого элемента и видны в Диалоге Параметров?
- Нужный тип элемента включён в меню дополнения?
- Синтаксис описания верный? Скобки фигурные
{}, пробелов перед{нет: правильноSync_from{, неправильноSync_from { - Отслеживание включено? Если нет — выделить элементы и нажать «Синхронизировать Выделенные»
- Открыть Панель Навигатора → Отчёт — дополнение подробно описывает каждую выполненную операцию и все ошибки