Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Zugriff auf ein PropertySet in C# mittels PropertySets.Item ?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Zugriff auf ein PropertySet in C# mittels PropertySets.Item ? (2642 mal gelesen)
sebastianapa
Mitglied
Student


Sehen Sie sich das Profil von sebastianapa an!   Senden Sie eine Private Message an sebastianapa  Schreiben Sie einen Gästebucheintrag für sebastianapa

Beiträge: 20
Registriert: 13.11.2006

.NET 2.0, VS2005, IV11

erstellt am: 12. Dez. 2006 13:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte auf die Eigenschaften eines Dokumentes über die API mit C# zugreifen, um diese dort entweder auszulesen oder auch neue anzulegen. Momentan habe ich allerdings das Problem, dass ich nicht viel weiter als bis zur PropertySets Klasse komme.
Mit einer foreach-Schleife kann ich zwar das PropertySets-Objekt durchlaufen durchlaufen und alle enthaltenen PropertySet-Objekte auslesen, auf ein bestimmtes PropertySet (mit der Property "Item" wie auch in der Online-Hilfe verwendet) kann ich allerdings nicht direkt zugreifen. Mein Problem ist konkret, dass das Property "Item" der Klasse PropertySets im Visual Studio bei mir nicht verfügbar ist. Was mach (bzw. denk) ich falsch? 
Auszug aus meinem Code:

Code:

Inventor.PartDocument active_PartDocument;
Inventor.PropertySets a_propsets;
Inventor.PropertySet a_propset;
Inventor.Property a_property;

//...

a_propsets = active_PartDocument.PropertySets;

foreach (Inventor.PropertySet a_propset in a_propsets)
                    {
                        txtBox.AppendText(">> DisplayN: " + a_propset.DisplayName + " InternalN: " + a_propset.InternalName  + System.Environment.NewLine);
                    }

//direkter Zugriff auf ein PropertySet bei mir nicht möglich:
a_propset = a_propsets.Item("..");



Gruß
Sebastian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 12. Dez. 2006 14:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sebastianapa 10 Unities + Antwort hilfreich

Hallo,

dann verzichte einfach auf das Item (allerdings mit eckigen und nicht mit runden Klammern). Dass es keinen Sinn macht eine ForEach zu machen, und dann über den Index (String) auf die PropSets zu zugreifen ist aber schon klar? Und in C# werden die Variablen innerhalb von ForEach definiert (so wie von dir gemacht), so kannst du dir die dritte Zeile ( Inventor.PropertySet a_propset; ) sparen. Und ohne Fehlerbehandlung (Try, Catch und Finaly) wirst du auch nicht sehr weit kommen. Und doch noch etwas... Solche Daten solltest du nicht in eine TextBox laden. Benutze lieber eine ListView in Details Mode.


------------------
Grüße Igor

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sebastianapa
Mitglied
Student


Sehen Sie sich das Profil von sebastianapa an!   Senden Sie eine Private Message an sebastianapa  Schreiben Sie einen Gästebucheintrag für sebastianapa

Beiträge: 20
Registriert: 13.11.2006

.NET 2.0, VS2005, IV11

erstellt am: 13. Dez. 2006 09:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Igor,
Danke für die Antwort:

Zitat:
Original erstellt von daywa1k3r:
...dann verzichte einfach auf das Item

Bedeutet das, dass ein Zugriff mit "Item"  nicht möglich ist? Wie kann ich dann ein bestimmtes Property aus einem PropertySet auslesen bzw. verändern wenn ich nicht mit Item darauf zugreifen kann? 
Bei den VBA-Beispielen in der Hilfe wird der Zugriff immer mit Item realisiert.

Zitat:
Original erstellt von daywa1k3r:
...Und ohne Fehlerbehandlung (Try, Catch und Finaly) wirst du auch nicht sehr weit kommen. Und doch noch etwas... Solche Daten solltest du nicht in eine TextBox laden. Benutze lieber eine ListView in Details Mode.

Eine Fehlerbehandlung habe ich natürlich. Aus Gründen der Anschaulichkeit habe ich hier allerdings alle nicht unbedingt erforderlichen Codezeilen weggelassen.(->"Die Abstraktion ist das mächtigste Werkzeug des Ingenieurs" )
Die Anzeige in einer Textbox ist nur ein "Provisorium", war halt die schnellste Möglichkeit für mich was sichtbar zu machen und außerdem ist das ganze für mich bisher eh nur so eine Art "Hello World" (bzw. "Hello Inv-Api" ).

Gruß
Sebastian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 13. Dez. 2006 14:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sebastianapa 10 Unities + Antwort hilfreich

Probier eben a_propsets[0] oder a_propsets["String"]. Das mit dem Integer weiß ich dass geht, und mit dem Namen als String dürfte auch funktionieren. Kann jetzt aber nicht testen...

------------------
Grüße Igor

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

sebastianapa
Mitglied
Student


Sehen Sie sich das Profil von sebastianapa an!   Senden Sie eine Private Message an sebastianapa  Schreiben Sie einen Gästebucheintrag für sebastianapa

Beiträge: 20
Registriert: 13.11.2006

.NET 2.0, VS2005, IV11

erstellt am: 14. Dez. 2006 10:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Igor,
Vielen Dank für Deine Antwort!
Zitat:
a_propsets[0] oder a_propsets["String"].


Ich hab ´s probiert. Funktioniert sowohl mit Integer als auch mit String!

Gruß
Sebastian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz