Walk the CATIA V6 Product Structure with VBA
The code below recursively walks down a CATIA V6 Product Structure using VBA setting an attribute value as its goes.
Sub Main()
Dim ioCATIA As Application
Set ioCATIA = CATIA
Dim ioActiveEditor As Editor
Set ioActiveEditor = ioCATIA.ActiveEditor
Dim ioActiveObject As VPMRootOccurrence
Set ioActiveObject = ioActiveEditor.ActiveObject
Dim ioVPMReference As VPMReference
Set ioVPMReference = ioActiveObject.ReferenceRootOccurrenceOf
ioVPMReference.SetAttributeValue "Manufacturer", "Bob" ' This Works
Dim ioOccurences As VPMOccurrences
Set ioOccurences = ioActiveObject.Occurrences
Dim ioBoolean As Boolean
ioBoolean = NavigateProductStructure(ioOccurences)
End Sub
Function NavigateProductStructure(ioOccurences As VPMOccurrences) As Boolean
Dim ioIndex As Integer
For ioIndex = 1 To ioOccurences.Count
Dim ioOccurence As VPMOccurrence
Set ioOccurence = ioOccurences.Item(ioIndex)
Dim ioVPMInstance As VPMInstance
Set ioVPMInstance = ioOccurence.PLMEntity
Dim ioVPMReference As VPMReference
Set ioVPMReference = ioVPMInstance.ReferenceInstanceOf
ioVPMReference.SetAttributeValue "Manufacturer", "Bob" ' This Works
MsgBox (ioOccurence.Name)
Dim ioBoolean As Boolean
ioBoolean = NavigateProductStructure(ioOccurence.Occurrences)
Next
End Function