<?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:
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:



Leave a Reply