import clr
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *
clr.AddReference(‘RevitAPI’)
import Autodesk
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference(‘RevitNodes’)
import Revit
clr.ImportExtensions(Revit.Elements)
#The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
elementA = UnwrapElement(IN[0])
elementB = UnwrapElement(IN[1])
doc = DocumentManager.Instance.CurrentDBDocument
results = []
#Unjoin
TransactionManager.Instance.EnsureInTransaction(doc)
for A in elementA:
for B in elementB:
try:
result = Autodesk.Revit.DB.JoinGeometryUtils.UnjoinGeometry(doc,A,B)
result.append(result)
except:
pass
TransactionManager.Instance.TransactionTaskDone()
#Join
TransactionManager.Instance.EnsureInTransaction(doc)
for A in elementA:
for B in elementB:
try:
result = Autodesk.Revit.DB.JoinGeometryUtils.JoinGeometry(doc,A,B)
result.append(result)
except:
pass
TransactionManager.Instance.TransactionTaskDone()
#Switch Join
TransactionManager.Instance.EnsureInTransaction(doc)
for A in elementA:
for B in elementB:
try:
result = Autodesk.Revit.DB.JoinGeometryUtils.SwitchJoinOrder(doc,A,B)
result.append(result)
except:
pass
TransactionManager.Instance.TransactionTaskDone()
OUT = results