Many clashes develop due to joining issues, so the below script is the prefect solution to eliminate these clashes and reduce the time spent on joining manually. Depending on the interference check that you can run inside Revit, the script will read the clashed elements and study the ability to join/solve them. Also you will be able to control the joining order between the elements. . (It’s applicable for the elements that have the same geometry).
For Revit 2020 There is new update here.
Dynamo Script Request Here
You need to install the Springs node package.
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 #The inputs to this node will be stored as a list in the IN variables. dataEnteringNode = IN cond = IN x = UnwrapElement(IN) TransactionManager.Instance.EnsureInTransaction(doc) booleans= if cond == False: for i in range (0,len(x)): for j in range(0,len(x[i])): try: JoinGeometryUtils.JoinGeometry(doc,x[i],x[i][j]) booleans.append(True) except: booleans.append(False) else: for i in range (0,len(x)): for j in range(0,len(x[i])): try: JoinGeometryUtils.SwitchJoinOrder(doc,x[i],x[i][j]) booleans.append(True) except: booleans.append(False) TransactionManager.Instance.TransactionTaskDone() #Assign your output to the OUT variable. OUT = booleans