Поиск нужных параметров в Dynamo
- В этой теме 8 ответов, 4 участника, последнее обновление 6 лет, 5 месяцев назад сделано артём.
-
АвторСообщения
-
K.NikolayУчастник
Подскажите, как решить вопрос с поиском и переносом необходимых параметров.
Пришло здание от проектировщиков здание в формате IFC, причем, конструкции разбиты на части по уровням, например, отдельными файлами стены на уровнях -3,0м; +0,0м; +3,0м и т.д. И таким образом пришли все элементы.
При объединении файлов в Revit пришедшие параметры дублируются, например, вставляю 1-й файл “стены этажа -3,0м” параметры приходят нормально (без дублирования). Вставляю 2-й файл “стены этажа 0,0м” параметры стен дублируются. Вставляю 3-й файл “стены этажа 3,0м” параметр дублируется еще раз. Т.е. в едином файле Revit параметр “ifcName” встречается три раза, по количеству вставленных файлов со стенами. То же самое дублирование параметров элементов при вставке других конструкций.
Необходимо через Dynamo найти значение параметра, например, “ifcName” и вставить в мой параметр “Имя_элемента”. Проблема задачи заключается в том, что для стен 1-го этажа это значение параметра нормально приходит, а для последующих этажей значение приходит “0”, т.е. он находит первый параметр “ifcName”, а в нем пустое значение, и вставляет “0” в мой параметр.
Подскажите, как можно сделать перебор параметров по имени, найти поле где заполнено значение этого параметра и вставить значение параметра в мое поле???
Если я правильно поняла, вы хотите отсортировать элементы с заполненным значением, и это значение перекинуть в другой параметр? Если так, то, по-моему, это вот так будет работать:
K.NikolayУчастникСпасибо. Но не совсем работает как мне надо. Действительно, скрипт перекидывает значение из параметра в параметр, но в моем случае он определяет, что в первом параметре “IfcName” пустое значение, то и вставляет в мой параметр “A06_Family_Name” пустое значение.
Ссылка на файл: https://yadi.sk/d/DJYNJ7yM3U5rrs
Немного переработанный скрипт: https://yadi.sk/d/X6fMHgkU3U5s23
По возможности, я бы хотел видеть, но пока не получается, некий перебор параметров с одним именем и если в в параметре есть значение, то значение должно быть вставлено в мой параметр.
Спасибо за помощь!
K.NikolayУчастники скрин скрипта:
По-моему пришло время подключать Питон.
Очевидно, методы Динамо видят первый попавшийся параметр из списка параметров с одним и тем же именем.
Методы АПИ позволяют получать списки одноименных параметров:
нужно использовать метод:
parameters = element.GetParameters(name)
далее обычным циклом выбрать заполненный параметрfor param in parameters:
if param:
outparam = paramК сожалению, нужен питон!
K.NikolayУчастникУвы, я в питоне совсем никакой. Не могли бы написать более подробно, при наличии времени? Спасибо большое!!!
https://pastebin.com/14PrLGh5
Лично у меня работает. Возможно, под специфические параметры не будет работать.
Подразумевается, что все параметры текстовые.заполнить
парамИФЦ = [“IfcName”,”IfcDescription”,”IfcMaterial”]
парамРВТ = [“Имя1”, “Имя2”, “Имя3”]K.NikolayУчастникСпасибо! попробую
артёмУчастникПодскажите, а каким образом можно перенести комментарий из стены, вдоль которой располагается стенка отделки? Хочу сделать это с той целью, что часто в зависимости материала стены меняется материал отделки. Тогда можно было бы обойтись параметром в стене и значение из него перенести в стенку отделки. спасибо!
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.