Inhalt aus dem Property "Projekt - Beschreibung" in Bauteil von Unterbaugruppe lesen

Inhalt aus dem Property "Projekt - Beschreibung" in Bauteil von Unterbaugruppe lesen

Frodl
Advocate Advocate
183 Views
3 Replies
Message 1 of 4

Inhalt aus dem Property "Projekt - Beschreibung" in Bauteil von Unterbaugruppe lesen

Frodl
Advocate
Advocate

Hallo,

Ich habe eine Frage:
Ich möchte gerne in den Unterbaugruppen und deren Bauteile den Inhalt aus dem Property "Projekt - Beschreibung" bzw. "Project - Description" lesen. Leider funktioniert das nicht so , wie ich es unten gemacht habe. Es erscheint die Fehlermeldung das das Property nicht gefunden wird.
"Public member 'iPropertySets' on type 'AssemblyDocument' not found."

In der folgenden Zeile steckt der Wurm drin.

Code:

GeöffnetesObjekt = oSubDoc.iPropertySets("Project").Item("Description").Value

Ich habe schon verschiedene Varianten ausprobiert, aber immer mit dem selben Fehler.
Kann mir jemand sagen, wie die Zeile richtig aussehen muss?

Hier noch ein längerer Ausschnitt aus dem gesamten Code, in dem ich die obige Zeile eingefügt habe.

 

Code:

'Wenn es sich um eine Baugruppe handelt, iAssemblies ausgelassen
    If oAssyDoc.AllReferencedDocuments.Item(iCount).DocumentType = kAssemblyDocumentObject Then
Try
'Wenn das Bauteil ein Inhaltcenter-Bauteil ist, dann überspringe das Bauteil
oCustomPropertySet = oSubDoc.PropertySets.Item("2DB9508F-CBA8-4714-ABE9-1A0EDB5B586C") 'ContentCenter in VBA
Exit Try
Catch
'Wenn es sich um ein iAssembly handelt, dann überspringe die Baugruppe
If oSubDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
Dim oAssDoc As AssemblyDocument = DirectCast(oSubDoc,AssemblyDocument)
If oAssDoc.ComponentDefinition.IsiAssemblyMember= True Then Continue For
If oAssDoc.ComponentDefinition.IsiAssemblyFactory = True Then Continue For
If oAssDoc.IsModifiable = False Then Continue For
End If

'Wenn die Bautgruppe eine "normale" Baugruppe ist, dann erstelle die Eigenschaften
oCustomPropertySet = oSubDoc.PropertySets.Item("D5CDD505-2E9C-101B-9397-08002B2CF9AE") 'benutzerdefinierte iProperties

'Inhalt aus iPropertie "Projekt - Beschreibung" auslesen, um zu ermitteln, umm welchen Datesatz / Bauteil es sich handelt
' GeöffnetesObjekt = iProperties.Value("Project", "Description")
GeöffnetesObjekt = oSubDoc.iPropertySets("Project").Item("Description").Value

MsgBox("Unterbaugruppe oder Bauteil in Hauptbaugruppe:" & vbCrLf & vbCrLf & "Geöffnetes Objekt: " & GeöffnetesObjekt)

 


Danke für die Hilfe.
Gruß Stephan

0 Likes
Accepted solutions (2)
184 Views
3 Replies
Replies (3)
Message 2 of 4

contact
Advocate
Advocate

Moin, ich bin auch kein Experte, glaube allerdings dass ich ähnliche Probleme hatte.

Ich habe noch keine ilogic zum laufen bekommen, in der über "ipropertysets" auf die Inhalte zugegriffen werden sollte (über ChatGPT.....).

Stattdessen habe ich immer solange rumgefriemelt bis der Befehl zum Beispiel so aussieht:

 iProperties.Value("Project", "Description") = iProperties.Value("Project", "Part Number")


 Hier kopiere ich einfach den Wert aus "Part Number" zu "Description".

 

Ich kann Dir nicht sagen wo der Unterschied zu "ipropertysets" liegt.

 

Die Klasse "Project" ist bei Dir ja dieselbe, vielleicht hilft es etwas.

 

Besten Gruß, Jan.

 

 

0 Likes
Message 3 of 4

cidhelp
Advocate
Advocate
Accepted solution

Hallo,

 

wenn ein iProperty aus einer Unterkomponente gelesen werden soll geht das mit

iProperties.Value("custom component name", "property tab name", "property name")

cidhelp_0-1744896983324.png

D.h. das erste der 3 Argumente muss der Name der Komponente im Browser sein. Das scheint sogar zu funktionieren, wenn die Komponente in einer Unterbaugruppe ist.

Hier der Link zur Hilfeseite:
https://help.autodesk.com/view/INVNTOR/2014/DEU/?guid=GUID-8CAEA21E-A604-4D0A-8F06-3FA5B693CE6B

 

 

0 Likes
Message 4 of 4

Frodl
Advocate
Advocate
Accepted solution

Hallo,

danke für die Info. 

Das habe ich inzwischen auch herausgefunden. Der entsprechende Code sieht dann so aus:

 
'Inhalt aus iPropertie "Projekt - Beschreibung" auslesen, um zu ermitteln, umm welchen Datesatz / Bauteil es sich handelt
GeöffnetesObjekt = iProperties.Value(GetDisplayName(oSubDoc), "Project", "Description")			'Inhalt aus dem iProperty "Projekt - Beschreibung" lesen
GeöffnetesObjekt_130 = iProperties.Value(GetDisplayName(oSubDoc), "Custom", "z_Matchkey_130")		'Inhalt aus dem benutzerdefinierten iProperty "z_Matchkey_130" lesen
GeöffnetesObjekt_140 = iProperties.Value(GetDisplayName(oSubDoc), "Custom", "z_Matchkey_140")		'Inhalt aus dem benutzerdefinierten iProperty "z_Matchkey_140" lesen

 

Gruß Stephan

0 Likes