Coping Joints using Dynamo

Hi All,

After generating Structural Framing families using Dynamo, is there a way to join the connecting beams using nodes in Dynamo? I want to show the joints in Revit, but I don’t want to manually assign it, because on a larger scale there will be several hundred joints.

C04

Hi Danny,

Nice speaking today. I’m actually surprised this does not exist yet in Dynamo as a node or in the Package Manager. Check inside some of @andydandy’s nodes

Here is the Revit API, it should be pretty easy to access these via Python or DS:

http://revitapisearch.com/html/854c88ca-9bed-7997-3326-dcc53c6335c0.htm

 

-matt

Hi Danny,

 

here is a quick Python script to start using the

JoinGeometryUtils

 

import clr
 clr.AddReference("ProtoGeometry")
 from Autodesk.DesignScript.Geometry import *
 
 # Import RevitAPI
 clr.AddReference("RevitAPI")
 import Autodesk
 
 # Import DocumentManager and TransactionManager
 clr.AddReference("RevitServices")
 import RevitServices
 from RevitServices.Persistence import DocumentManager
 from RevitServices.Transactions import TransactionManager
 
 # Import ToDSType(bool) extension method
 clr.AddReference("RevitNodes")
 import Revit
 clr.ImportExtensions(Revit.Elements)
 
 walls = UnwrapElement(IN[0])
 
 wall = []
 foundList = []
 doc = DocumentManager.Instance.CurrentDBDocument
 uiapp = DocumentManager.Instance.CurrentUIApplication
 app = uiapp.Application
 TransactionManager.Instance.EnsureInTransaction(doc)
 
 
 for i in range (0,len(walls)):
 
   wall = walls[i]
   #search for existing joined elements
   elList = Autodesk.Revit.DB.JoinGeometryUtils.GetJoinedElements(doc, wall)
   for elemId in elList:
     foundList.append(elemId)
   
 OUT = foundList

attached are python examples of all methods in JoinGeometryUtils

 

column joined to wall colum joined to wall

Name Description
Public methodStatic member AreElementsJoined
Determines whether two elements are joined.
Public methodStatic member GetJoinedElements
Returns all elements joined to given element.
Public methodStatic member IsCuttingElementInJoin
Determines whether the first of two joined elements is cutting the second element.
Public methodStatic member JoinGeometry
Creates clean joins between two elements that share a common face.
Public methodStatic member SwitchJoinOrder
Reverses the order in which two elements are joined.
Public methodStatic member UnjoinGeometry
Removes a join between two elements.
http://revitapisearch.com/html/3eaaf4f5-70b7-f7fb-63a2-0d95bab25deb.htm

Correct me if I’m wrong but isn’t the joining tool( and thus the related API calls) used only for RC elements? While steel members use the coping tool, which from what I can tell does not have an API equivalent.

Dimitar, you are correct in that the joing tool isn’t working for structural steel members. Fortunately enough, you are wrong about the availability of the coping tool in the API. :wink:

I just uploaded version 0.74.1 of package Clockwork to the package manager - among other new nodes it contains three new coping related nodes: FamilyInstance.CopingElements, FamilyInstance.AddCoping and FamilyInstance.RemoveCoping. One of them was on my todo list for the next few weeks in any case, so no big deal. Enjoy!

Great work as usual, Andreas!

I’ll be sure to try your nodes later this week.

Thanks Matt, sorry about the late reply been busy getting the Dynamo script setup for the project we were discussing. I’ll be sure to give those scripts a try.

Unfortunately I can’t test the latest version of Dynamo yet due to internal testing requirements by the office’s IT.