Zum Inhalt springen

CAD XML Syntax-Objekt VC_AreaCADLTK und VC_AreaCADAlkisDE

Aus VermCAD Hilfe Wiki
Version vom 20. Juli 2026, 13:50 Uhr von Hahn (Diskussion | Beiträge) (CAD-XML-Syntax-Dokumentation (automatischer Import))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Spezial-Flächen der Sachsen-Anhalt-Version (LTK = Linien-Teilungs-Kennzeichnung/„Zitronenschalen", DE = ALKIS-Dateneinheiten). Delphi-Klassen sind T2DAreaLTK (XML-Tag VC_AreaCADLTK) und T2DAreaAlkisDE (XML-Tag VC_AreaCADAlkisDE), beide in CAD\GLGeometrics.pas und nur unter {$IFDEF Anhalt} übersetzt. Beide erben über die Zwischenklasse T2DAreaLTKDE von T2DArea — die gesamte Rand-Mechanik entspricht VC_CADFlaeche.

VC_AreaCADLTK

Strukturregel

<VC_AreaCADLTK>
  <VermCadID> … </VermCadID>                     (siehe VermCadID-Block; CADObjektArt=cadFlaeche)
  [Basiselemente]                                (siehe Basiselemente; Layer ist Pflicht)
  <Rand>
    <Exterior GUID="guid"/>
    {<Interior GUID="guid"/>}*
  </Rand>
</VC_AreaCADLTK>

T2DAreaLTK hat keine eigenen XML-Elemente — es wird exakt die T2DArea-Serialisierung geerbt (Rand + optional BoeschungsInfos + Basiselemente). Das einzige Unterscheidungsmerkmal in der Datei ist das Wurzeltag.

Referenzen

Wie bei VC_CADFlaeche: Exterior ist harte Pflicht-Referenz auf eine geschlossene Kurve, Interior weich. Die Verknüpfung zu den beiden LTK-Bezugspunkten (BezugspunkteItem) wird nicht im Objekt gespeichert — sie wird nach dem Laden von der ALKIS-Seite (LTK-Daten in der VC_AlkisDaten-Sektion) wiederhergestellt.

VC_AreaCADAlkisDE

Strukturregel

<VC_AreaCADAlkisDE>
  <VermCadID> … </VermCadID>                     (siehe VermCadID-Block; CADObjektArt=cadFlaeche)
  [Basiselemente]
  <Rand>
    <Exterior GUID="guid"/>
    {<Interior GUID="guid"/>}*
  </Rand>
  <AlkisDEShowPermanent>bool</AlkisDEShowPermanent>   (wird immer geschrieben)
  <AlkisDEItemName>text</AlkisDEItemName>             (wird immer geschrieben)
</VC_AreaCADAlkisDE>

Elemente

Nur die eigenen Elemente von T2DAreaAlkisDE:

Element Typ/Format Pflicht Default Bedeutung
AlkisDEShowPermanent bool (-1/0) nein (wird aber immer geschrieben) False DE-Fläche permanent anzeigen (sonst nur, wenn das DE-Item die aktuelle CAD-Repräsentation ist)
AlkisDEItemName String ja (für die DE-Verknüpfung) Name der ALKIS-Dateneinheit — namensbasierte Verknüpfung: die ALKIS-Seite (TAlkisDE) sucht nach dem Laden die CAD-Fläche, deren AlkisDEItemName ihrem Namen entspricht. Fehlt der Name oder gibt es die DE nicht mehr, bleibt die Fläche unverknüpft (weich, kein Objektverlust)

Minimalform

<VC_AreaCADAlkisDE>
  <VermCadID>
    <GUID>{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}</GUID>
    <ObjektArt>oaVC</ObjektArt>
    <CADObjektArt>cadFlaeche</CADObjektArt>
  </VermCadID>
  <Layer>-102</Layer>
  <Rand>
    <Exterior GUID="{XXXX…}"/>
  </Rand>
  <AlkisDEShowPermanent>0</AlkisDEShowPermanent>
  <AlkisDEItemName>DE 10-56 / 10-57</AlkisDEItemName>
</VC_AreaCADAlkisDE>

Für VC_AreaCADLTK gilt dieselbe Minimalform ohne die beiden DE-Elemente. Die Exterior-GUID muss auf ein existierendes geschlossenes Ring-Objekt zeigen, sonst wird die Fläche beim Laden verworfen.

Beispiele

Beispiel (KONSTRUIERT — die drei Beispielprojekte sind BW/Sachsen/THR, kein Anhalt-Beleg vorhanden)

<VC_AreaCADLTK>
  <VermCadID>
    <GUID>{1A2B3C4D-…}</GUID>
    <ObjektArt>oaVC</ObjektArt>
    <CADObjektArt>cadFlaeche</CADObjektArt>
  </VermCadID>
  <Layer>-102</Layer>
  <Rand>
    <Exterior GUID="{5E6F7A8B-…}"/>
  </Rand>
</VC_AreaCADLTK>

Verfügbarkeit und Besonderheiten

  • Nur Sachsen-Anhalt ({$IFDEF Anhalt}): In allen anderen Bundesland-Versionen sind die Tags nicht in der Objekt-Factory registriert — die Elemente würden beim Laden stillschweigend ignoriert.
  • Kein Bestandsbeleg: In den drei untersuchten Beispielprojekten (BW/Sachsen/THR) kommen beide Tags nicht vor; alle Beispiele auf dieser Seite sind nach den Code-Regeln konstruiert.
  • KS-0-Bindung: Beim Referenzen-Update setzen beide Klassen Deleted := True, wenn die umgebende VCCADDaten-Sektion nicht KSID 0 ist — LTK-/DE-Flächen leben nur im Koordinatensystem 0 und werden in anderen KS-Sektionen beim Laden entsorgt (und nicht erneut gespeichert).
  • Beide Objekte sind im CAD nie verschiebbar — sie folgen ihren Bezugspunkten (Geometrie wird von der ALKIS-Seite aktualisiert).
  • Schreibreihenfolge im Manager: T2DAreaLTK wird in der Objektgruppe „Flächen" geschrieben, T2DAreaAlkisDE als eigene Gruppe direkt danach (beide nur Anhalt).
  • Sichtbarkeit der DE-Fläche zur Laufzeit: nur wenn AlkisDEShowPermanent gesetzt ist oder das DE-Item gerade als CAD-Repräsentation aktiv ist.

Quellen im Code

  • CAD\GLGeometrics.pas:3601-3651 — Klassendeklarationen T2DAreaLTKDE/T2DAreaLTK (keine eigenen XML-Methoden bei LTK)
  • CAD\GLGeometrics.pas:3653-3702 — Klassendeklaration T2DAreaAlkisDE
  • CAD\GLGeometrics.pas:65419-65454 — T2DAreaAlkisDE.DataToXMLLite (beide Elemente bedingungslos)
  • CAD\GLGeometrics.pas:65528-65554 — T2DAreaAlkisDE.InternalCreateFromXML
  • CAD\GLGeometrics.pas:65115-65125 und 65380-65389 — SetReferencesAndUpdate (Deleted bei KSID ≠ 0)
  • Alkis\TAlkisDEUnit.pas:334 — namensbasierte Suche der CAD-Fläche über AlkisDEItemName
  • CAD\GLGeometrics.pas:97015, 97016ff — Factory-Registrierung (nur Anhalt)
  • VERMCAD\GlobalConsts.pas:4702 — Tag-Konstanten xn_AlkisDEItemName/xn_AlkisDEShowPermanent



[Nach oben]