C# Addin - Letztes graphisches Element auslesen


Bezieht sich auf
Produkt(e):MicroStation
Version(en):08.11.09.459
Umbegung: Windows 7 32 bit,Windows 7 64 bit
Produktbereich: Programmierung
Produktunterbereich: .NET
Ursprünglicher Autor:Artur Goldsweer, Bentley Technical Support Group

 

Problembeschreibung

Beim Versuch mit einer C# Addin Applikation das letzte in einer Zeichnung erstellte graphische Element auszulesen, kommt es zu einem Laufzeitfehler bei der Methode:

ActiveModelReference.GetLastValidGraphicalElement

Schritte zur Problembehebung

Zur Verhinderung von Problemen muss eine explizite Typumwandlung (explicit casting) durchgeführt werden (element),
dadurch ist sichergestellt, dass ein Objekt vom Typ Element zurücggegeben wird: 


long i = app.ActiveModelReference.GraphicalElementCache.Count; if (i>0) { Element lastEle = (Element)app.ActiveModelReference.GetLastValidGraphicalElement(); app.MessageCenter.AddMessage("Last element found: is type " + lastEle.Type.ToString()); }

 

Zum Vergleich der analoge Sourcecode in VBA, hier ist keine explizite Typumwandlung notwendig:


Dim i As Long i = ActiveModelReference.GraphicalElementCache.Count If (i > 0) Then Dim lastEle As element Set lastEle = ActiveModelReference.GetLastValidGraphicalElement MessageCenter.AddMessage ("Last element found: is type " & lastEle.Type) End If