Методология формирования привязок
Методология формирования привязок
Привязки следует по возможности начинать делать для самых внешних позиций (на рисунке ниже от 1 к 4), т. к. дочерние позиции учитывают привязки родительских позиций. Это позволяет «отсечь» лишние неподходящие объекты как можно раньше в процессе анализа.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/TEeCjR7kN5JTeiz5zfUjYhFM.png)
Привязки, по которым позиции могут находить подходящие для них объекты, можно разделить на два вида:
Быстрые привязки – это тип привязки, при котором расчет элемента справочника выполняется намного быстрее, чем у других типов привязок. Также такая привязка работает на общее ускорение расчета.
- Чем больше быстрых привязок, тем быстрее будет расчет.
- Чем больше быстрых привязок в родительских позициях, тем быстрее будет расчет их дочерних позиций.
- Быстрая привязка обозначается значком молнии справа от позиции в дереве справочника, а также справа от себя самой.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/eFesK7HXmxdKSbDHaI-jsGQA.png)
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/u94KRy2mJrohVqL8KXrHe7H9.png)
- К быстрым привязкам относят самые простые виды условий: "Имя равно" и "со значением, равным".
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/fgu45949h3o1ss89Rm1RGBkf.png)
При других условиях привязка не будет считаться быстрой. Например, если у привязки установлено условие "со значением, содержащим", то такая привязка уже считается сложной:
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/SGgb-XEF47fjrD3SnUswZs3_.png)
Сложные привязки – к этому типу относятся все остальные типы привязок. Они могут быть более вариативными, но замедляют расчет. У таких привязок значка молнии нет.
Создание привязок
Создавать привязки можно в окне Справочники и в окне Модель. В окне Модель привязки можно сразу протестировать.
Работа с привязками в окне Модель
Чтобы перейти к работе с привязками, необходимо нажать на модель в главной рабочей области и открыть её с помощью кнопки "Открыть входящие данные" или двойным нажатием левой кнопки мыши.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/w19Z3fo38FB4h_luimUuoO95.png)
Откроется окно с моделью, справа от модели будет панель со свойствами. При нажатии на значок с фигурными скобками в правой части этого окна откроется панель тестирования привязок:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/cKh5kjZnLremnwyQBCkbPdnH.gif)
Блоки условий и блоки значений
Все привязки состоят из блоков условий и блоков значений.
Блоки условий - это блоки с различными условиями поиска. Фиолетовые блоки условий отвечают за поиск названия свойства, а голубые за поиск значения свойства.
Фиолетовые блоки условий:
- Название равно - ищет свойство с названием, строго равным ведённым в этот блок данным
- Название содержит - ищет свойство с названием, которое содержит введённые в этот блок данные
- Название начинается с - ищет свойство с названием, которое начинается с введенных в этот блок данных
- Название заканчивается на- ищет свойство с названием, которое заканчивается на введенные в этот блок данные
- Все свойства - строгое выполнение привязок. Привязка будет пройдена, если все дочерние привязки будут пройдены
- Любое свойство - нестрогое выполнение привязок. Привязка будет пройдена, если хотя бы одна дочерняя привязка будет пройдена
Голубые блоки условий:
- Со значением, равным - результат поиска будет положительным , если значение искомого свойства элемента строго равно введенному значению
- Со значением больше - результат поиска будет положительным, если значение искомого свойства элемента строго больше указанного значения
- Со значением меньше - результат поиска будет положительным, если значение искомого свойства элемента строго меньше указанного значения
- Со значением, содержащим - результат поиска будет положительным, если введенное значение входит в искомое. Например, если ввести в блок со значением, содержащим буквы "тон", то привязка найдёт все вхождения этих букв в свойствах по типу "бетон"
- Со значением, заканчивающимся на - результат поиска будет положительным, если конец введенного значения входит в искомое
- Со значением начинающимся на - результат поиска будет положительным , если начало введенного значения входит в искомое
- Со значением в диапазоне - результат поиска будет положительным, если введенный диапазон входит в искомый. **** Поиск включает значения диапазона. Для создания привязки требуется два значения - начальное и конечное. Сначала перетаскивается блок "со значением в диапазоне", ниже будет поле для ввода значений. Чтобы создать диапазон, необходимо перетащить пустой блок для ввода второго значения(голубой блок значений).
Фиолетовые и голубые блоки значений - это блоки с квадратным скобками, которые можно добавлять в привязку для указания значения или нескольких значений.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/Dai_LFCdNfxfm66z9wVRLo-p.png)
Примечание: блоки условий работают с частицей НЕ. Чтобы она стала активной, необходимо нажать на неё прямо в строке с блоком условий .
Частица НЕ делает поиск менее строгим. Например, если требуется найти значения 100 и меньше, то можно составить привязку "со значением НЕ больше" 100, тогда это значение будет включено в поиск.
Пример:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/57Gbbd_KhScrciEO4_KSVInm.png)
Способы создания привязок
Привязки нужны для автоматического поиска элементов и их свойств у любых новых моделей, которые появляются на платформе. Привязки применяются в справочниках и назначаются на позиции справочника.
Подробнее о справочниках - общей справке, в value и в control.
Чтобы отсечь ненужные объекты в самом начале работы, делаются привязки для родительских элементов. Например, в привязку для позиции Конструкции будут входить объекты категорий Стены и Перекрытия.
Если нужно найти все объекты, имеющие определенное свойство, то делается привязка вида:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/HyscVqh66tgABtwxaU8tidht.png)
Привязка ищет все объекты, в которых есть свойство Category.
Чтобы создать пустую привязку и полностью заполнить её самостоятельно, необходимо перетащить блоки условий и блоки значений в поле "Привязки", далее заполнить все поля нужными данными. Этот способ работает в окне Модель и окне Справочники.
Чтобы создать привязку в окне Модель, нужно открыть модель и меню тестирования привязок. Перетащить из окна свойств нужные элементы в поле с привязками. Они будут иметь названия и значения тех элементов, которые взяты из окна свойств.
Удалить привязку можно нажатием на значок мусорной корзины рядом с привязкой. Можно удалить часть привязки, можно всю, если нажать на удаление корневого блока.
Оба способа добавления привязок показаны ниже:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/8gXFkdORJ1n9kEkKIW204tl-.gif)
Тестирование привязки
Для тестирования нужно выделить во вьювере объект или несколько объектов. Нажать кнопку Тестировать выделенное. После тестирования редактор переключится в режим тестов, модель станет белая, а протестированные объекты будут определённого цвета.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/2dQvcQDeedAAoZkFGgz8Aap3.png)
- Красный - тест отрицательный (не пройден).
- Зеленый – тест положительный (пройден).
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/q1pebhwbpoxPbT3T9BPWI6y4.png)
Если требуется найти свойство с одним из определенных значений, выбирается блок Со значением равным Стены и Перекрытия. В этом случае тестирование привязки будет давать положительный результат для всех элементов со значением параметра Category равным "Стены" ИЛИ "Перекрытия"
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/hXpuvAGSdT_njxet9Rl3jWFf.png)
Также можно заполнять блоки, копируя их из раздела Свойства. При клике левой кнопки мыши с нажатой клавишей Alt на имя свойства, оно копируется в буфер обмена. При клике на значение свойства, оно также копируется в буфер обмена.
Работа с привязками в окне Справочники
Чтобы перейти к работе с привязками в окне справочники, необходимо зайти в редактор справочников и выбрать подходящий для работы справочник. В окне справа будет несколько вкладок, одна из которых называется "Привязка на элементы". Привязки добавляются с помощью перетаскивания блоков условий и блоков значений.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/eVL4hiPwf3IrB0AJVVHFCzRH.gif)
Копирование привязок
В Tangl есть возможность копировать и вставлять привязки при работе с разными окнами. Например, сделать привязку в окне Модель, скопировать её и вставить в окне Справочники во вкладке "Привязка на элементы".
Копирование привязки в окне Модель:
![Копирование привязки в окне Модель](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/7R9w2InwqPs09zBsX4md56rH.png)
Вставка этой же привязки в окне Справочники:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/wVALglEI5ArrHa2F9HyJJRkr.png)
Объем позиции: создание переменных для формул через привязки в Tangl value
В окне Справочники есть вкладка работы с формулами и структурой привязок, она называется "Объем позиций". В ней есть возможность прописать переменную, по которой рассчитывается формула, саму формулу и описание формулы. Также можно использовать переменную и формулу в структуре привязки:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/_NEVqRKYuzSI0e9xpH-sKtUs.png)
Создание контрольных точек через привязки в Tangl control
В Tangl control через привязки создаются контрольные точки, выглядят они так же, как переменные в Tangl value, также могут использоваться в формулах, но нужны уже не для расчетов, а для того, чтобы в отчете показать проходит ли проверку правило, указанное в этой контрольной точке. Чтобы составить привязку для контрольной точки, необходимо открыть Tangl control, войти в меню "редактор справочников отбора" на панели инструментов:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/61NQG5HfvNspGX7rgaz_hDzF.png)
Затем выбрать нужный справочник и перейти в боковое меню, там будет вкладка "Контрольные точки", на которой можно создавать привязки по той же механике, что и в Tangl value, дополнительно добавив описание, теги и название переменной:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/VhkABxkZU6zeduqga1UQ0yca.png)
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/-mCHSI0OfQr-otVNd6Y9h4l2.gif)
Режимы работы привязок
Кроме того, что привязки могут быть быстрыми или нет, они могут работать в разных режимах поиска. Режим поиска можно устанавливать вручную.
Неглубокий поиск (по умолчанию включен) – поиск идет не по всему диапазону свойств, а только до первого найденного свойства и проверяется его значение. Если значение не проходит тест, то вся привязка считается отрицательной.
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/ueHIljxjsQ45juA5ZT7SKbCH.gif)
Глубокий поиск (значок с лупой) – поиск идет по всему диапазону свойств, чтобы отследить каждый случай упоминания в нем того или иного свойства и/или его значения. Даже если первое свойство не содержит нужного значения, то поиск продолжается дальше.
Если в элементе есть несколько свойств с одинаковыми подходящими именами (например, несколько материалов), но их значения разные, то будет найдено только свойство с подходящим значением.
Если в процессе поиска будет найдено несколько свойств, подходящих под выборку, то привязка также будет положительной и при этом запомнит список тех свойств, которые она отобрала для того, чтобы этот набор можно было использовать в зависимых привязках.
Независимость от регистра – этот режим позволяет анализировать имена свойств и их значения без учета регистра букв (прописная или заглавная).
Например: пишется нужное значение с маленькой буквы, режим независимости от регистра выключен. Тесты показывают, что нужного параметра в модели нет.
При включении этого режима результаты теста будут другие.
Считать корневым уровнем – этот режим позволяет назначить привязку корневым уровнем.
Искать в данных на корневом уровне – при выборе этого режима поиск значений будет происходить в выбранном корневом уровне. Если нужны данные предыдущего уровня вложенности, используется эта функция.
Сложные привязки
Простые привязки не могут справиться со всеми задачами. Для этого необходимо создавать более сложные привязки.
Задача: найти стены, у которых длина будет не менее 7000 мм и площадь не более 80 м2.
Для решения задачи открыть окно тестирования привязок, создать привязку, чтобы находить стены:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/70PZUTUgGj_rZpCDCr33XIHv.png)
Перенести блок "Название равно" чуть ниже первой привязки. Появится такая структура:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/mvlOIfO2a7yt-Tb1SKt_fqzq.png)
В ней заполнить значения и переключить блок "со значением больше" на отрицание. Для этого нажать на частицу "НЕ", чтобы она подсветилась и стала активной.
Заменить блок Любое свойство на блок Все свойства, знак ИЛИ в привязке изменятся на И:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/YsemfXpAZQ3E8j4diQOVoNah.png)
По такому же принципу создать третий блок, в котором будет Длина, со значением не меньше 7000. Готовая привязка выглядит так:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/XhqufvPD4wIG8AlXi5p5Liay.gif)
Модель после тестирования привязки:
![](https://slabstatic.com/prod/uploads/4ojndffx/posts/images/PlOy67kOkdtxnjv0ktf0jj5x.png)