Get constrained occurrences

<?xml encoding=”UTF-8″>By Adam Nagy

When you select a component occurrence in the UI the context menu provides you with the Constrained To option to select all constrained occurrences:

Constraints1

If you want to retrieve the same occurrences programmatically, then you can iterate through the constraints of the selected occurrence and store all the occurrences those constraints reference:

Sub ConstrainedTo()
Dim asm As AssemblyDocument
Set asm = ThisApplication.ActiveDocument
Dim occSel As ComponentOccurrence
Set occSel = asm.SelectSet(1)
Dim tr As TransientObjects
Set tr = ThisApplication.TransientObjects
Dim coll As ObjectCollection
Set coll = tr.CreateObjectCollection()
Dim ac As AssemblyConstraint
For Each ac In occSel.Constraints
coll.Add ac.OccurrenceOne
coll.Add ac.OccurrenceTwo
Next
' If you want to ignore the originally
' selected occurrence then you can remove it
'coll.RemoveByObject occSel
' Now we have all the occurrences
' Let's list their names
Dim text As String
Dim occ As ComponentOccurrence
For Each occ In coll
text = text + occ.Name + vbCrLf
Next
MsgBox text
End Sub

The result: 

Constraints2

 


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading