Hi SEHER,
ich weiss jetzt nicht was PPS ist, aber das ist auch egal, weil die Daten hast du ja schon ausgelesen. Wenn du die Eigenschaften an jedes Teil in deiner Baugruppe übergeben willst, dann wirst du wohl auf jedes Teil zugreiffen müssen. Das heisst nicht dass du jedes Teil selektieren must. Da könntest du zB. eine andere Variable deklarieren zB. Dim oOcc as ComponentOccurence, und auch eine Dim oPart as PartDocument, also:
Code:
Public Sub Eigenschaften()
Call HoleEigenschaften(ThisApplication.ActiveDocument.ComponentDefinition.Occurrences)
End SubPublic Function HoleEigenschaften(Elemente As ComponentOccurrences)
Dim oOcc As ComponentOccurrence
Dim oPart As PartDocument
Dim i as Integer
Dim j as Integer
For Each oOcc In Elemente
If oOcc.Definition.Document.DocumentType = kPartDocumentObject Then
Debug.Print ""
Set oPart = oOcc.Definition.Document
Debug.Print "********************************************************************"
Debug.Print oPart.DisplayName
For i = 1 To oPart.PropertySets.Count
For j = 1 To oPart.PropertySets.Item(i).Count
On Error Resume Next
Debug.Print oPart.PropertySets.Item(i).Item(j).DisplayName & ": " & oPart.PropertySets.Item(i).Item(j).Value
If Err.Number <> 0 Then
Err.Clear
End If
Next
Next
Debug.Print "********************************************************************"
Debug.Print ""
End If
Call HoleEigenschaften(oOcc.SubOccurrences)
Next
End Function
Die Ausgabe im Direkt Fenster ist begrenzt (nicht alle Einträge passen rein ), aber du sollst auch nur in etwa verstehen wie es funktionieren sollte.
Ein PartDocument hat 4 Eigenschaften oPart.PropertySets.Item(i).Count = 4
Summary Information, {F29F85E0-4FF9-1068-AB91-08002B27B3D9}
Document Summary Information, {D5CDD502-2E9C-101B-9397-08002B2CF9AE}
Design Tracking Properties, {32853F0F-3444-11D1-9E93-0060B03C1CA6}
User Defined Properties, {D5CDD505-2E9C-101B-9397-08002B2CF9AE}
Und die einzelnen Einträge sind dann oPart.PropertySets.Item(i).Item(j).DisplayName Items von oPart.PropertySets.Item(i) , also die mit den Index j.
So kannst du auf alle Teile einer Baugruppe und auf alle Eigenschaften zugreiffen. Du kannst dann auch die Daten die du aus PPS (?) ausgelesen hast setzen. zB. oPart.PropertySets.Item(i).Item(j).Value = "Test Wert" usw.
Studiere ein wenig den Code und ich bin mir sicher du begreiffst es sehr bald.
Bis später...
------------------
Grüße daywa1k3r
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP