Как работают привязки
Как работают привязки
Tangl использует мощную систему тестов для анализа BIM данных – привязки. Привязка – набор тестов, которые тестируют свойства элемента BIM модели. В программе Tangl реализована возможность разного сочетания привязок со свойствами элементов.
Поиск по всему диапазону свойств
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/k36jX78NSN7D3YH906JH_QDQ.png)
Привязка ищет свойство "Category". Привязка пройдет по всем уровням и будет искать это свойство. Если такое свойство была найдено, привязка будет считаться пройденной. Если свойство не было найдено, привязка не будет пройдена.
Поиск свойства со значением
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/y_WO7hY9N3JJzwc-ivAeWbF1.png)
Привязка ищет свойство "Category" со значением "Тип защитного слоя". Привязка пройдёт по всем уровням и будет искать это свойство со значением. Привязка отбросит первое свойство, потому что значение не подходит под заданное, и будет искать дальше. Привязка будет пройдена.
Поиск до первого значения
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/i3ui2tC6VDQuaFw1Pb9dyP0P.png)
В режиме Неглубокий поиск привязка будет проверять только первое значение, подходящее под искомое свойство. Если первое найденное свойство будет с неподходящим значением, привязка будет считаться не пройденной. Оставшиеся свойства проверяться не будут, даже если есть подходящие под условия привязки.
Если первое свойство будет с подходящим значением, то привязка будет считаться пройденной.
Тестирование привязки с НЕ в блоке условия в режиме глубокого поиска. Элемент успешно отбирается, если все значения/свойства соответствуют привязке.
Тестирование привязки БЕЗ НЕ в блоке условия в режиме глубокого поиска. Элемент успешно отбирается, если хотя бы одно значение/свойство соответствуют привязке.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/Em5VBELDFPhH7Jb8cvYHv0O3.png)
Если ищется группа свойств с группой значений, то привязка будет искать первое подходящие свойство, которое есть в группе и сравнивать все значения. Если не будет найдено свойство с нужным значением, то элемент будет считаться непройденным.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/N0S5VdvIhCGF2gNKNSSxTOQ0.png)
Вложенные привязки
У каждого элемента свойства могут повторяться в разных уровнях вложенности. Если необходимо найти элемент в конкретном уровне, то нужно сделать несколько вложенных привязок. Иначе одна привязка может дать все подходящие свойства из всего диапазона, а это может оказаться неправильным в конкретной ситуации.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/gXznig7K8UxGLoItlFBZLoSr.png)
Привязка будет пройдена.
Для поиска конкретного свойства в нужном уровне вложенности делаются вложенные привязки.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/0m7eDdj4RbRpjgNWmJG6sn_z.png)
Привязка будет проверять элемент, проходя все уровни для поиска нужно свойства. Привязка будет считаться пройденной.
Привязка ищет свойства, начиная с первого уровня вложенности (корневой уровень). Если в привязке задан поиск в конкретном уровне (не в корневом), то поиск последующих свойств тоже будет происходить в этом уровне.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/VsYQpCXRhIaT14vE-nKsXuG6.png)
Указатели на корневой уровень
Для того чтобы искать в уровнях, которые были пройдены в процессе привязки, нужно назначить сам корневой уровень и отметить в привязке, что поиск свойств должен происходить в корневом уровне.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/PItVTdn_Y7PD52aPrm9DPZd0.png)
По умолчанию корневым уровнем является самый первый уровень вложенности, и если не указывать корневой уровень, то поиск начнётся сначала свойств элемента.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/OoP6I8MdpHCXcJcSh9Wp8CsU.png)
И/ИЛИ
Для поиска элемента с нужным количеством свойств используются привязки, связанные между собой логическими операторами И/ИЛИ.
Оператор ИЛИ используется для нестрогого выполнения привязок. Привязка будет пройдена, если хотя бы одна дочерняя привязка будет пройдена.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/2dq_lRNTlu6vBm6r5Oh2KqRi.png)
Оператор И используется для строгого выполнения всех привязок. Привязка будет искать элемент, подходящий под все указанные условия. Привязка будет пройдена, если все дочерние привязки будут пройдены.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/uAJvtdnHUVfmsZqg8cSFvqpa.png)
Если свойства элемента будут подходить под условия привязки, то привязка будет считаться пройденной.
![](https://static.slab.com/prod/uploads/4ojndffx/posts/images/JUxLo6JFXEtTNmphGAD-IJ6k.png)