Code:
Sub CATMain()' Selektierte Elemente
Dim oSel
Set oSel = CATIA.ActiveDocument.Selection
' ---Produkt erzeugen
Set oProduct1 = CATIA.Documents.Add ("Product")
Set oProduct2 = oProduct1.Product
' ---Array deklarieren
Dim aArray ()
ReDim aArray (0)
If oSel.Count > 0 Then
' ---Selektion Auslesen
For i = 1 to oSel.Count
' ---Wert dem Arrayfeld zuordnen
Set aArray(UBound(aArray)) = oSel.Item(i).Value
' ---Arraydimension um 1 Feld erweitern
ReDim Preserve aArray(UBound(aArray)+1)
Next
' ---Selektion löschen
oSel.Clear
' ---Arrayobjekte der Selektion hinzufügen
For j = 0 to UBound(aArray)-1
' ---Filter
Set oUserSel = aArray(j)
Set oSelElem = oUserSel.ReferenceProduct.Parent
ObjectType = Typename (oSelElem)
' ---Filter anwenden für Parts
If Objecttype = ("PartDocument") Then
oSel.Add(aArray(j))
End If
Next
If oSel.Count <> 0 Then
oSel.Copy
oSel.clear
oSel.Add oProduct2
oSel.Paste
End If
oSel.Clear
' ---Arrayobjekte der Selektion hinzufügen
For j = 0 to UBound(aArray)-1
' ---Filter
Set oUserSel = aArray(j)
Set oSelElem = oUserSel.ReferenceProduct.Parent
ObjectType = Typename (oSelElem)
' ---Filter anwenden für Products
If Objecttype = ("ProductDocument") Then
oSel.Add(aArray(j))
End If
Next
If oSel.Count <> 0 Then
oSel.Copy
oSel.Clear
oSel.Add oProduct2
oSel.PasteSpecial "CATSpecBreakLink"
End If
oSel.Clear
Else
MsgBox ("Kein Dokument Selektiert")
End If
End Sub