Hi, I’m starting in python and I wanted to make a node to switch the join order.
However I got this message even if there is nothing in line 17
Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File “”, line 17, in
TypeError: expected Element, got List[object]
That’s the code that I used.
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from System.Collections.Generic import *
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
element1 = UnwrapElement(IN[0])
element2 = UnwrapElement(IN[1])
for x,y in zip (element1, element2):
JoinGeometryUtils.SwitchJoinOrder(doc,x,y)
OUT = 0
Thank you in advance.
@JC.Moreno usually an error @ line 17 means line 16, I do not know why, but this is what I have learned over time dealing with python errors
; Moreover, I guess you need to use the transaction manager properly since you want to interact with Revit; Finally, and after correcting the transaction code, you can check that error, “if it remains” which is telling you that a Revit element is required while you are using an unknown object from a given list.
The problem is in your input, which we cannot see, since you didn’t post a picture of the Dynamo graph.
Your input should be for both IN[0] and IN[1] a flat list. Right now it is probably a Nested List.
You should also implement the Transaction manager. Since you are going to do stuff in Revit, you should start a transaction. Like @Elie.Trad is also suggesting.
2 Likes
Thank you for your information.
Do you know where I could find some information on these transactions?
@JC.Moreno this one might be a good start:
https://primer.dynamobim.org/10_Custom-Nodes/10-6_Python-Templates.html
Just put your code within these 2 lines:
TransactionManager.Instance.EnsureInTransaction(doc)
TransactionManager.Instance.TransactionTaskDone()
Ahhh…ok! Yes you are right it works.
Thank you.
Thank you @Elie.Trad. I’m going to take a look on that.
1 Like
JC.Moreno
Thank you for sharing this as I was trying to do this today in Dynamo and this worked great.