Select and Group the Connection Input Elements

Learn how to select and group the Dynamo connection input elements, using the Structure Data, Grouping and Arrangements nodes.

Note: When you select steel framing elements for placing steel connections with Dynamo, the selection node will output a list of framing elements, regardless of the selected ends of the elements.

The Structure Data Node

The first Dynamo node in a Dynamo Steel Connections script is Model.GetStructureData. This node has no input. The output of the Dynamo node is a list of structure data elements (beams and columns), given by the current selection. In this example, the output is: [B1, B2, B3, B4].

Note: When you create or edit the script in Dynamo, if you use the Model.GetStructureData node, for each selection change, you need to delete the node and add it again to refresh the list of structure data elements. If you use the Input.SelectStructureData node, it is not recommended to save a Dynamo script with a selection.


The Grouping Node

The second Dynamo node in the script is ConnectionNode.FromStructure. This node takes the list of structure data elements as input. The output of the Dynamo node is a list of connection nodes, determined using the grouping algorithm. Connections can only be placed on connection nodes. In this example, selecting elements B1, B2, B3, B4 results in the output being a connection node containing [B1, B2, B3, B4], each structure data element having an end type of zone.



The Arrangements Node

The next Dynamo node to add to the script is ConnectionNode.SubNodesOfSize. This node takes the list of connection nodes created by the Grouping node and the desired number of zones as input.

In this example, the connection Knee of frame, bolted, with haunch takes two structure data elements as input, so there need to be connection nodes that have two or more zones. The output of this Dynamo node is a list of connection sub nodes (a list of lists of connection nodes). Connection sub nodes are arrangements of the structure data elements in a connection node, taken noOfZones times (2 in our example).



Note: For some scripts (e.g. Apex Haunch or other symmetrical connections), due to the arrangements generated by this Dynamo node, the algorithm identifies both the [Beam1, Beam2] and the [Beam 2, Beam1] connection subnodes as valid situations. Therefore, the script adds the connection on the first connection subnode, so the second identified subnode is added to the "Existing" output (causing the Dynamo node that places connections to have more connection nodes as output than the received input). To solve this, use the "ConnectionNode.RemoveDuplicates" to remove the duplicate connection subnodes (connection nodes containing the same elements). For more information about how to use this Dynamo node, see the Apex Haunch sample script.
In this example, the inputs are a connection node that contains [B1, B2, B3, B4], and the number 2. The output will be connection nodes for all the subsets of the two structure data elements:
Input Output

[B1, B2, B3, B4]

2



These are all possibilities of placing a connection of two elements in this connection node of four elements.

Next step: Filter the Connection Input Elements