' dies zeig den Lösungsansatz und nicht die fertige Lösung weil von mir aus Modulen ausgelöst ' statt Inventor.ApprenticeServerDocument ' geht auch nach Anpassung Inventor.Document, nur deutlich langsamer wenn Inventor.Visible True ist Public Function fuc_Doc_Asm_Prop_In_OccS(ByRef üAsm As Inventor.ApprenticeServerDocument) As Boolean On Error Resume Next Dim üOccuS As Inventor.ComponentOccurrences Set üOccuS = üAsm.ComponentDefinition.Occurrences Dim idOccuO As Inventor.ComponentOccurrence For Each idOccuO In üOccuS ' hier Property abfragen und entscheiden select case idOccuO.Definition.Document.PropertySets.Item(DeinSet).Item(DeinProp).Value case = True idOccuO.Visible = True case = Frue idOccuO.Visible = False end select ' jetzt entscheiden wie weiter? ' ist aktuelle Datei IAM oder IPT? Select Case idOccuO.Definition.Document.DocumentType Case kAssemblyDocumentObject ' wenn IAm, gibt es noch weitere Dateien? Select Case idOccuO.SubOccurrences.count Case Is > 0 ' ja es gibt weiter Dateien deshalb rekursiv in diese Funktion und das Spiel aufs neue Select Case fuc_Doc_Asm_Prop_In_OccS(idOccuO.Definition.Document) Case True Case False Exit Function End Select End Select Case kPartDocumentObject ' wenn IPT schau ob abgeleitete Komponente vorhanden ist Select Case idOccuO.Definition.Document.ReferencedFiles.count Case Is > 0 Select Case fuc_Doc_Par_Prop_In_ReFiDocS(idOccuO.Definition.Document) Case True Case False Exit Function End Select End Select End Select Next Function fuc_Doc_Asm_Prop_In_OccS = Err.Number = 0 End Function Public Function fuc_Doc_Par_Prop_In_ReFiDocS(ByRef üPar As Inventor.ApprenticeServerDocument) As Boolean On Error Resume Next Dim idReFiS As Inventor.ApprenticeServerDocuments Set idReFiS = üPar.ReferencedFiles Dim idReFiO As Inventor.ApprenticeServerDocument For Each idReFiO In idReFiS select case idReFiO.PropertySets.Item(DeinSet).Item(DeinProp).Value case = True idOccuO.Visible = True case = Frue idOccuO.Visible = False end select ' ähnlich Abfrag wie oben in IAM Routine Select Case idReFiO.ComponentDefinition.Document.DocumentType Case kAssemblyDocumentObject Select Case idReFiO.ComponentDefinition.Occurrences.count Case Is > 0 Select Case fuc_Doc_Asm_Prop_In_OccS(idReFiO.ComponentDefinition.Document) Case True Case False Exit Function End Select End Select Case kPartDocumentObject Select Case idReFiO.ComponentDefinition.Document.ReferencedFiles.count Case Is > 0 Select Case fuc_Doc_Par_Prop_In_ReFiDocS(idReFiO.ComponentDefinition.Document) Case True Case False Exit Function End Select End Select End Select Next fuc_Doc_Par_Prop_In_ReFiDocS = Err.Number = 0 End Function