partial auto-reply :
for change the position of an instance, must make subtraction, add lot of stuff at the begin of code, an be careful of #%@µ! conversion feet/meter :
import clr
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
from Revit.Elements import *
clr.AddReference('System')
from System.Collections.Generic import *
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
# Les entrées effectuées dans ce noeud sont stockées sous forme de liste dans les variables IN.
dataEnteringNode = IN
# Placer votre code au-dessous de cette ligne
destination = XYZ(0, 0, 0)
ret= []
for element in IN[0] :
id=element.Id
position=element.Location
posx=element.Location.X
posy=element.Location.Y
desx=destination.X - posx
desy=destination.Y - posy
dest= XYZ(desx/304.8, desy/304.8, 0)
az=element.FacingOrientation
ret.append([id , position ,desx,desy, az])
TransactionManager.Instance.EnsureInTransaction(doc)
moveditems = ElementTransformUtils.MoveElement(doc, ElementId(id), dest)
TransactionManager.Instance.TransactionTaskDone()
# Affectez la sortie à la variable OUT.
OUT = ret