previous arrowprevious arrow
next arrownext arrow
PlayPause
previous arrownext arrow
Shadow

Wir realisieren Ihre CAD-Projekte

im AutoCAD, Inventor, Revit und Autodesk Forge Platform

Umfeld
Wir helfen Ihnen bei der Realisierung Ihrer Projekte.

Blog - CAD-Becker.de

Beiträge zu AutoCAD und dessen Vertikalprodukte.
Tipps und Tricks, viele Neuigkeiten aus der Autodesk Welt.
2 Minuten Lesezeit (439 Worte)

Visual Lisp To C# - (Vlax-ldata-list) in .Net C# übersetzt

Anzeige

Aktuelle Top-Angebote der Telekom, Online-Vorteile, Attraktive Prämien

​Die Vlax-ldata-list Anweisung ist, nachdem wir die Anweisung Vlax-ldata-get in C# realisiert haben relativ einfach zu realisieren.

Vlax-ldata-list listet alle Datensätze eines Dictionaries auf.

In diesem Posting zeige ich, wie ein Dictionary, das mit Vlax-ldata-put erstellt wurde ausgelesen werden kann.

Database m_DataBase = m_Document.Database;

using (Transaction m_Transaction = 
   m_DataBase.TransactionManager.StartTransaction())
{
    DBDictionary m_Node = 
        (DBDictionary)m_Transaction.GetObject(
        m_Document.Database.NamedObjectsDictionaryId, 
        OpenMode.ForWrite);
    if (m_Node.Contains(DictionaryName) == true)
    {
        string m_Key = string.Empty;

        DBDictionary m_DBDictionary = 
            (DBDictionary)m_Transaction.GetObject(
                m_Node.GetAt(DictionaryName), 
                OpenMode.ForWrite);
                        
        foreach(
            DBDictionaryEntry m_DBDictionaryEntry 
                in 
            m_DBDictionary)
        {
                    
                    
        }
    }
} 

​Der Trick ist ganz einfach.

Wir iterieren durch das benannte Dictionary und erhalten Objekte vom Datentyp "DBDictionaryEntry". Diese Objekte enthalten den Key und die Objekt-ID des Datensatzes.

Innerhalb der foreach-Schleife lesen wir den Datensatz aus und speichern ihn in ein System.Collections.Generic.Dictionary<string, ResultBuffer> Datentyp.

Die Methode "ReadRecordFromNamedDictionary" liest das ImpDBObject aus dem Dictionary-Datensatz anhand des Keys und der ObjectId.

Dazu bitte den vorherigen Post anschauen. 

 
public static bool ReadFromNamedDictionary(
    string DictionaryName, 
    out System.Collections.Generic.Dictionary<string, ResultBuffer> List)
{
    m_Succeed = false;
    ResultBuffer m_ResultBuffer = null;
    System.Collections.Generic.Dictionary<string, ResultBuffer> m_List =
        new Dictionary<string, ResultBuffer>();
    Document m_Document = 
        Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
    using (m_Document.LockDocument())
    {
        using (Transaction m_Transaction = 
                    m_Document.Database.TransactionManager.StartTransaction())
        {
            DBDictionary m_Node = (DBDictionary)m_Transaction.GetObject(
                m_Document.Database.NamedObjectsDictionaryId, 
                OpenMode.ForWrite);
            if (m_Node.Contains(DictionaryName) == true)
            {
                string m_Key = string.Empty;

                DBDictionary m_DBDictionary = 
                    (DBDictionary)m_Transaction.GetObject(
                            m_Node.GetAt(DictionaryName), 
                            OpenMode.ForWrite);
                        
                foreach(DBDictionaryEntry m_DBDictionaryEntry in m_DBDictionary)
                {
                    m_Key = m_OBjectId.Key;
                        bool m_Succeed = 
                                CADBecker.AutoCAD.Dictionary.ReadRecordFromNamedDictionary(
                        DictionaryName,
                        m_OBjectId.Value,
                        m_Key,
                        out m_ResultBuffer
                        );
                    m_List.Add(m_Key, m_ResultBuffer);
                }
            }
        }
    }

    List = m_List;
    return m_Succeed;
} 
public static bool ReadRecordFromNamedDictionary(
    string DictionaryName,
    string Key,
    out ResultBuffer ResultBuffer
    )
{
    m_Succeed = false;
    ResultBuffer m_Resultbuffer = null;

    Document m_Document = Application.DocumentManager.MdiActiveDocument;
    using (Transaction m_Transaction = m_Document.Database.TransactionManager.StartTransaction())
    {
        DBDictionary m_DBDictionary =
            (DBDictionary)m_Transaction.GetObject(
                    m_Document.Database.NamedObjectsDictionaryId, 
                    OpenMode.ForRead);
        if (m_DBDictionary != null)
        {
            ObjectId m_DictObjectId = m_DBDictionary.GetAt("dict");
            DBDictionary m_Dictionary = (DBDictionary)m_Transaction.GetObject(
                                                m_DictObjectId, 
                                                OpenMode.ForRead);

            ObjectId hObjectID = m_Dictionary.GetAt("cay");
            DBObject m_ImpDBObjectAsDBObject = (DBObject)m_Transaction.GetObject(
                                                    hObjectID, 
                                                    OpenMode.ForRead);
            m_Resultbuffer = new ResultBuffer();
            AdsName m_EName = new AdsName();
            acdbGetAdsName64(out m_EName, m_ImpDBObjectAsDBObject.ObjectId);
            IntPtr m_IntPrResult = acdbEntGetX(m_EName, m_Resultbuffer.UnmanagedObject);
                    
            if (m_IntPrResult != IntPtr.Zero) 
            {
                m_Resultbuffer = ResultBuffer.Create(m_IntPrResult, true);
            }
        }
        m_Transaction.Commit();
        m_Succeed = true;
    }

    ResultBuffer = m_Resultbuffer;
    return m_Succeed;
}
 

Copyright

© Copyright 2019 by CAD-Becker.de

Wie ein 100-jähriger deutscher Hersteller für das ...
Visual Lisp To C# - (Vlax-ldata-get) in .Net C# üb...

Ähnliche Beiträge

 

By accepting you will be accessing a service provided by a third-party external to https://cad-becker.de/

Über mich

  Dipl.-Ing.
Jürgen A. Becker
Versorgungstechnik

 

 

Suchen

Abonniere Blog

Kalender

Warte kurz, während wir den Kalender laden

Tag-Cloud

Video AutoCAD Update Plot-Maßstab OOPS AutoCAD Sicherheit STRG Zurückgeben BIM 360 E-Auto 3D-Druck Zeichnungen verschicken Umwelt HSMWORKS Befehlshistory Autodesk RevWolke Gummiband Linie Design Automation API externe Referenz Farbbuch 2018 NWD Objektfang Einstellung Plot Borrowlicense Kabeltragsystem Zeichnungs Name XRef Microsoft Surface Book NWD anhängen Navisworks Rechnen DPI Skaling Vererbung Auflösung 3D Befehl SSL-Zertifizierung Microsoft Revisionswolken Kopieren fehlgeschalgen Block temporäre Dateien vlax-ldata-put Linienstärke License Fehlerbericht OAuth Recruiter Schicken wir ein Schiff Zwischenablage Petition Beschriftungsmaßstab SV$ Layerdialog gefüllte Flächen Eigenschaft Strom Umgrenzung Layer Überschreibung RestSharp Surface Pro 4 Autodesk Fusion 360 .net Externe Referenz OSMODE Hololens Seenotrettung Höhekote Solid SetByLayer Lisp ruft C# auf Pointcloud Geschwindigkeit Plotten Deklaration Forge DevCon Layer Ansichtsfenster https VLAX Request Viren Excel DText ObjectARX Laden NWG einfügen Bereinigen Produktschlüssel Rechner Koordinationsmodell HTTP-Request Security Schöne Zeichnung bewegen Mitte zwischen zwei Punkte Sonderzeichen Rechtsklickanpassung löschen E-Mobilität 2-legged Viewer Freedom Cloud AC$ Bezug Variable Öffnen fremde Zeichnung OSNAP Interview Texthöhe Cloud Accelerator Varia 3-legged Webservice Niedaks Objektfang See Watch Vlax-ldata Docking Maya refenziert sich selbst Industrie 4.0 Appload TrustedPath Taschenrechner Plotstil Forge PUK CAD Volvo Ocean Race Rechte Maustaste Update eTransmit Beziehungen Vlax-ldata-list Erhebung Surface Book angenommener Schnittpunkt Flüchtling Entertaste external rules Client-ID Übersetzung cURL nach C# Bereinig vlax-ldata-get C# Richtung umkehren Überschreibung BAK Pantone Ford defekte Zeichung Command Wiederherstellen Externe Regeln Befehls Übersetzung ServicePack Zuschneiden Harp RAL Einheiten Generative Design Fusion 360 Image Autodesk Gallery AutoCAD Objektmodell PDF Maßstab Benutzeroberfläche vonLayer Temporäre Dateien Abhängigkeiten Elektromobilität MoveBak Schrift Online-Seminar Beschriftungsmaßstäbe Schraffur Volvo Hybrid Architektur Hardwarebeschleunigung Surface AutoCAD 2019 Ultra HD Datentypen Plotstiltabellen Casting Profil Inventor Enter ViewCube AU Parameter http Returntaste Kobalt cURL Autorisierung Optionen Darmstadt Einbetten Command Definition AWS Speicherort MAXACTVP assoc Return Kabeltrasse Powerpointfolien Schulung Sichtbarkeit Layer frieren Wipeout Layout Surface Pro4 Rechtsklick Linientypfaktor iLogic Netload Neu erstellen Cloud Act leere Texte AutoCAD LT Objekte isolieren Objekte zoomen Farbbücher Sicherungsdatei History OBO-Bettermann Schnellzugriffs-Werkzeugkasten Design Center Befehlsübersetzung Performance Autodesk CAM SELECTIONOFFSCREEN Barcode Werkzeugpalette Visual Lisp Personaldienstleister byLayer Vorlage Internationaler Befehlssatz Einfügen SecureLoad Schnittpunkt WHIPTHREAD XREF Anischtfenster Microsoft Surface Pro 4 Drehen Update 2018 Hohe Auflösung MText Zoom Autodesk Forge BIM 360 API Anmeldung Brennstoffzelle Lizenz Server Attribut hinzufügen Fusion Plot Maßstab Wasserstoff Lisp Transformation Save folder Datei anhängen OFang Objektwahl Umschalttaste Oscar Datensicherheit Transparenz Indiara SFair Vorlagen Schraubverbindung Claudius Peters internationaler Befehlssatz Autoriserung Personal Dienstleister Attribut unbenannte Objekte Objekteigenschaft Lizenz shift Batterie Referenz europäische Datenschutz Richtlinie Flexlm Genertive Design Text Text einrahmen Objekte erstellen Punktwolke BIM Suchen Speichern Timeout Schriftfeld Hochgestellte Zahl Lynn Allen .Net Core DevCon Netzwerk Lizenz Befehls Definition Naviswork Shift Taste Revisionswolke Youtube QRCode .Net Datenverknüpfung Recycling Views Whitepaper Architekten Netzwerk Bemaßung Kabelrinne 3-Legged Autorizierung HSM Linientyp CAD-Becker Scheinselbstständigkeit Hotfix Listen Richtung Entleihen Skalierung Objekte wählen CAD-Becker.de

Kontakt

Jürgen A. Becker

CAD-Becker.de
Detmolder Str. 786
33699 Bielefeld
Germany
Telefon
+49 (5202) 9953808 
Mobil
+49 170 870 8679
E-Mail
Juergen.Becker(at)CAD-Becker.de

Menu-de