<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.vermcad.de/index.php?action=history&amp;feed=atom&amp;title=CAD_XML_Syntax-Objekt_VC_CADVCBerechnung_und_VCMessung</id>
	<title>CAD XML Syntax-Objekt VC CADVCBerechnung und VCMessung - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vermcad.de/index.php?action=history&amp;feed=atom&amp;title=CAD_XML_Syntax-Objekt_VC_CADVCBerechnung_und_VCMessung"/>
	<link rel="alternate" type="text/html" href="https://wiki.vermcad.de/index.php?title=CAD_XML_Syntax-Objekt_VC_CADVCBerechnung_und_VCMessung&amp;action=history"/>
	<updated>2026-11-03T06:37:50Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in VermCAD Hilfe Wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.vermcad.de/index.php?title=CAD_XML_Syntax-Objekt_VC_CADVCBerechnung_und_VCMessung&amp;diff=8212&amp;oldid=prev</id>
		<title>Hahn: CAD-XML-Syntax-Dokumentation (automatischer Import)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vermcad.de/index.php?title=CAD_XML_Syntax-Objekt_VC_CADVCBerechnung_und_VCMessung&amp;diff=8212&amp;oldid=prev"/>
		<updated>2026-07-20T12:50:33Z</updated>

		<summary type="html">&lt;p&gt;CAD-XML-Syntax-Dokumentation (automatischer Import)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:CAD XML Syntax-Objekt VC_CADVCBerechnung und VC_CADVCMessung}}&lt;br /&gt;
Berechnung und Messung sind die CAD-Repräsentanten der VermCad-Rechenmakros und Messblöcke: Sie bündeln alle zu einem Makro gehörenden Darstellungs-Objekte (Punkte, Linien, Maßtexte …) als Kompo und verknüpfen sie über die Makro-ID mit der Berechnung/Messung im Projekt. Delphi-Klassen sind &amp;lt;code&amp;gt;T3DVCBerechnung&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;CAD\GLVCBerechnung.pas&amp;lt;/code&amp;gt;, XML-Tag &amp;lt;code&amp;gt;VC_CADVCBerechnung&amp;lt;/code&amp;gt;) und &amp;lt;code&amp;gt;T3DVCMessung&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;CAD\GLVCMessung.pas&amp;lt;/code&amp;gt;, XML-Tag &amp;lt;code&amp;gt;VC_CADVCMessung&amp;lt;/code&amp;gt;). Die komplette XML-Serialisierung liegt in der gemeinsamen Basisklasse &amp;lt;code&amp;gt;T3DVCCalcMess&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas&amp;lt;/code&amp;gt;), die von [[CAD XML Syntax-Objekt VC CADKompo|T3DKompo (VC_CADKompo)]] erbt — beide Objekte sind also Kompos mit Zusatzdaten. Die Element-Namen tragen aus historischen Gründen für beide Objekte das Präfix &amp;lt;code&amp;gt;VC_CADVCBerechnung…&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;VC_CADVCBer…&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Strukturregel ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCBerechnung&amp;gt;  |  &amp;lt;VC_CADVCMessung&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt; … &amp;lt;/VermCadID&amp;gt;                     (siehe VermCadID-Block; CADObjektArt=cadKompo)&lt;br /&gt;
  [Basiselemente]                                (siehe Basiselemente; Layer ist Pflicht,&lt;br /&gt;
                                                  typisch negativer System-Layer)&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;                                  (geerbt von Kompo: alle zugehörigen CAD-Objekte)&lt;br /&gt;
    {&amp;lt;Member GUID=&amp;quot;guid&amp;quot;/&amp;gt;}*&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  ### REIHENFOLGE DER FOLGENDEN 5 ELEMENTE IST ZWINGEND ###&lt;br /&gt;
  &amp;lt;MakroIDType&amp;gt;enum:TMakroType&amp;lt;/MakroIDType&amp;gt;     (1. — Makrotyp)&lt;br /&gt;
  &amp;lt;MakroIDNr&amp;gt;ganzzahl&amp;lt;/MakroIDNr&amp;gt;                (2. — Makronummer)&lt;br /&gt;
  &amp;lt;MakroIDName&amp;gt;text | leer&amp;lt;/MakroIDName&amp;gt;         (3. — Makroname, darf leer sein)&lt;br /&gt;
  &amp;lt;VC_CADVCBerCalcKind&amp;gt;enum:TCalcKind&amp;lt;/VC_CADVCBerCalcKind&amp;gt;   (4. — Berechnungsart)&lt;br /&gt;
  &amp;lt;CalcItemActive&amp;gt;bool&amp;lt;/CalcItemActive&amp;gt;&lt;br /&gt;
  [&amp;lt;VC_CADVCBerechnungSettings&amp;gt;                  (5. — NACH CalcKind!)&lt;br /&gt;
     {&amp;lt;PropertyName&amp;gt;wert&amp;lt;/PropertyName&amp;gt;}*        (RTTI: Elementname = Delphi-Property-Name)&lt;br /&gt;
   &amp;lt;/VC_CADVCBerechnungSettings&amp;gt;]&lt;br /&gt;
  {&amp;lt;VC_CADVCBerechnungList&amp;gt;                      (0..n Ergebnis-/Untergliederungslisten;&lt;br /&gt;
     &amp;lt;VC_CADVCBerechnungListName&amp;gt;text&amp;lt;/VC_CADVCBerechnungListName&amp;gt;          KEINE eigenen Objekte!)&lt;br /&gt;
     &amp;lt;VC_CADVCBerechnungListNR&amp;gt;ganzzahl&amp;lt;/VC_CADVCBerechnungListNR&amp;gt;&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListKindBaseType&amp;gt;enum&amp;lt;/VC_CADVCBerechnungListKindBaseType&amp;gt;]&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListKindType&amp;gt;text&amp;lt;/VC_CADVCBerechnungListKindType&amp;gt;]&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListCounterNr&amp;gt;ganzzahl&amp;lt;/VC_CADVCBerechnungListCounterNr&amp;gt;]&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListKindName&amp;gt;text&amp;lt;/VC_CADVCBerechnungListKindName&amp;gt;]&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListDeactivated&amp;gt;bool&amp;lt;/VC_CADVCBerechnungListDeactivated&amp;gt;]&lt;br /&gt;
     [&amp;lt;VC_CADVCBerechnungListSysID&amp;gt;ganzzahl&amp;lt;/VC_CADVCBerechnungListSysID&amp;gt;]&lt;br /&gt;
     [&amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
        {&amp;lt;Member GUID=&amp;quot;guid&amp;quot; [RefGUID=&amp;quot;guid&amp;quot;] [Counter=&amp;quot;ganzzahl&amp;quot;]/&amp;gt;}*&lt;br /&gt;
      &amp;lt;/MemberGroup&amp;gt;]&lt;br /&gt;
   &amp;lt;/VC_CADVCBerechnungList&amp;gt;}*&lt;br /&gt;
&amp;lt;/VC_CADVCBerechnung&amp;gt;  |  &amp;lt;/VC_CADVCMessung&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geerbte Elemente: [[CAD XML Syntax-VermCadID und GUID-Referenzen|VermCadID-Block]], [[CAD XML Syntax-Basiselemente|Basiselemente]] und die &amp;lt;code&amp;gt;MemberGroup&amp;lt;/code&amp;gt; von [[CAD XML Syntax-Objekt VC CADKompo|Kompo]]; Werteformate: [[CAD XML Syntax-Werte- und Koordinatenformate|Werteformate]].&lt;br /&gt;
&lt;br /&gt;
== Zwingende Element-Reihenfolge ==&lt;br /&gt;
Der Leser wertet die fünf Kernelemente &amp;#039;&amp;#039;&amp;#039;in Dokumentreihenfolge&amp;#039;&amp;#039;&amp;#039; aus — ein Erzeuger MUSS schreiben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;MakroIDType&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;MakroIDNr&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;MakroIDName&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;VC_CADVCBerCalcKind&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;VC_CADVCBerechnungSettings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gründe (im Code mehrfach als „### ACHTUNG ###&amp;quot; dokumentiert):&lt;br /&gt;
# &amp;lt;code&amp;gt;MakroIDNr&amp;lt;/code&amp;gt; holt die &amp;lt;code&amp;gt;TVCMakroID&amp;lt;/code&amp;gt; vom IDServer &amp;#039;&amp;#039;&amp;#039;mit dem zuvor gelesenen Typ&amp;#039;&amp;#039;&amp;#039; — steht der Typ noch nicht, entsteht die falsche Makro-Verknüpfung.&lt;br /&gt;
# &amp;lt;code&amp;gt;MakroIDName&amp;lt;/code&amp;gt; setzt den Namen &amp;#039;&amp;#039;&amp;#039;an der bereits erzeugten&amp;#039;&amp;#039;&amp;#039; MakroID.&lt;br /&gt;
# Der Setter von &amp;lt;code&amp;gt;VC_CADVCBerCalcKind&amp;lt;/code&amp;gt; erzeugt das &amp;lt;code&amp;gt;CalcMessViewObjekt&amp;lt;/code&amp;gt; (Settings-Träger).&lt;br /&gt;
# &amp;lt;code&amp;gt;VC_CADVCBerechnungSettings&amp;lt;/code&amp;gt; vor &amp;lt;code&amp;gt;CalcKind&amp;lt;/code&amp;gt; → das Settings-Objekt existiert noch nicht; der Leser loggt „Einstellungen … konnten nicht korrekt eingelesen werden&amp;quot; und &amp;#039;&amp;#039;&amp;#039;verwirft die Settings&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Elemente ==&lt;br /&gt;
Nur die eigenen Elemente von &amp;lt;code&amp;gt;T3DVCCalcMess&amp;lt;/code&amp;gt; (zusätzlich zu Kompo/Basis):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Element !! Typ/Format !! Pflicht !! Default !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MakroIDType&amp;lt;/code&amp;gt; || enum:TMakroType || praktisch ja (geschrieben, wenn MakroID existiert) || — || Makrotyp: &amp;lt;code&amp;gt;mt_Calc&amp;lt;/code&amp;gt; (Berechnung), &amp;lt;code&amp;gt;mt_Mess&amp;lt;/code&amp;gt; (Tachymeter-Messung), &amp;lt;code&amp;gt;mt_NetzMess&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;mt_GNSSMess&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MakroIDNr&amp;lt;/code&amp;gt; || ganzzahl || praktisch ja || — || Makronummer; eindeutig je Makrotyp (und KS) — verknüpft das CAD-Objekt mit der Berechnung/Messung im IDServer des Projekts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MakroIDName&amp;lt;/code&amp;gt; || text || praktisch ja (darf leer sein: &amp;lt;code&amp;gt;&amp;amp;lt;MakroIDName /&amp;amp;gt;&amp;lt;/code&amp;gt;) || &amp;#039;&amp;#039; || Makroname; bei Messungen z. B. der Standpunktname&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerCalcKind&amp;lt;/code&amp;gt; || enum:TCalcKind || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; (wird immer geschrieben) || — || Berechnungs-/Messungsart, siehe Enum-Tabelle unten; der Setter erzeugt das Settings-Objekt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CalcItemActive&amp;lt;/code&amp;gt; || bool (-1/0) || nein (wird immer geschrieben) || — || Berechnungs-Item aktiv&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungSettings&amp;lt;/code&amp;gt; || Container || nein || — || Darstellungs-Einstellungen, RTTI-basiert (siehe unten)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungList&amp;lt;/code&amp;gt; || Container, 0..n || nein || — || Untergliederung in Einzel-Listen (z. B. je Messblock, je Transformations-System); &amp;#039;&amp;#039;&amp;#039;keine eigenständigen CAD-Objekte&amp;#039;&amp;#039;&amp;#039; — kein VermCadID, keine GUID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Enum TCalcKind (alle 43 Werte, in Deklarationsreihenfolge) ===&lt;br /&gt;
Quelle: &amp;lt;code&amp;gt;VERMCAD\GlobalTypes.pas:397-441&amp;lt;/code&amp;gt;. Geschrieben wird immer der GetEnumName-String:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Wert !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Entfernung&amp;lt;/code&amp;gt; || Entfernungsberechnung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_KoordinatenVergleich&amp;lt;/code&amp;gt; || Koordinatenvergleich&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Fassade&amp;lt;/code&amp;gt; || Fassade (neu ab Version 5.0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_LinienElement&amp;lt;/code&amp;gt; || Linienelement&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_KleinPunkt&amp;lt;/code&amp;gt; || Kleinpunktberechnung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_MessLinie&amp;lt;/code&amp;gt; || Messungslinie&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_PolygonPunkt&amp;lt;/code&amp;gt; || Polygonpunkt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_BogenElement&amp;lt;/code&amp;gt; || Bogenelement&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_BogenPunkt&amp;lt;/code&amp;gt; || Bogenpunkt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_AusgleichGeraden&amp;lt;/code&amp;gt; || Ausgleichsgerade&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Kreis&amp;lt;/code&amp;gt; || Kreisberechnung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Klotoide&amp;lt;/code&amp;gt; || Klotoide&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_LotFussPunkt&amp;lt;/code&amp;gt; || Lotfußpunkt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_RichtungFussPunkt&amp;lt;/code&amp;gt; || Richtungsfußpunkt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_GeradenSchnitt&amp;lt;/code&amp;gt; || Geradenschnitt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_KreisGeradeSchnitt&amp;lt;/code&amp;gt; || Schnitt Kreis–Gerade&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_BogenSchnitt&amp;lt;/code&amp;gt; || Bogenschnitt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_MultiBogenSchnitt&amp;lt;/code&amp;gt; || Mehrfach-Bogenschnitt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_VorwaertsSchnitt&amp;lt;/code&amp;gt; || Vorwärtsschnitt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Flaeche&amp;lt;/code&amp;gt; || Flächenberechnung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Winkel&amp;lt;/code&amp;gt; || Winkelberechnung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_PolarElement&amp;lt;/code&amp;gt; || Polarelement&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_PolarPunkt&amp;lt;/code&amp;gt; || Polarpunkt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Mittelwert&amp;lt;/code&amp;gt; || Mittelwertbildung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Transformation&amp;lt;/code&amp;gt; || Transformation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_KsTransformation&amp;lt;/code&amp;gt; || Koordinatensystem-Transformation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_MaschenweiseTransformation&amp;lt;/code&amp;gt; || maschenweise Transformation (neu ab Version 5.0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_MaschenweiseKsTransformation&amp;lt;/code&amp;gt; || maschenweise KS-Transformation (neu ab Version 5.0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Grenzpruefung&amp;lt;/code&amp;gt; || Grenzprüfung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Punktidentitaet&amp;lt;/code&amp;gt; || Punktidentitätsnachweis&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_PolygonZug&amp;lt;/code&amp;gt; || Polygonzug&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_NetzAusgleichYX&amp;lt;/code&amp;gt; || Netzausgleichung Lage (Y/X)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_NetzAusgleichZ&amp;lt;/code&amp;gt; || Netzausgleichung Höhe (Z)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Nivellement&amp;lt;/code&amp;gt; || Nivellement&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_VkTransformation&amp;lt;/code&amp;gt; || VK-Transformation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_GebaeudeUmringAusgleichung&amp;lt;/code&amp;gt; || Gebäudeumring-Ausgleichung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Ebenheit&amp;lt;/code&amp;gt; || Ebenheitsprüfung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Trasse&amp;lt;/code&amp;gt; || Trasse&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_EinfluchtenGerade&amp;lt;/code&amp;gt; || Einfluchten in Gerade (neu 07/2026)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_EinfluchtenBogen&amp;lt;/code&amp;gt; || Einfluchten in Bogen (neu 07/2026)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_GNSSMess&amp;lt;/code&amp;gt; || GNSS-Messung (typisch bei &amp;lt;code&amp;gt;VC_CADVCMessung&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_TachyMess&amp;lt;/code&amp;gt; || Tachymeter-Messung (typisch bei &amp;lt;code&amp;gt;VC_CADVCMessung&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca_Calculations&amp;lt;/code&amp;gt; || Sammelliste aller Berechnungen (außer Netz)&lt;br /&gt;
|}&lt;br /&gt;
Real belegt in den Beispielprojekten: &amp;lt;code&amp;gt;ca_AusgleichGeraden&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_Entfernung&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_GNSSMess&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_GeradenSchnitt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_KleinPunkt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_KreisGeradeSchnitt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_LinienElement&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_LotFussPunkt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_MessLinie&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_TachyMess&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ca_VkTransformation&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Settings-Container (RTTI-Prinzip) ===&lt;br /&gt;
&amp;lt;code&amp;gt;VC_CADVCBerechnungSettings&amp;lt;/code&amp;gt; wird &amp;#039;&amp;#039;&amp;#039;per RTTI&amp;#039;&amp;#039;&amp;#039; geschrieben: Alle PUBLISHED Properties des jeweiligen &amp;lt;code&amp;gt;TCalcView…Objekt&amp;lt;/code&amp;gt; (Klassen je CalcKind in &amp;lt;code&amp;gt;CAD\GLCalcViewManager.pas&amp;lt;/code&amp;gt;) der Typen Integer, Enum und String werden als Kindelemente &amp;lt;code&amp;gt;&amp;amp;lt;PropertyName&amp;amp;gt;Wert&amp;amp;lt;/PropertyName&amp;amp;gt;&amp;lt;/code&amp;gt; ausgegeben — &amp;#039;&amp;#039;&amp;#039;Elementname = exakter Delphi-Property-Name&amp;#039;&amp;#039;&amp;#039;. Gelesen wird spiegelbildlich über &amp;lt;code&amp;gt;CalcMessViewObjekt.ReadFromXML&amp;lt;/code&amp;gt;; die konkreten Element-Namen variieren daher je nach CalcKind und Programmversion und sind hier nicht abschließend aufzählbar.&lt;br /&gt;
&lt;br /&gt;
Regeln für Erzeuger/Reparierer:&lt;br /&gt;
* Immer vorhanden (Basisklasse &amp;lt;code&amp;gt;TCalcViewBaseObjekt&amp;lt;/code&amp;gt;): &amp;lt;code&amp;gt;Active&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;TextLayerID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ausnahme vom Bool-Format:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;Active&amp;lt;/code&amp;gt; wird über RTTI als String &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;False&amp;lt;/code&amp;gt; geschrieben — nicht als -1/0 wie alle anderen Bool-Elemente!&lt;br /&gt;
* Alle weiteren Properties sind fast durchweg Layer-IDs (Integer, -1 = nicht gesetzt), z. B. bei &amp;lt;code&amp;gt;ca_MessLinie&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;NachweisLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BemerkungLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BaseLinienObjLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AnfangsmassLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ZwischenmassLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;EndmassLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PunkteLinienObjLayerID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ElementeLinienObjLayerID&amp;lt;/code&amp;gt; u. a.; bei &amp;lt;code&amp;gt;ca_GNSSMess&amp;lt;/code&amp;gt; nur &amp;lt;code&amp;gt;Active&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;TextLayerID&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Unbekannte/überzählige Kindelemente sind unkritisch (werden ignoriert); minimal genügt &amp;lt;code&amp;gt;&amp;amp;lt;Active&amp;amp;gt;True&amp;amp;lt;/Active&amp;amp;gt;&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;&amp;amp;lt;TextLayerID&amp;amp;gt;-1&amp;amp;lt;/TextLayerID&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Der Container darf ganz fehlen; er wird nur geschrieben/gelesen, wenn ein CalcMessViewObjekt existiert (d. h. CalcKind wurde vorher gesetzt).&lt;br /&gt;
&lt;br /&gt;
=== Kindelemente von VC_CADVCBerechnungList ===&lt;br /&gt;
Ein &amp;lt;code&amp;gt;VC_CADVCBerechnungList&amp;lt;/code&amp;gt;-Block (Klasse &amp;lt;code&amp;gt;T3DVCBerechnungsItemListContainer&amp;lt;/code&amp;gt;) ist reine Untergliederung — kein CAD-Objekt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kind-Element !! Typ/Format !! Pflicht !! Default !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListName&amp;lt;/code&amp;gt; || text || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; || — || Listenname; der Block wird beim Lesen NUR übernommen, wenn Name UND NR gesetzt sind&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListNR&amp;lt;/code&amp;gt; || ganzzahl ≥ 0 || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; || — || Listen-/Makronummer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListKind&amp;lt;/code&amp;gt; || ganzzahl || nein — &amp;#039;&amp;#039;&amp;#039;Legacy&amp;#039;&amp;#039;&amp;#039; (wird seit 28.01.2026 nicht mehr geschrieben) || -1 || alte numerische Kind-Kodierung; wird beim Lesen in KindBaseType/KindType migriert (siehe Besonderheiten)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListKindBaseType&amp;lt;/code&amp;gt; || enum || nein || &amp;lt;code&amp;gt;kbt_None&amp;lt;/code&amp;gt; (nicht geschrieben) || Basistyp des Listen-Kinds: &amp;lt;code&amp;gt;kbt_None&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kbt_VkTransformation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kbt_Punktidentitaet&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kbt_MaschenTrafo&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListKindType&amp;lt;/code&amp;gt; || text (Enum-Name) || nein || &amp;#039;&amp;#039; || konkreter Kind-Typ als Enum-Name der Zieltypen, z. B. &amp;lt;code&amp;gt;vaYX&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;vaUnknown&amp;lt;/code&amp;gt; (TVAObservationKind) oder ein TPIdKind-Name&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListCounterNr&amp;lt;/code&amp;gt; || ganzzahl ≥ 0 || nein || 0 || laufende Nummer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListKindName&amp;lt;/code&amp;gt; || text || nein || &amp;#039;&amp;#039; || Anzeigename des Kinds (z. B. Systemname einer VK-Transformation)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListDeactivated&amp;lt;/code&amp;gt; || bool || nein (nur geschrieben, wenn True) || False || Liste deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;VC_CADVCBerechnungListSysID&amp;lt;/code&amp;gt; || ganzzahl &amp;gt; 0 || nein || 0 || Unter-System-ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MemberGroup&amp;lt;/code&amp;gt; || Container || nein || — || Listen-Mitglieder; hier tragen die &amp;lt;code&amp;gt;Member&amp;lt;/code&amp;gt;-Elemente die Daten als &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;GUID&amp;lt;/code&amp;gt; (CAD-Objekt), optional &amp;lt;code&amp;gt;RefGUID&amp;lt;/code&amp;gt; (Quell-Referenzpunkt), optional &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; (Zähler ≥ 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Referenzen ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Referenz !! Ziel !! Pflicht !! Verhalten bei fehlendem Ziel&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MemberGroup/Member&amp;lt;/code&amp;gt; (äußere, geerbt) || beliebige CAD-Objekte des Makros (Punkte, Linien, Texte …) || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; (≥ 1) || wie beim [[CAD XML Syntax-Objekt VC CADKompo|Kompo]]: nicht auflösbare Referenzen führen nach dem „LastTry&amp;quot; zur Zerstörung des Objekts; anders als beim reinen Kompo genügt hier bereits &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; Member&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Member@GUID&amp;lt;/code&amp;gt; (in Listen-MemberGroup) || dieselben CAD-Objekte wie in der äußeren MemberGroup || praktisch ja || fehlt das Attribut, wird die GUID als Workaround aus der Kompo-Kinderliste positionsbasiert rekonstruiert; ungültige Werte → Logeintrag, Eintrag übersprungen (weiche Referenz)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Member@RefGUID&amp;lt;/code&amp;gt; || Quell-Referenzobjekt des Members — bei Messungen der gemessene Original-Punkt, dessen Darstellungs-Objekt der Member ist || nein || weiche Referenz (nur Verzahnungs-Info)&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Verzahnung Berechnung ↔ Messung:&amp;#039;&amp;#039;&amp;#039; Über &amp;lt;code&amp;gt;RefGUID&amp;lt;/code&amp;gt; zeigt ein Listen-Member (z. B. der von einer GNSS-Messung erzeugte CAD-Punkt) auf sein Quellobjekt. So bleibt nachvollziehbar, welches Messungs-Objekt welches Zielobjekt erzeugt hat; Paare mit gleichem &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; gehören zusammen (z. B. Punkt + Punktnummerntext derselben Messung Nr. n).&lt;br /&gt;
&lt;br /&gt;
== Minimalform ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCBerechnung&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt;&lt;br /&gt;
    &amp;lt;GUID&amp;gt;{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}&amp;lt;/GUID&amp;gt;&lt;br /&gt;
    &amp;lt;ObjektArt&amp;gt;oaVC&amp;lt;/ObjektArt&amp;gt;&lt;br /&gt;
    &amp;lt;CADObjektArt&amp;gt;cadKompo&amp;lt;/CADObjektArt&amp;gt;&lt;br /&gt;
  &amp;lt;/VermCadID&amp;gt;&lt;br /&gt;
  &amp;lt;Layer&amp;gt;-5200&amp;lt;/Layer&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{XXXX…}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDType&amp;gt;mt_Calc&amp;lt;/MakroIDType&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDNr&amp;gt;1&amp;lt;/MakroIDNr&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDName&amp;gt;1&amp;lt;/MakroIDName&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerCalcKind&amp;gt;ca_KleinPunkt&amp;lt;/VC_CADVCBerCalcKind&amp;gt;&lt;br /&gt;
  &amp;lt;CalcItemActive&amp;gt;-1&amp;lt;/CalcItemActive&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
    &amp;lt;Active&amp;gt;True&amp;lt;/Active&amp;gt;&lt;br /&gt;
    &amp;lt;TextLayerID&amp;gt;-1&amp;lt;/TextLayerID&amp;gt;&lt;br /&gt;
  &amp;lt;/VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADVCBerechnung&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Für &amp;lt;code&amp;gt;VC_CADVCMessung&amp;lt;/code&amp;gt; identisch mit &amp;lt;code&amp;gt;MakroIDType&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;mt_Mess&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;mt_GNSSMess&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;mt_NetzMess&amp;lt;/code&amp;gt; und passendem CalcKind (&amp;lt;code&amp;gt;ca_TachyMess&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ca_GNSSMess&amp;lt;/code&amp;gt;). Die 5-Elemente-Reihenfolge ist zwingend; die MakroIDNr sollte zu einer existierenden Berechnung/Messung des Projekts passen.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel VC_CADVCBerechnung (Baden-Württemberg 5.0.0, echt, gekürzt — MessLinie mit Settings und Ergebnisliste) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCBerechnung&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt;&lt;br /&gt;
    &amp;lt;GUID&amp;gt;{2D8D9A8D-…}&amp;lt;/GUID&amp;gt;&lt;br /&gt;
    &amp;lt;ObjektArt&amp;gt;oaVC&amp;lt;/ObjektArt&amp;gt;&lt;br /&gt;
    &amp;lt;CADObjektArt&amp;gt;cadKompo&amp;lt;/CADObjektArt&amp;gt;&lt;br /&gt;
  &amp;lt;/VermCadID&amp;gt;&lt;br /&gt;
  &amp;lt;Layer&amp;gt;-5200&amp;lt;/Layer&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{EC2B0EAF-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{F4914B8E-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    … (im Original 15 Member) …&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDType&amp;gt;mt_Calc&amp;lt;/MakroIDType&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDNr&amp;gt;7&amp;lt;/MakroIDNr&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDName&amp;gt;7&amp;lt;/MakroIDName&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerCalcKind&amp;gt;ca_MessLinie&amp;lt;/VC_CADVCBerCalcKind&amp;gt;&lt;br /&gt;
  &amp;lt;CalcItemActive&amp;gt;-1&amp;lt;/CalcItemActive&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
    &amp;lt;NachweisLayerID&amp;gt;-5201&amp;lt;/NachweisLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;BemerkungLayerID&amp;gt;-5202&amp;lt;/BemerkungLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;BaseLinienObjLayerID&amp;gt;-5205&amp;lt;/BaseLinienObjLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;AnfangsmassLayerID&amp;gt;-5203&amp;lt;/AnfangsmassLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;ZwischenmassLayerID&amp;gt;-5206&amp;lt;/ZwischenmassLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;EndmassLayerID&amp;gt;-5207&amp;lt;/EndmassLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;PunkteLinienObjLayerID&amp;gt;-5209&amp;lt;/PunkteLinienObjLayerID&amp;gt;&lt;br /&gt;
    &amp;lt;ElementeLinienObjLayerID&amp;gt;-5212&amp;lt;/ElementeLinienObjLayerID&amp;gt;&lt;br /&gt;
    … (weitere Layer-IDs gekürzt) …&lt;br /&gt;
    &amp;lt;Active&amp;gt;True&amp;lt;/Active&amp;gt;&lt;br /&gt;
    &amp;lt;TextLayerID&amp;gt;-1&amp;lt;/TextLayerID&amp;gt;&lt;br /&gt;
  &amp;lt;/VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListName&amp;gt;7&amp;lt;/VC_CADVCBerechnungListName&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListNR&amp;gt;7&amp;lt;/VC_CADVCBerechnungListNR&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListCounterNr&amp;gt;0&amp;lt;/VC_CADVCBerechnungListCounterNr&amp;gt;&lt;br /&gt;
    &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{F4914B8E-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{23E14A92-…}&amp;quot; RefGUID=&amp;quot;{5E840B97-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{FA2BB7DC-…}&amp;quot; Counter=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
      … (im Original 15 Member) …&lt;br /&gt;
    &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  &amp;lt;/VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADVCBerechnung&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel VC_CADVCMessung (echt, gekürzt — GNSS-Messung mit RefGUID-Verzahnung) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCMessung&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt;&lt;br /&gt;
    &amp;lt;GUID&amp;gt;{7457ECCD-…}&amp;lt;/GUID&amp;gt;&lt;br /&gt;
    &amp;lt;ObjektArt&amp;gt;oaVC&amp;lt;/ObjektArt&amp;gt;&lt;br /&gt;
    &amp;lt;CADObjektArt&amp;gt;cadKompo&amp;lt;/CADObjektArt&amp;gt;&lt;br /&gt;
  &amp;lt;/VermCadID&amp;gt;&lt;br /&gt;
  &amp;lt;Layer&amp;gt;-3002&amp;lt;/Layer&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{03C581E4-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{0A236819-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    … (im Original 14 Member) …&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDType&amp;gt;mt_Mess&amp;lt;/MakroIDType&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDNr&amp;gt;5&amp;lt;/MakroIDNr&amp;gt;&lt;br /&gt;
  &amp;lt;MakroIDName /&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerCalcKind&amp;gt;ca_GNSSMess&amp;lt;/VC_CADVCBerCalcKind&amp;gt;&lt;br /&gt;
  &amp;lt;CalcItemActive&amp;gt;-1&amp;lt;/CalcItemActive&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
    &amp;lt;Active&amp;gt;True&amp;lt;/Active&amp;gt;&lt;br /&gt;
    &amp;lt;TextLayerID&amp;gt;554&amp;lt;/TextLayerID&amp;gt;&lt;br /&gt;
  &amp;lt;/VC_CADVCBerechnungSettings&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListName&amp;gt;Block  8     GNSS - Messung     LS 489&amp;lt;/VC_CADVCBerechnungListName&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListNR&amp;gt;5&amp;lt;/VC_CADVCBerechnungListNR&amp;gt;&lt;br /&gt;
    &amp;lt;VC_CADVCBerechnungListCounterNr&amp;gt;0&amp;lt;/VC_CADVCBerechnungListCounterNr&amp;gt;&lt;br /&gt;
    &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{03C581E4-…}&amp;quot; RefGUID=&amp;quot;{64104C29-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{0A236819-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{1C4F8839-…}&amp;quot; RefGUID=&amp;quot;{A14432B9-…}&amp;quot; Counter=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;Member GUID=&amp;quot;{4E7730EC-…}&amp;quot; Counter=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
      … (weitere Paare gekürzt) …&lt;br /&gt;
    &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
  &amp;lt;/VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADVCMessung&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Je gemessenem Punkt entstehen hier zwei Member mit gleichem &amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt;: der CAD-Punkt (mit &amp;lt;code&amp;gt;RefGUID&amp;lt;/code&amp;gt; auf den Quellpunkt) und sein Punktnummerntext.&lt;br /&gt;
&lt;br /&gt;
=== Die drei real belegten Versions-Schemata der Listenstruktur ===&lt;br /&gt;
Die &amp;lt;code&amp;gt;VC_CADVCBerechnungList&amp;lt;/code&amp;gt;-Struktur hat sich über die Programmversionen entwickelt; alle drei Formen werden gelesen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Schema !! belegt in !! Kind-Felder&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;5.0.0&amp;#039;&amp;#039;&amp;#039; (BW) || BW-Beispielprojekt || nur &amp;lt;code&amp;gt;ListName&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ListNR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ListCounterNr&amp;lt;/code&amp;gt; + MemberGroup — keine Kind-Typ-Felder&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;5.0.35&amp;#039;&amp;#039;&amp;#039; (THR) || THR-Beispielprojekt || zusätzlich &amp;lt;code&amp;gt;VC_CADVCBerechnungListKind&amp;lt;/code&amp;gt; als &amp;#039;&amp;#039;&amp;#039;Zahl&amp;#039;&amp;#039;&amp;#039; (Legacy) + &amp;lt;code&amp;gt;ListKindName&amp;lt;/code&amp;gt;, ggf. &amp;lt;code&amp;gt;ListSysID&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;5.0.57&amp;#039;&amp;#039;&amp;#039; (Sachsen) || Sachsen-Beispielprojekt || &amp;lt;code&amp;gt;ListKindBaseType&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ListKindType&amp;lt;/code&amp;gt; als &amp;#039;&amp;#039;&amp;#039;Enum-Strings&amp;#039;&amp;#039;&amp;#039; (aktuelles Schreibformat) + &amp;lt;code&amp;gt;ListKindName&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;ListSysID&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
THR 5.0.35 (echt — &amp;lt;code&amp;gt;ListKind&amp;lt;/code&amp;gt; noch als Zahl):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListName&amp;gt;1&amp;lt;/VC_CADVCBerechnungListName&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListNR&amp;gt;1&amp;lt;/VC_CADVCBerechnungListNR&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListKind&amp;gt;11&amp;lt;/VC_CADVCBerechnungListKind&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListCounterNr&amp;gt;0&amp;lt;/VC_CADVCBerechnungListCounterNr&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListKindName&amp;gt;1&amp;lt;/VC_CADVCBerechnungListKindName&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{C0406EBC-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    … (gekürzt) …&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sachsen 5.0.57 (echt — Enum-Strings; das zugehörige VK-Transformations-Objekt umfasst im Original 17.499 Zeilen mit 447 Listen-Blöcken):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListName&amp;gt;1&amp;lt;/VC_CADVCBerechnungListName&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListNR&amp;gt;1&amp;lt;/VC_CADVCBerechnungListNR&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListKindBaseType&amp;gt;kbt_VkTransformation&amp;lt;/VC_CADVCBerechnungListKindBaseType&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListKindType&amp;gt;vaYX&amp;lt;/VC_CADVCBerechnungListKindType&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListCounterNr&amp;gt;0&amp;lt;/VC_CADVCBerechnungListCounterNr&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListKindName&amp;gt;D4244-DT5-L1&amp;lt;/VC_CADVCBerechnungListKindName&amp;gt;&lt;br /&gt;
  &amp;lt;VC_CADVCBerechnungListSysID&amp;gt;35&amp;lt;/VC_CADVCBerechnungListSysID&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{21920A80-…}&amp;quot; RefGUID=&amp;quot;{2E8AA095-…}&amp;quot; Counter=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{94994B3F-…}&amp;quot; Counter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    … (gekürzt) …&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADVCBerechnungList&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verfügbarkeit und Besonderheiten ==&lt;br /&gt;
* Verfügbar in &amp;#039;&amp;#039;&amp;#039;allen&amp;#039;&amp;#039;&amp;#039; Bundesland-Versionen; Bestandsbelege in allen drei Beispielprojekten.&lt;br /&gt;
* &amp;lt;code&amp;gt;ObjektArt&amp;lt;/code&amp;gt; ist beim Berechnungs-/Messungs-Objekt selbst &amp;lt;code&amp;gt;oaVC&amp;lt;/code&amp;gt;; die von Berechnungen erzeugten Member-Objekte tragen häufig &amp;lt;code&amp;gt;oaVCBer&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;CADObjektArt&amp;lt;/code&amp;gt; ist &amp;lt;code&amp;gt;cadKompo&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Legacy-Migration &amp;lt;code&amp;gt;VC_CADVCBerechnungListKind&amp;lt;/code&amp;gt;:&amp;#039;&amp;#039;&amp;#039; Die alte Zahl wird beim Lesen für &amp;lt;code&amp;gt;ca_VkTransformation&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;ca_Punktidentitaet&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;KindBaseType&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KindType&amp;lt;/code&amp;gt; umgesetzt. Bei VK-Transformationen aus &amp;#039;&amp;#039;&amp;#039;älteren&amp;#039;&amp;#039;&amp;#039; Dateiversionen (&amp;lt;code&amp;gt;fvcOlder&amp;lt;/code&amp;gt;) wird dabei der TVAObservationKind-Ordinalwert um +1 verschoben (Enum-Erweiterung); neuere Dateien 1:1. Für andere CalcKinds bleibt die Zahl nur im internen &amp;lt;code&amp;gt;Kind&amp;lt;/code&amp;gt;-Feld erhalten.&lt;br /&gt;
* Die Elementnamen im &amp;lt;code&amp;gt;VC_CADVCBerechnungSettings&amp;lt;/code&amp;gt;-Container sind versions- und CalcKind-abhängig (RTTI) — beim Reparieren fremde/unbekannte Property-Namen nicht „korrigieren&amp;quot;, sie sind harmlos.&lt;br /&gt;
* &amp;lt;code&amp;gt;MakroIDNr&amp;lt;/code&amp;gt; ohne passende Berechnung/Messung im Projekt: Das CAD-Objekt lädt trotzdem (die MakroID wird über den IDServer angelegt), verweist dann aber ins Leere — verwaiste Darstellungs-Kompo.&lt;br /&gt;
* Schreibreihenfolge im Manager: Berechnungen/Messungen werden mit den Kompos geschrieben.&lt;br /&gt;
* Layer sind typischerweise negative System-Layer der Berechnungs-/Messungsdarstellung (z. B. -3xxx, -45xx, -5xxx, -6xxx).&lt;br /&gt;
&lt;br /&gt;
== Quellen im Code ==&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:2988-3085&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;T3DVCCalcMess.DataToXMLLite&amp;lt;/code&amp;gt; (Schreibreihenfolge mit „### ACHTUNG ###&amp;quot;, RTTI-Settings 3040-3049)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:2935-2985&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;InternalCreateFromXML&amp;lt;/code&amp;gt; (MakroIDType/Nr/Name, CalcKind-Setter, CalcItemActive)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:2681-2933&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;InternalCreateComplexStructsFromXML&amp;lt;/code&amp;gt; (Settings-Lesen, Listen-Blöcke, Name+NR-Pflicht 2873, Kind-Migration 2897-2918, GUID-Workaround 2760-2765)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:568-652&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;T3DVCBerechnungsItemListContainer.DataToXMLLite&amp;lt;/code&amp;gt; (Kind-Elemente + Schreibbedingungen)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:445-483&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;T3DVCCalcMessItem.DataToXMLLite&amp;lt;/code&amp;gt; (Member-Attribute GUID/RefGUID/Counter)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLVCCalcMessBase.pas:44-49&amp;lt;/code&amp;gt; — Enum &amp;lt;code&amp;gt;T3DVCBerechnungsItemListContainerKindBaseType&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLCalcViewManager.pas:262-448&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;TCalcViewBaseObjekt&amp;lt;/code&amp;gt; (published &amp;lt;code&amp;gt;Active&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;TextLayerID&amp;lt;/code&amp;gt;) und CalcKind-spezifische &amp;lt;code&amp;gt;TCalcView…&amp;lt;/code&amp;gt;-Klassen&lt;br /&gt;
* &amp;lt;code&amp;gt;VERMCAD\GlobalTypes.pas:397-441&amp;lt;/code&amp;gt; — Enum &amp;lt;code&amp;gt;TCalcKind&amp;lt;/code&amp;gt; (43 Werte)&lt;br /&gt;
* &amp;lt;code&amp;gt;VERMCAD\VCObjID.pas:11&amp;lt;/code&amp;gt; — Enum &amp;lt;code&amp;gt;TMakroType&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;VERMCAD\GlobalConsts.pas&amp;lt;/code&amp;gt; — Tag-Konstanten &amp;lt;code&amp;gt;xn_CADVCCM*&amp;lt;/code&amp;gt; (write_xn_CADVCCMListKind=False seit 28.01.2026)&lt;br /&gt;
&lt;br /&gt;
{{Hilfe:NachOben}}&lt;br /&gt;
[[Kategorie:CAD XML Syntax]]&lt;/div&gt;</summary>
		<author><name>Hahn</name></author>
	</entry>
</feed>