Сохранения структуры подсписков и нулевых значений

Главная Форумы Задать вопрос Сохранения структуры подсписков и нулевых значений

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

    Добрый день,

    Есть подсписки , параметр “Q_Wall_Lenght” существует только у элемента  Room.

    Пытаюсь сохранить структуру подсписков на выходе – для этого необходимо чтобы у элементов, не имеющих указанного параметра создавались пустые строки (списки):

     

     

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

    Можно сделать нодами через Get.ParameterValueby name но хотелось бы питоном…

    В строке Q=(i[0])… вместо [0] необходимо чтобы параметр считывался не только с первого элемента списка, а пробегался по всем элементам подсписков…

    наверное, здесь как то в цикле надо прописать обработку события когда параметр не существует у элемента, то: добавить условие … через try, except (обработка ошибки) не получается

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

    Может быть, так как у строковых элементов в принципе не существует параметров ,то и описанную выше задачу невозможно решить….

    тогда если убрать строковые элементы в подлистах , пробую извлечь параметры нестроковых элементов с сохранением структуры подсписков, но не получается:

    #5593 Score: 1
    Legantmar
    Хранитель
    474 pts

    Попробуй вот так (и почитай про try except)

    import clr
    clr.AddReference('ProtoGeometry')
    from Autodesk.DesignScript.Geometry import *
    inn = IN[0]
    list = []
    for i in inn:
    	sublist = []
    	for k in i:
    		try:
    			sublist.append(k.GetParameterValueByName("Номер"))
    		except:
    			sublist.append(Null)
    	list.append(sublist)
    OUT = list
    #5594 Score: 0
    txt
    Модератор
    86 pts

    Да, без строковых элементов в списках – работает!

    Спасибо за помощь )

    #5595 Score: 0
    Legantmar
    Хранитель
    474 pts

    с любыми будет работать ))

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

    Когда добавляю строки , не выходит:

    Без строк , все ок:

    Мне кажется все дело в выводимом значении “ноль” для строки  (для него может тоже надо добавить условие обработки ошибки): (либо сообщение об ошибки над нодом как раз и указывает что для строки ничего подобного сделать не получится)

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

    вот получилось: вместо “Null” записать “ноль” (тогда результат как в ноде GetParamValueByname – что и требовалось):

    ….

    except:
    sublist.append(“ноль”)

     

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