Связывание параметров

Набор инструментов, направленный на различное взаимодействие с параметрами

 Запуск плагина

Для того, чтобы запустить плагин, нужно перейти на вкладку «Стройтэекпроект», найти раздел «BIM Tools» и нажать на кнопку «Связывание параметров»:

После этого откроется такое окошко:

Здесь каждая вкладка отвечает за свой инструмент:

  • Параметр в параметр - копирование значения из параметра в параметр
  • Структура элементов в параметр - копирование структуры (стены/перекрытия/крыши) в параметр
  • Склейка и запись параметров с условием - соединение значений нескольких параметров в один

Копирование значения из параметра в параметр

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

Интерфейс инструмента выглядит следующим образом:

Использование:

  1. Выбираем категорию, для которой будет производиться копирование параметров. Например, если нам хочется скопировать значение параметра А в параметр Б в каждой стене, то нам нужно выбрать категорию стен:

  1. Настраиваем связи. Здесь нужно в левом списке выбрать параметр, из которого нужно брать значение, а в правом - параметр, в который нужно записать значение. Например, если вы хотите скопировать значение параметра «Длина» в параметр «Комментарии», то у вас должен получиться примерно такой результат:

  1. Если вам нужно скопировать несколько параметров внутри одной категории, то создайте ещё связей. Если связь оказалась лишней, то удалите её с помощью соответствующей кнопки:

  1. Инструмент будет обрабатывать все элементы выбранной категории в проекте. Если нужно обработать только часть элементов, выделите их в отдельную спецификацию, в плагине установите флажок «Для элементов из спецификации» и выберите созданную спецификацию. Если эта спецификация открыта, нажмите кнопку «С текущего вида» - тогда в списке будет автоматически выбрана та спецификация, которая у вас сейчас открыта. С помощью этой процедуры будут обработаны только те элементы, что есть в спецификации:

  1. Если вам нужно сделать копирование параметров в нескольких категориях, то нажмите на кнопку «Добавить категорию» и повторите предыдущие 4 пункта:

  1. После всех приготовлений можно нажимать на кнопку «Перезаписать параметры». Результат должен выглядеть примерно так:

контекстная картинка


Перенос структуры элементов (стен/перекрытий/крыш) в параметр

Инструмент предназначен для того, чтобы можно было перенести структуру элемента (многослойная стена/перекрытие/крыша) в параметр.

Инструмент находится на вкладке «Структура элементов в параметр» и выглядит следующим образом:

Использование:

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

  1. Выбираем параметр, в который будет записана структура:

  1. Значение параметра будет складываться из материалов слоёв. Нужно выбрать откуда брать название материала: из имени или из описания.

  1. Инструмент будет обрабатывать все элементы выбранной категории в проекте. Если нужно обработать только часть элементов, выделите их в отдельную спецификацию, в плагине установите флажок «Для элементов из спецификации» и выберите созданную спецификацию. Если эта спецификация открыта, нажмите кнопку «С текущего вида» - тогда в списке будет автоматически выбрана та спецификация, которая у вас сейчас открыта. С помощью этой процедуры будут обработаны только те элементы, что есть в спецификации:

  1. Если вам нужно сделать копирование cтруктуры в нескольких категориях, то нажмите на кнопку «Добавить категорию» и повторите предыдущие 4 пункта:

  1. После всех приготовлений можно нажимать на кнопку «Записать структуру в параметр». Результат должен выглядеть примерно так:

контекстная картинка

Слои выстраиваются таким образом: — «Название слоя» — «Толщина слоя»:

контекстная картинка


Соединение значений параметров

Этот инструмент предназначен для соединения значений нескольких параметров в один. Для склейки параметров используется язык программирования Python, поэтому нужно знать его хотя бы на минимальном уровне, чтобы получить желаемый результат.

Инструмент находится на вкладке «Склейка и запись параметров с условием» и выглядит следующим образом:

Использование:

  1. Выбираем категорию, для которой нужно произвести склейку параметров. Например, если нам нужно произвести склейку параметров для категории стен, то выбираем эту категорию:

  1. Если вы хотите склеивать одни и те же параметры для нескольких категорий, укажите дополнительные категории в поле «Дополнительные категории». Учтите: если в дополнительной категории отсутствуют параметры, участвующие в склейке для основной категории, склейка для этой дополнительной категории не произойдёт.

  1. Укажите параметр, в который будет записано значение, полученное при склейке:

  1. Выберите путь до python-cкрипта, который будет производить склейку. Подробнее о создании скрипта будет ниже.

  1. Инструмент будет обрабатывать все элементы выбранных категорий в проекте. Если нужно обработать только часть элементов, выделите их в отдельную спецификацию, в плагине установите флажок «Для элементов из спецификации» и выберите созданную спецификацию. Если эта спецификация открыта, нажмите кнопку «С текущего вида» - тогда в списке будет автоматически выбрана та спецификация, которая у вас сейчас открыта. С помощью этой процедуры будут обработаны только те элементы, что есть в спецификации:

контекстная картинка

  1. Если вам нужно сделать несколько склеек параметров, то в левом списке нажмите на кнопку «Добавить» после чего повторяете пункты с 1 по 5 для других категорий или параметров.

контекстная картинка

  1. После всех приготовлений можно нажимать на кнопку «Склеить параметры» внизу окна. На примере показана склейка параметров «Имя семейства» и «Толщина» в строчку вида «Стена: {Имя семейства} - {Толщина}»:

контекстная картинка

контекстная картинка


Создание скрипта

Для создания скрипта нужно обладать хотя бы минимальными знаниями языка программирования Python версии 2.7 (Документация). Помимо этого нужно иметь какое-нибудь IDE (интегрированная среда разработки), чтобы было удобно писать скрипты. Мы советуем использовать Visual Studio Code.

Структура скрипта должна выглядеть следующим образом:

Это основа любого скрипта. Без этой основы скрипт работать не будет.

Важное:

  • Работу над склейкой параметров следует производить внутри функции Func().
  • Функция Func() всегда должна возвращать результат типа str (string).

Значения параметров и имена параметров передаются как переменные среды Python при каждом запуске скрипта. Из-за особенности языка мы не можем использовать названия параметров как переменные, потому что в названии параметров могут содержаться спецсимволы и пробелы, что противоречит правилам создания переменных в Python. Поэтому в среду Python переносится отредактированное название переменной. Например:

Имя семейства → Имя_семейства

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

Примеры скриптов:

Этот скрипт создаёт строчку формата «Стена: {Имя семейства} - {Толщина}»:

контекстная картинка

 

py_example2.png

Этот скрипт анализирует длину стены и возвращает ответы, зависящие от длины стены:

py_example2_res.png

Можно заметить, что в скрипте используется запись длина=int(Длина). Это объясняется следующим образом: численные параметры, передающиеся в Python, конвертируются в тип float (число с плавающей точкой). Для того, чтобы в ответе не содержались числа с запятой (например 25000,0), нужно приводить такие числа к целочисленному значению с помощью конвертации в тип int (integer).

 

py_example3.png

Этот скрипт проверяет, является ли стена несущей, и выводит соответствующий результат:

контекстная картинка

Все параметры, у которых есть галочка, переводятся в Python в тип Boolean . Т.е. имеют значение либо True, либо False.

 

py_example4.png

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


Дополнительные возможности

В верху окна есть кнопка «Конфиг». Нажмите на неё, чтобы увидеть дополнительные возможности.

Здесь представлено три дополнительных функционала:

  1. Загрузка готовой конфигурации
  2. Сохранение текущей конфигурации
  3. Указание пути до папки с настройками проектов (нужно для работы плагина без GUI)

Важно! Перед использованием этих функций убедитесь, что в проекте, в котором вы находитесь, установлен и заполнен глобальный параметр Шифр. Он нужен для того, чтобы плагин мог работать без GUI. Этот параметр будет являться названием для папки, в которую будут отправлены конфиги для этого проекта.

контекстная картинка


Загрузка конфигурации

Нажмите на кнопку «Загрузить» и выберите .json файл интересующей вас конфигурации.

После этого будут применены все настройки из этого файла конфигурации:

контекстная картинка


Сохранение конфигурации

Нажмите кнопку «Сохранить как» для того, чтобы сохранить конфигурацию в первый раз. В папке, указанной как путь до настроек, будет создана папка с названием как у Шифра проекта, и в этой папке будут храниться конфиги для всех проектов с этим же шифром.

В последующих изменениях достаточно будет нажимать на кнопку «Сохранить».


Указание пути до настроек

Для того, чтобы выбрать директорию, куда будут сохраняться все настройки для всех ваших проектов, нажмите на кнопку «Путь до настроек». Откроется такое окно, в котором нужно будет выбрать путь до папки:

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


Работа плагина без GUI (без графического интерфейса).

Работа без GUI доступна по кнопке «Связывание параметров» на вкладке «Общие»:

контекстная картинка

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

Сценарий работы выглядит следующим образом:

  1. BIM-менеджер создает настройки для проекта
  2. BIM-менеджер отправляет эти настройки на сервер (через кнопку «Сохранить»)
  3. Проектировщик в какой-то момент времени нажимает на кнопку «Связывание параметров»
  4. Программа выполняет все инструкции, заложенные BIM-менеджером.