Фильтры (filters)¶
Для каждой группы/подгруппы может быть указан фильтр, который будет отбирать в эту группу объекты ЦИМ по заданным условиям.
Важно
Важен порядок применения фильтров. Правила, указанные в JSON, выполняются последовательно, начиная с верхней строки. Уже сгруппированные объекты ЦИМ исключаются из модели данных для последующих групп/подгрупп.
Фильтры могут быть заданы:
По значению
С помощью логических условий для объединения фильтров в логический оператор
По значению (by value)¶
Задаются с помощью следующих атрибутов:
valueName— имя атрибута, по которому будут отбираться объекты;instruction— условный оператор, сравнивающий значение атрибута;value— значение атрибута.
ObjectType соответствует значению Window.¶1"filter": {
2 "valueName": "ObjectType",
3 "instruction": "exact",
4 "value": "Window"
5}
Важно
Поскольку BIM Classifier обращается к ЦИМ через API Renga, наименование некоторых атрибутов (и их значения) отличаются от локализованных в пользовательском интерфейсе. Для определения правильного наименования valueName нужного атрибута воспользуйтесь командой «Информация об объекте» на панели действий.
Условные операторы (instructions)¶
Следующие условные операторы можно применять в фильтрах:
instruction |
Условие |
|---|---|
contains |
содержит |
partOf |
является частью (строки) |
exact |
совпадает |
greater |
больше |
less |
меньше |
Логические условия в фильтрах¶
Более сложные фильтры можно создавать с помощью следующих логических условий:
All — Возвращает
trueесли все указанные условия верны. Принимает массив фильтров.Фильтр, отбирающий объекты, у которых соответствуют условиям обоих указанных фильтров.¶1"filter": { 2 "all": [ 3 { // Фильтр 1 4 "valueName": "ObjectType", 5 "instruction": "exact", 6 "value": "Equipment" 7 }, 8 { // Фильтр 2 9 "valueName": "parameter/Категория", 10 "instruction": "exact", 11 "value": "Спускной кран" 12 } 13 ] 14}
Not — Условие, обратное условию
all. Возвращаетtrueесли указанное условие не верно. Принимает один фильтр.Фильтр, отбирающий объекты, которые не соответствуют указанному условию.¶1"filter": { 2 "not": { 3 "valueName": "ObjectType", 4 "instruction": "exact", 5 "value": "Rebar" 6 } 7}
Any — Возвращает
trueесли какое-либо из указанных условий верно. Принимает массив фильтров.Фильтр, отбирающий объекты, которые соответствуют условиям любому из указанных фильтров.¶1"filter": { 2 "any": [ 3 { // Фильтр 1 4 "valueName": "Многослойный материал/Name", 5 "instruction": "contains", 6 "value": "Стена" 7 }, 8 { // Фильтр 2 9 "valueName": "Многослойный материал/Name", 10 "instruction": "contains", 11 "value": "Перегородка" 12 } 13 ] 14}