Существует ли параметр

Главная Форумы Задать вопрос Существует ли параметр

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #6433 Score: 0
    txt
    Модератор
    86 pts

    Как определить существует ли определенный параметр (по названию) в определенном элементе или нет?
    То есть проверяем у списка разных элементов существование параметра, а на выходе будет , например, true/false
    Или лучше перехватывать ошибку (когда параметр не существует) через try/except ?

    #6434 Score: 0
    Legantmar
    Хранитель
    473 pts

    если просто узнать, то можно воспользоваться нодом Parameters или посмотреть с помощью плагина RevitLookup
    если в питон скрипте, то скорее всего через try / except

    #6435 Score: 0
    txt
    Модератор
    86 pts

    ок, а как в except прописать условие , чтобы при возникновении ошибки питон просто игнорировал ее и выполнял цикл дальше?
    Пример , я делаю так:
    list=[стол, ракета, книга] - у "ракеты" есть параметр "скорость", у стола и книги нет.
    my_list=[]
    list_errors=[]
    for i i in list:

      try:
        my_list.append(i)
        except:
          list_errors.append(i)

        OUT=my_list

        #6436 Score: 0
        txt
        Модератор
        86 pts

        + Еще вопрос как записать цикл выше в однострочник (генератор) ?

        #6437 Score: 1
        Legantmar
        Хранитель
        473 pts

        try:
        твой код
        except: pass
        далее твой код..
        все это можно включать в цикл for
        (однострочником никак, да и зачем так усложнять?)

        #6438 Score: 0
        txt
        Модератор
        86 pts

        except: pass – означает пропуск ошибки
        Спасибо

        #6447 Score: 0
        @zhukoven.com
        Участник
        16 pts

        @txt, в пакете Clockwork есть нод под названием “Element.ParameterExists”. У него 2 входа: имя параметра (string) и элемент(ы). На выходе – true или false.

        #6448 Score: 0
        txt
        Модератор
        86 pts

        @zhukoven.com ,
        Спасибо за наводку)
        в моем случае необходимо было проверить условие существования параметра внутри питона .
        Как вариант, если указанный вами нод редактируемый, то можно конечно посмотреть каким образом он написан изнутри (вероятно в питоне)

        #6451 Score: 2
        @zhukoven.com
        Участник
        16 pts

        @txt, можете посмотреть исходники без установки пакета:

        https://github.com/andydandy74/ClockworkForDynamo/blob/master/nodes/1.x/Element.ParameterExists.dyf

      Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
      • Для ответа в этой теме необходимо авторизоваться.