Dynamo – Русский – только для чтения
Раздел для программистов и специалистов, использующих Dynamo
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Dynamo. Python Script. TypeError: unsupported operand type

3 REPLIES 3
SOLVED
Reply
Message 1 of 4
Anonymous
1170 Views, 3 Replies

Dynamo. Python Script. TypeError: unsupported operand type

Здравствуйте, я переписываю скрипт для создания квартирографии  с видео 2014 года(https://www.youtube.com/watch?time_continue=683&v=CR9CTBNg6Mk). Нод питона работает с предупреждением: 

Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File "<string>", line 65, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

image.pngimage.png

Как я понимаю, это значит, что в самом коде ошибки нет, но параметр parLiving(это boolean) выдает none, и надо выяснить, почему. Прошу совета, может кто-то уже сталкивался с подобным.

3 REPLIES 3
Message 2 of 4
architect.bim
in reply to: Anonymous

Подозреваю, что в одном из трех слагаемых в данной строке попадается значение None. В ошибке написано, что скрипт не может сложить None с типом данных string. Я создал похожую ситуацию в пустом скрипте и получил аналогичную ошибку.190722_1116_001.jpg

 

Скорее всего, скрипт в каком-либо элементе не может найти параметр, который вы считываете в данной строке. Вам надо посидеть и разобраться, почему прилетает None. И также я  думаю, что в скрипт можно было бы добавить дополнительную проверку на то, что все значения, которые вы складываете не равны None.

 


Maxim Stepannikov | Architect, BIM Manager, Instructor
Tags (3)
Message 3 of 4
architect.bim
in reply to: Anonymous

Из возможных причин, почему не находится параметр, может быть либо то, что в список с помещениями попал какой-то нестрандартный элемент, в котором нет данного параметра. Или, также, возможно в проекте больше одного параметра с именем "ParLiving". Иногда такое бывает, хотя это маловероятно, конечно. Учитывайте, что LookupParameter выдает лишь первый найденный параметр с таким именем. Есть метод GetParameters, он выдает все найденные параметры с таким именем. Можете проверить через него, посмотреть, не вылезает ли где-нибудь два одинаковых параметра. Хотя, это маловероятно. Скорее всего, в одном из элементов просто нет такого параметра. Также можете попробовать получить значение параметров по GUID, а не имени параметра. Разные способы получения значений параметров можно посмотреть здесь.


Maxim Stepannikov | Architect, BIM Manager, Instructor
Message 4 of 4
Anonymous
in reply to: architect.bim

Спасибо за ответ, скрипт получился.

Решила что не нужен мне формат записи str + "_" + str(int), теперь они записываются в разные параметры и все работает. Но найти, почему прилетает None не вышло, все параметры хорошо берутся как через динамовские ноды, так и через питон.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report