Здравствуйте! Пишу скрипт в dynamo. Требуется отфильтровать элементы ревита (арматура воздуховодов) по двум условиям (параметрам).
Но никак не получается получить результат. Эти два параметра относятся к типу и экземпляру. Для одного параметра все легко фильтруется. Но для двух я не могу найти решение. Кто-нибудь с этим работал?
Название темы было изменено @alina.balkanskaia для улучшения навигации на форуме. Оригинальное название: Dynamo. Фильтрация по двум условиям.
Решено! Перейти к решению.
Решено: SergeyShvydko. Перейти к решению.
Решено: architect.bim. Перейти к решению.
Добрый день!
Здесь нужна следующая логика. Берете исходные элементы. Получаете значения параметра экземпляра. Сравниваете с эталоном. Получаете первую маску фильтрации. Далее аналогично с параметром типа. После этого объединяете две маски в одну, используя оператор and (в кодблоке нужно написать &&). В итоге у вас маска, удовлетворяющая обоим условиям. Теперь ее можно использовать для фильтрации элементов.
Вот пример:
Здравствуйте!
Можно воспользоваться следующим условием в ноде Code Block.
Данное условие можно изменить и использоваться не только для двух значений, но и более. Вместо значения true (в условии) можно подставлять и другие значения (см. пример ниже)
Пример всего скрипта
Спасибо! В Code Block можно несколько && прописать? Что-то типа: a==true b==true c==true? true: false;
да, все верно.
a==true && b==true && c==true? true: false;
Ну на самом деле писать =true и далее ?true:false не обязательно. В данном случае просто несколько && будут работать точно также:
Согласен с тобой
Конкретно в этом примере ?true:false не обязательно. Спасибо за дополнение!
Выше писал, что вместо true и false можно указать значения (в примере выше это указал). Сравнения добавить в условное выражение.
@sayapin Добрый день! Рада видеть вас в Сообществе Autodesk Community! 😀
Спасибо, что отметили ответы @SergeyShvydko и @architect.bim, которые вам помогли!
Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.