<?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_CADKompo</id>
	<title>CAD XML Syntax-Objekt VC CADKompo - 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_CADKompo"/>
	<link rel="alternate" type="text/html" href="https://wiki.vermcad.de/index.php?title=CAD_XML_Syntax-Objekt_VC_CADKompo&amp;action=history"/>
	<updated>2026-11-03T05:43:07Z</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_CADKompo&amp;diff=8206&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_CADKompo&amp;diff=8206&amp;oldid=prev"/>
		<updated>2026-07-20T12:50:26Z</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_CADKompo}}&lt;br /&gt;
Der Kompo ist das Verbund-/Gruppenobjekt des CAD: eine geordnete Komposition beliebiger CAD-Objekte (meist Linien, auch Punkte, Texte, andere Kompos). Delphi-Klasse ist &amp;lt;code&amp;gt;T3DKompo&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;CAD\GLGeometrics.pas&amp;lt;/code&amp;gt;), XML-Tag &amp;lt;code&amp;gt;VC_CADKompo&amp;lt;/code&amp;gt;. Ein geschlossener Linien-Kompo dient außerdem als Ring-Objekt für Flächenränder ([[CAD XML Syntax-Objekt VC CADFlaeche und VCFlaeche|VC_CADFlaeche]], [[CAD XML Syntax-Objekt VC Plotrahmen|VC_Plotrahmen]]). &amp;lt;code&amp;gt;T3DKompo&amp;lt;/code&amp;gt; ist Basisklasse der [[CAD XML Syntax-Objekt VC CADBemassung|Bemaßung]] und (über &amp;lt;code&amp;gt;T3DVCCalcMess&amp;lt;/code&amp;gt;) von [[CAD XML Syntax-Objekt VC CADVCBerechnung und VCMessung|VC_CADVCBerechnung/VC_CADVCMessung]].&lt;br /&gt;
&lt;br /&gt;
== Strukturregel ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADKompo&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;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    {&amp;lt;Member GUID=&amp;quot;guid&amp;quot;/&amp;gt;}*                     (2..n — geordnete Kind-Referenzen)&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADKompo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geerbte Elemente: [[CAD XML Syntax-VermCadID und GUID-Referenzen|VermCadID-Block]] und [[CAD XML Syntax-Basiselemente|Basiselemente]]; Werteformate: [[CAD XML Syntax-Werte- und Koordinatenformate|Werteformate]].&lt;br /&gt;
&lt;br /&gt;
== Elemente ==&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;MemberGroup&amp;lt;/code&amp;gt; || Container || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; || — || Liste der Kind-Objekte&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Member&amp;lt;/code&amp;gt; || GUID-Attribut-Element (0..n) || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; (mindestens 2 fürs Laden) || — || Referenz auf ein Kind-Objekt. Die &amp;#039;&amp;#039;&amp;#039;Reihenfolge der Member-Elemente = Kompositionsreihenfolge&amp;#039;&amp;#039;&amp;#039; (bei Ring-Kompos die Umlaufreihenfolge der Randlinien)&lt;br /&gt;
|}&lt;br /&gt;
Hinweis: Beim reinen &amp;lt;code&amp;gt;VC_CADKompo&amp;lt;/code&amp;gt; tragen die &amp;lt;code&amp;gt;Member&amp;lt;/code&amp;gt;-Elemente nur das Attribut &amp;lt;code&amp;gt;GUID&amp;lt;/code&amp;gt;. Die Variante mit zusätzlichen Attributen &amp;lt;code&amp;gt;RefGUID&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;Counter&amp;lt;/code&amp;gt; kommt nur in den &amp;lt;code&amp;gt;MemberGroup&amp;lt;/code&amp;gt;-Containern INNERHALB von &amp;lt;code&amp;gt;VC_CADVCBerechnungList&amp;lt;/code&amp;gt;-Einträgen vor (siehe [[CAD XML Syntax-Objekt VC CADVCBerechnung und VCMessung|VC_CADVCBerechnung]]).&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;Member&amp;lt;/code&amp;gt; || beliebiges CAD-Objekt (meist [[CAD XML Syntax-Objekt VC CADSimpleLine|Linien]], auch Punkte, Texte, Kompos) || &amp;#039;&amp;#039;&amp;#039;ja&amp;#039;&amp;#039;&amp;#039; || siehe unten&lt;br /&gt;
|}&lt;br /&gt;
Auflösungsverhalten von &amp;lt;code&amp;gt;T3DKompo.SetReferencesAndUpdate&amp;lt;/code&amp;gt; (Referenzen-Update nach dem Laden aller Objekte):&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Weniger als 2 Verweis-GUIDs&amp;#039;&amp;#039;&amp;#039; → „Objekt wird nicht eingelesen&amp;quot;: der Kompo wird verworfen (gilt nicht für die &amp;lt;code&amp;gt;T3DVCCalcMess&amp;lt;/code&amp;gt;-Ableitungen Berechnung/Messung, die auch 1 Kind haben dürfen).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Syntaktisch ungültige Member-GUID&amp;#039;&amp;#039;&amp;#039; → Kompo wird verworfen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Member-Ziel selbst fehlerhaft&amp;#039;&amp;#039;&amp;#039; (konnte nicht eingelesen werden) → dieser Member wird aus der Liste entfernt, der Kompo überlebt — sinkt die Zahl dabei unter 2, wird er doch verworfen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Member-Ziel (noch) nicht verarbeitet&amp;#039;&amp;#039;&amp;#039; → Kompo kommt in die Wiedervorlage-Liste; bleibt das Ziel bis zum „LastTry&amp;quot; unauffindbar, wird der Kompo als fehlerhaft &amp;#039;&amp;#039;&amp;#039;zerstört&amp;#039;&amp;#039;&amp;#039; (Logeintrag „n von m Unter-Objekten nicht gefunden&amp;quot;, siehe [[CAD XML Syntax-Lesemechanik und Pflichtfelder|Lesemechanik]]). Kinder eines verworfenen Kompos können einzeln überleben.&lt;br /&gt;
Nach erfolgreicher Auflösung wird jedes Kind-Objekt mit &amp;lt;code&amp;gt;Parent&amp;lt;/code&amp;gt; auf den Kompo verlinkt.&lt;br /&gt;
&lt;br /&gt;
== Minimalform ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADKompo&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;oaCAD&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;-102&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;Member GUID=&amp;quot;{XXXX…}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADKompo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mindestens 2 Member-GUIDs auf existierende Objekte sind Pflicht — mit weniger wird der Kompo beim Laden verworfen.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Beispiel (Baden-Württemberg, echt — ALKIS-Repräsentant mit 2 Membern) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADKompo&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt;&lt;br /&gt;
    &amp;lt;GUID&amp;gt;{9EEC7079-…}&amp;lt;/GUID&amp;gt;&lt;br /&gt;
    &amp;lt;ObjektArt&amp;gt;oaAlkisCADRepr&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;-101510&amp;lt;/Layer&amp;gt;&lt;br /&gt;
  &amp;lt;LayerErben&amp;gt;-1&amp;lt;/LayerErben&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{CC3C9309-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{32FA3AF1-…}&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADKompo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiel (Baden-Württemberg, echt — großer Ring-Kompo, gekürzt) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VC_CADKompo&amp;gt;&lt;br /&gt;
  &amp;lt;VermCadID&amp;gt;&lt;br /&gt;
    &amp;lt;GUID&amp;gt;{A7E2273A-…}&amp;lt;/GUID&amp;gt;&lt;br /&gt;
    &amp;lt;ObjektArt&amp;gt;oaAlkisCADRepr&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;-100720&amp;lt;/Layer&amp;gt;&lt;br /&gt;
  &amp;lt;LayerErben&amp;gt;-1&amp;lt;/LayerErben&amp;gt;&lt;br /&gt;
  &amp;lt;MemberGroup&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{97702235-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{5879B99F-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Member GUID=&amp;quot;{78D742D2-…}&amp;quot; /&amp;gt;&lt;br /&gt;
    … (im Original 280 Member) …&lt;br /&gt;
  &amp;lt;/MemberGroup&amp;gt;&lt;br /&gt;
&amp;lt;/VC_CADKompo&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 (BW: 370, Sachsen: 7.868, THR: 765).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Leerer Kompo wird nicht gespeichert&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;DataToXMLLite&amp;lt;/code&amp;gt; bricht bei 0 Kindern VOR dem Schreiben der VermCadID ab — es entsteht nur ein leeres Wurzelelement ohne Inhalt, das beim Lesen mangels &amp;lt;code&amp;gt;VermCadID&amp;lt;/code&amp;gt; kein Objekt erzeugt. Bei genau 1 Kind wird nur eine Log-Warnung („Sinnlose Komposition&amp;quot;) ausgegeben, geschrieben wird trotzdem.&lt;br /&gt;
* Als Ring einer Fläche muss der Kompo eine &amp;#039;&amp;#039;&amp;#039;geschlossene Kurve&amp;#039;&amp;#039;&amp;#039; bilden (&amp;lt;code&amp;gt;IsCurve&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;IsClosed&amp;lt;/code&amp;gt;) — sonst verwirft die referenzierende Fläche sich selbst beim Laden.&lt;br /&gt;
* Ableitungen mit eigenen Wurzeltags: &amp;lt;code&amp;gt;VC_CADBemassung&amp;lt;/code&amp;gt; (T3DBemassung), &amp;lt;code&amp;gt;VC_CADVCBerechnung&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;VC_CADVCMessung&amp;lt;/code&amp;gt; (T3DVCCalcMess). Der Manager schreibt beim Speichern je nach Klasse das passende Tag; nur „echte&amp;quot; Kompos erhalten &amp;lt;code&amp;gt;VC_CADKompo&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Schreibreihenfolge im Manager: Kompos als Gruppe 9 (nach den Flächen!) — Flächen referenzieren ihre Rand-Kompos also vorwärts; der Leser löst das über die Wiedervorlage-Schleife auf.&lt;br /&gt;
&lt;br /&gt;
== Quellen im Code ==&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLGeometrics.pas:56202-56278&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;T3DKompo.DataToXMLLite&amp;lt;/code&amp;gt; (Leer-Check vor VermCadID, MemberGroup/Member)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLGeometrics.pas:56130-56194&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;InternalCreateComplexStructsFromXML&amp;lt;/code&amp;gt; (Member-GUIDs → FChildrenGUIDS)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLGeometrics.pas:57251-57347&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;SetReferencesAndUpdate&amp;lt;/code&amp;gt; (Mindestanzahl 2, Fehlerverhalten, Parent-Verlinkung)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLGeometrics.pas:56196-56200&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;GetXMLLinkError&amp;lt;/code&amp;gt; (Fehlermeldung über fehlende Kind-GUIDs)&lt;br /&gt;
* &amp;lt;code&amp;gt;CAD\GLGeometrics.pas:9011-9021&amp;lt;/code&amp;gt; — &amp;lt;code&amp;gt;IsClosedCurve&amp;lt;/code&amp;gt; (Kompo als Flächenring)&lt;br /&gt;
* &amp;lt;code&amp;gt;VERMCAD\GlobalConsts.pas&amp;lt;/code&amp;gt; ca. 4372-5004 — Tag-Konstanten &amp;lt;code&amp;gt;xn_Kompo&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;VC_CADKompo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xn_Members&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;MemberGroup&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;xn_Member&amp;lt;/code&amp;gt;=&amp;lt;code&amp;gt;Member&amp;lt;/code&amp;gt;&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>