Методология формирования привязок
Методология формирования привязок
Привязки следует по возможности начинать делать для самых внешних позиций (на рисунке ниже от 1 к 4), т. к. дочерние позиции учитывают привязки родительских позиций. Это позволяет «отсечь» лишние неподходящие объекты как можно раньше в процессе анализа.
Привязки, по которым позиции могут находить подходящие для них объекты, можно разделить на два вида:
Быстрые привязки – это тип привязки, при котором расчет элемента справочника выполняется намного быстрее, чем у других типов привязок. Также такая привязка работает на общее ускорение расчета.
- Чем больше быстрых привязок, тем быстрее будет расчет.
- Чем больше быстрых привязок в родительских позициях, тем быстрее будет расчет их дочерних позиций.
- Быстрая привязка обозначается значком молнии справа от позиции в дереве справочника, а также справа от себя самой.
- К быстрым привязкам относят самые простые виды условий: "Имя равно" и "со значением, равным".
При других условиях привязка не будет считаться быстрой. Например, если у привязки установлено условие "со значением, содержащим", то такая привязка уже считается сложной:
Сложные привязки – к этому типу относятся все остальные типы привязок. Они могут быть более вариативными, но замедляют расчет. У таких привязок значка молнии нет.
Создание привязок
Создавать привязки можно в окне Справочники и в окне Модель. В окне Модель привязки можно сразу протестировать.
Работа с привязками в окне Модель
Чтобы перейти к работе с привязками, необходимо нажать на модель в главной рабочей области и открыть её с помощью кнопки "Открыть входящие данные" или двойным нажатием левой кнопки мыши.
Откроется окно с моделью, справа от модели будет панель со свойствами. При нажатии на значок с фигурными скобками в правой части этого окна откроется панель тестирования привязок:
Блоки условий и блоки значений
Все привязки состоят из блоков условий и блоков значений.
Блоки условий - это блоки с различными условиями поиска. Фиолетовые блоки условий отвечают за поиск названия свойства, а голубые за поиск значения свойства.
Фиолетовые блоки условий:
- Название равно - ищет свойство с названием, строго равным ведённым в этот блок данным
- Название содержит - ищет свойство с названием, которое содержит введённые в этот блок данные
- Название начинается с - ищет свойство с названием, которое начинается с введенных в этот блок данных
- Название заканчивается на- ищет свойство с названием, которое заканчивается на введенные в этот блок данные
- Все свойства - строгое выполнение привязок. Привязка будет пройдена, если все дочерние привязки будут пройдены
- Любое свойство - нестрогое выполнение привязок. Привязка будет пройдена, если хотя бы одна дочерняя привязка будет пройдена
Голубые блоки условий:
- Со значением, равным - результат поиска будет положительным , если значение искомого свойства элемента строго равно введенному значению
- Со значением больше - результат поиска будет положительным, если значение искомого свойства элемента строго больше указанного значения
- Со значением меньше - результат поиска будет положительным, если значение искомого свойства элемента строго меньше указанного значения
- Со значением, содержащим - результат поиска будет положительным, если введенное значение входит в искомое. Например, если ввести в блок со значением, содержащим буквы "тон", то привязка найдёт все вхождения этих букв в свойствах по типу "бетон"
- Со значением, заканчивающимся на - результат поиска будет положительным, если конец введенного значения входит в искомое
- Со значением начинающимся на - результат поиска будет положительным , если начало введенного значения входит в искомое
- Со значением в диапазоне - результат поиска будет положительным, если введенный диапазон входит в искомый. **** Поиск включает значения диапазона. Для создания привязки требуется два значения - начальное и конечное. Сначала перетаскивается блок "со значением в диапазоне", ниже будет поле для ввода значений. Чтобы создать диапазон, необходимо перетащить пустой блок для ввода второго значения(голубой блок значений).
Фиолетовые и голубые блоки значений - это блоки с квадратным скобками, которые можно добавлять в привязку для указания значения или нескольких значений.
Примечание: блоки условий работают с частицей НЕ. Чтобы она стала активной, необходимо нажать на неё прямо в строке с блоком условий .
Частица НЕ делает поиск менее строгим. Например, если требуется найти значения 100 и меньше, то можно составить привязку "со значением НЕ больше" 100, тогда это значение будет включено в поиск.
Пример:
Способы создания привязок
Привязки нужны для автоматического поиска элементов и их свойств у любых новых моделей, которые появляются на платформе. Привязки применяются в справочниках и назначаются на позиции справочника.
Подробнее о справочниках - общей справке, в value и в control.
Чтобы отсечь ненужные объекты в самом начале работы, делаются привязки для родительских элементов. Например, в привязку для позиции Конструкции будут входить объекты категорий Стены и Перекрытия.
Если нужно найти все объекты, имеющие определенное свойство, то делается привязка вида:
Привязка ищет все объекты, в которых есть свойство Category.
Чтобы создать пустую привязку и полностью заполнить её самостоятельно, необходимо перетащить блоки условий и блоки значений в поле "Привязки", далее заполнить все поля нужными данными. Этот способ работает в окне Модель и окне Справочники.
Чтобы создать привязку в окне Модель, нужно открыть модель и меню тестирования привязок. Перетащить из окна свойств нужные элементы в поле с привязками. Они будут иметь названия и значения тех элементов, которые взяты из окна свойств.
Удалить привязку можно нажатием на значок мусорной корзины рядом с привязкой. Можно удалить часть привязки, можно всю, если нажать на удаление корневого блока.
Оба способа добавления привязок показаны ниже:
Тестирование привязки
Для тестирования нужно выделить во вьювере объект или несколько объектов. Нажать кнопку Тестировать выделенное. После тестирования редактор переключится в режим тестов, модель станет белая, а протестированные объекты будут определённого цвета.
- Красный - тест отрицательный (не пройден).
- Зеленый – тест положительный (пройден).
Если требуется найти свойство с одним из определенных значений, выбирается блок Со значением равным Стены и Перекрытия. В этом случае тестирование привязки будет давать положительный результат для всех элементов со значением параметра Category равным "Стены" ИЛИ "Перекрытия"
Также можно заполнять блоки, копируя их из раздела Свойства. При клике левой кнопки мыши с нажатой клавишей Alt на имя свойства, оно копируется в буфер обмена. При клике на значение свойства, оно также копируется в буфер обмена.
Работа с привязками в окне Справочники
Чтобы перейти к работе с привязками в окне справочники, необходимо зайти в редактор справочников и выбрать подходящий для работы справочник. В окне справа будет несколько вкладок, одна из которых называется "Привязка на элементы". Привязки добавляются с помощью перетаскивания блоков условий и блоков значений.
Копирование привязок
В Tangl есть возможность копировать и вставлять привязки при работе с разными окнами. Например, сделать привязку в окне Модель, скопировать её и вставить в окне Справочники во вкладке "Привязка на элементы".
Копирование привязки в окне Модель:
Вставка этой же привязки в окне Справочники:
Объем позиции: создание переменных для формул через привязки в Tangl value
В окне Справочники есть вкладка работы с формулами и структурой привязок, она называется "Объем позиций". В ней есть возможность прописать переменную, по которой рассчитывается формула, саму формулу и описание формулы. Также можно использовать переменную и формулу в структуре привязки:
Создание контрольных точек через привязки в Tangl control
В Tangl control через привязки создаются контрольные точки, выглядят они так же, как переменные в Tangl value, также могут использоваться в формулах, но нужны уже не для расчетов, а для того, чтобы в отчете показать проходит ли проверку правило, указанное в этой контрольной точке. Чтобы составить привязку для контрольной точки, необходимо открыть Tangl control, войти в меню "редактор справочников отбора" на панели инструментов:
Затем выбрать нужный справочник и перейти в боковое меню, там будет вкладка "Контрольные точки", на которой можно создавать привязки по той же механике, что и в Tangl value, дополнительно добавив описание, теги и название переменной:
Режимы работы привязок
Кроме того, что привязки могут быть быстрыми или нет, они могут работать в разных режимах поиска. Режим поиска можно устанавливать вручную.
Неглубокий поиск (по умолчанию включен) – поиск идет не по всему диапазону свойств, а только до первого найденного свойства и проверяется его значение. Если значение не проходит тест, то вся привязка считается отрицательной.
Глубокий поиск (значок с лупой) – поиск идет по всему диапазону свойств, чтобы отследить каждый случай упоминания в нем того или иного свойства и/или его значения. Даже если первое свойство не содержит нужного значения, то поиск продолжается дальше.
Если в элементе есть несколько свойств с одинаковыми подходящими именами (например, несколько материалов), но их значения разные, то будет найдено только свойство с подходящим значением.
Если в процессе поиска будет найдено несколько свойств, подходящих под выборку, то привязка также будет положительной и при этом запомнит список тех свойств, которые она отобрала для того, чтобы этот набор можно было использовать в зависимых привязках.
Независимость от регистра – этот режим позволяет анализировать имена свойств и их значения без учета регистра букв (прописная или заглавная).
Например: пишется нужное значение с маленькой буквы, режим независимости от регистра выключен. Тесты показывают, что нужного параметра в модели нет.
При включении этого режима результаты теста будут другие.
Считать корневым уровнем – этот режим позволяет назначить привязку корневым уровнем.
Искать в данных на корневом уровне – при выборе этого режима поиск значений будет происходить в выбранном корневом уровне. Если нужны данные предыдущего уровня вложенности, используется эта функция.
Сложные привязки
Простые привязки не могут справиться со всеми задачами. Для этого необходимо создавать более сложные привязки.
Задача: найти стены, у которых длина будет не менее 7000 мм и площадь не более 80 м2.
Для решения задачи открыть окно тестирования привязок, создать привязку, чтобы находить стены:
Перенести блок "Название равно" чуть ниже первой привязки. Появится такая структура:
В ней заполнить значения и переключить блок "со значением больше" на отрицание. Для этого нажать на частицу "НЕ", чтобы она подсветилась и стала активной.
Заменить блок Любое свойство на блок Все свойства, знак ИЛИ в привязке изменятся на И:
По такому же принципу создать третий блок, в котором будет Длина, со значением не меньше 7000. Готовая привязка выглядит так:
Модель после тестирования привязки: