| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Properties von Elementen (593 mal gelesen)
|
deian Mitglied ApplicationEngineer
Beiträge: 10 Registriert: 01.04.2009
|
erstellt am: 13. Mai. 2009 09:53 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich programmiere in C# und möchte an die Eigenschaften eines Zeichnunselements (also das was man sieht wenn man in AutoCAD im Kontextmenü auf Eigenschaften klickt) kommen. Ich finde leider immer nur die Möglichkeit an die ObjectIDs zu kommen, diese enthalten meines Wissens nach die gesuchten Eigenschaften aber nicht. Ich konnte bisher leider kein entsprechenden Beispielcode finden. Vielleicht kann mir hier jemand helfen? Vielen Dank im Voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 13. Mai. 2009 10:21 <-- editieren / zitieren -->
Hi, die ObjectID ist die ID für die DWG-Datenbank (wenn man diese so nennen darf ), und mit einer TransAction bekommst Du dann den Zugriff auf das Objekt. Und dafür findest Du schon eine Menge Beispiele (z.B. ObjectARX-Kit) oder auch schon hier im Forum. Hier ein Beispiel, wie Du von auf BlockTable kommst und dann auf ModelSpace: Code: Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager; using (Transaction myT = tm.StartTransaction()) { BlockTable bt = (BlockTable)tm.GetObject(db.BlockTableId,OpenMode.ForRead,false); BlockTableRecord btr = (BlockTableRecord)tm.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite,false); }
- alfred - ------------------ www.hollaus.at |
deian Mitglied ApplicationEngineer
Beiträge: 10 Registriert: 01.04.2009
|
erstellt am: 13. Mai. 2009 11:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, Danke für die schnelle Antwort. In diesem BlockTableRecord sollten ja die Entities stecken. Wenn ich diese durchiteriere bekomme ich aber wieder nur ObjectIDs. Wie komme ich nun an die Entities? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 13. Mai. 2009 11:42 <-- editieren / zitieren -->
Hi, die Vorgehensweise ist die gleiche, nimm halt bei der Funktion deine ObjectID. Code: DBObject Obj = (DBObject)tm.GetObject(GesuchteObjectID,OpenMode.ForRead,false);
- alfred - ------------------ www.hollaus.at |
autocart Mitglied Technischer Redakteur
Beiträge: 695 Registriert: 08.09.2003
|
erstellt am: 14. Mai. 2009 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für deian
|