CSV auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Hallo.
Eine CSV soll ausgelesen und verarbeitet werden:
Zeile 1: Titelzeile (soll als Key fungieren)
ab Zeile 2 sind verschiedenste Objekte aufgelistet - beginnend mit z.B. 'PL', 'PT', 'SY', 'FL', 'TX' und weitere, die in der untenstehenden Beispieldatei noch nicht enthalten sind.
Für alle diese Objekte soll eine separate Liste erstellt werden (wobei mich momentan nur 'PT' und 'PL' interessieren). So weit , so gut - das bekomme ich hin.

Was ich hier nicht hinbekomme:
A) nicht jeder Eintrag der Zeile muss gespeichert werden, aber wichtige wie z.B. 'Messcode', und 'Objekttyp'.
Das Problem ist hier, dass jedes dieser Objekte Attribute (Zeile beginnend mit 'AT') haben KANN, aber nicht muss.
B) jedes Objekt soll ein weiteren Dictionary-Eintrag 'Attributes': None hinzugefügt werden
C1) wird eine Zeile mit 'AT' gefunden, dann füge dem letzten Objekt die Zeile als neues Key 'Attributes' HINZU
C2) hier muss sicher nicht jeder Eintrag der Zeile in 'Attributes' hinzugefügt werden, aber wichtige Eintrage wie z.B. 'Wert-ID', 'AT-Name' und 'AT-Default'.

Vielleich könnte ihr mal ein paar Hinweise geben. Danke

PS: ja, parse_attributes() ist noch ohne funktion.

Ausgangsdatei:

Code: Alles auswählen

Objektart;Messcode;Bemerkung;Objekttyp;Beschreibung;Blockname;Layer;Kurzcode;Gruppe;Wert-ID;Wert-Spalte;Wert-Pos;Wert-Necessary;Wert-UebTab;Wert-Faktor;AT-Name;AT-Default;Ausrichtung;SY-Art;SY-InsertMode;XSize;YSize;XSizeMin;XSizeMax;YSizeMin;YSizeMax;XSize-ID;XSize-Pos;YSize-ID;YSize-Pos;SY-ZusObj;SY-EinsetzPkt;SY-RiCode;PosRechts;PosHoch;Massband-Pos
PT;1001;;Freier Standpunkt;Freier Standpunkt;standpunkt;Vermessungspunkte<Herkunft>Freier_Standpunkt;;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;1002;;Polygonpunkt (PP);Polygonpunkt (PP);ALKIS-3905;Vermessungspunkte<Herkunft>Polygonpunkt_(PP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;1003;;Aufnahmepunkt (AP);Aufnahmepunkt (AP);ALKIS-3901;Vermessungspunkte<Herkunft>Aufnahmepunkt_(AP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;QUELLE;;4;;;;Quelle;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;GNSSFAEHIG;;5;;;;GNSS-fähig;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;VERMARKART;;6;;;;Vermarkungsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;1004;;Trigonometrischer Punkt (TP);Trigonometrischer Punkt (TP);120727;Vermessungspunkte<Herkunft>Trigonometrischer_Punkt_(TP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;1005;;Höhenfestpunkt (HFP);Höhenfestpunkt (HFP);ALKIS-3902;Vermessungspunkte<Herkunft>Höhenfestpunkt_(HFP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;QUELLE;;4;;;;Quelle;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;GNSSFAEHIG;;5;;;;GNSS-fähig;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;VERMARKART;;6;;;;Vermarkungsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;1006;;Schwerefestpunkt (SFP);Schwerefestpunkt (SFP);KREUZ;Vermessungspunkte<Herkunft>Schwerefestpunkt_(SFP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;QUELLE;;4;;;;Quelle;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;GNSSFAEHIG;;5;;;;GNSS-fähig;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;VERMARKART;;6;;;;Vermarkungsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;1007;;Geodätische Grundnetzpunkte (GGP);Geodätische Grundnetzpunkte (GGP);KREUZ;Vermessungspunkte<Herkunft>Geodätische_Grundnetzpunkte_(GGP);;Vermessungspunkte;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;QUELLE;;4;;;;Quelle;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;GNSSFAEHIG;;5;;;;GNSS-fähig;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;VERMARKART;;6;;;;Vermarkungsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2023;;Sockel - Sims;Sockel - Sims;;Bauwerke<Herkunft>Sockel_-_Sims;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2024;;Lichtschacht;Lichtschacht;KREUZ;Bauwerke<Herkunft>Lichtschacht;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2024;;Lichtschacht;Lichtschacht;;Bauwerke<Herkunft>Lichtschacht;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;2025;;Rampe;Rampe;KREUZ;Bauwerke<Herkunft>Rampe;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2025;;Rampe;Rampe;;Bauwerke<Herkunft>Rampe;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;2026;;Balkon;Balkon;KREUZ;Bauwerke<Herkunft>Balkon;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;2026;;Balkon;Balkon;;Bauwerke<Herkunft>Balkon;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2027;;Sockel - Podest;Sockel - Podest;KREUZ;Bauwerke<Herkunft>Sockel_-_Podest;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2027;;Sockel - Podest;Sockel - Podest;;Bauwerke<Herkunft>Sockel_-_Podest;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2028;;Treppe;Treppe;KREUZ;Bauwerke<Herkunft>Treppe;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2028;;Treppe;Treppe;;Bauwerke<Herkunft>Treppe;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2029;;Treppe - Stufe unten;Treppe - Stufe unten;KREUZ;Bauwerke<Herkunft>Treppe_-_Stufe_unten;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2029;;Treppe - Stufe unten;Treppe - Stufe unten;;Bauwerke<Herkunft>Treppe_-_Stufe_unten;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2030;;Treppe - Stufe oben;Treppe - Stufe oben;KREUZ;Bauwerke<Herkunft>Treppe_-_Stufe_oben;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2030;;Treppe - Stufe oben;Treppe - Stufe oben;;Bauwerke<Herkunft>Treppe_-_Stufe_oben;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2031;;Steg;Steg;KREUZ;Bauwerke<Herkunft>Steg;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2031;;Steg;Steg;;Bauwerke<Herkunft>Steg;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;2099;;Sonstiges Bauwerke;Sonstiges Bauwerke;KREUZ;Bauwerke<Herkunft>Sonstiges_Bauwerke;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;2099;;Sonstiges Bauwerke;Sonstiges Bauwerke;;Bauwerke<Herkunft>Sonstiges_Bauwerke;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;3001;;Detailpunkt;Detailpunkt;KREUZ;Topografie<Herkunft>Detailpunkt;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;3002;;Bord Vorderkante unten;Bord Vorderkante unten;KREUZ;Topografie<Herkunft>Bord_Vorderkante_unten;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;6;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Höhe;;7;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;8;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3002;;Bord Vorderkante unten;Bord Vorderkante unten;;Topografie<Herkunft>Bord_Vorderkante_unten;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;3;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;5;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Höhe;;6;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;PARALLEANZ;;7;;;;Parallele anzeigen;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;SEITEBESCH;;8;;;0,001;Seite Beschriftung;;;;;;;;;;;;;;;;;;;;
PT;3003;;Bord Vorderkante oben;Bord Vorderkante oben;KREUZ;Topografie<Herkunft>Bord_Vorderkante_oben;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3003;;Bord Vorderkante oben;Bord Vorderkante oben;;Topografie<Herkunft>Bord_Vorderkante_oben;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;3;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
PT;3004;;Bord mittig;Bord mittig;KREUZ;Topografie<Herkunft>Bord_mittig;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;3004;;Bord mittig;Bord mittig;;Topografie<Herkunft>Bord_mittig;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;3005;;Bord Hinterkante;Bord Hinterkante;KREUZ;Topografie<Herkunft>Bord_Hinterkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3005;;Bord Hinterkante;Bord Hinterkante;;Topografie<Herkunft>Bord_Hinterkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;3006;;Absenker Vorderkante unten;Absenker Vorderkante unten;KREUZ;Topografie<Herkunft>Absenker_Vorderkante_unten;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;6;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Höhe;;7;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;8;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3006;;Absenker Vorderkante unten;Absenker Vorderkante unten;;Topografie<Herkunft>Absenker_Vorderkante_unten;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;3;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;5;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Höhe;;6;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;PARALLEANZ;;7;;;;Parallele anzeigen;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;SEITEBESCH;;8;;;0,001;Seite Beschriftung;;;;;;;;;;;;;;;;;;;;
PT;3007;;Absenker Vorderkante oben;Absenker Vorderkante oben;KREUZ;Topografie<Herkunft>Absenker_Vorderkante_oben;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3007;;Absenker Vorderkante oben;Absenker Vorderkante oben;;Topografie<Herkunft>Absenker_Vorderkante_oben;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;3;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
PT;3008;;Absenker mittig;Absenker mittig;KREUZ;Topografie<Herkunft>Absenker_mittig;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;4;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3008;;Absenker mittig;Absenker mittig;;Topografie<Herkunft>Absenker_mittig;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Art;;3;;;;Art;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;5;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Höhe;;6;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;PARALLEANZ;;7;;;;Parallele anzeigen;;;;;;;;;;;;;;;;;;;;
PT;3009;;Absenker Hinterkante;Absenker Hinterkante;KREUZ;Topografie<Herkunft>Absenker_Hinterkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;3009;;Absenker Hinterkante;Absenker Hinterkante;;Topografie<Herkunft>Absenker_Hinterkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PT;3010;;Mauer Vorderkante;Mauer Vorderkante;KREUZ;Topografie<Herkunft>Mauer_Vorderkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;HOEHE;;4;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;5;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3010;;Mauer Vorderkante;Mauer Vorderkante;;Topografie<Herkunft>Mauer_Vorderkante;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;HOEHE;;3;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BREITE;;4;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;SIGNATURAB;;5;;;0,001;Signaturabstand;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;PARALLEANZ;;6;;;;Parallele anzeigen;;;;;;;;;;;;;;;;;;;;
PT;3011;;Mauer mittig;Mauer mittig;KREUZ;Topografie<Herkunft>Mauer_mittig;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;HOEHE;;4;;;0,001;Höhe;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Breite;;5;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;3023;;Fuge;Fuge;KREUZ;Topografie<Herkunft>Fuge;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PL;3023;;Fuge;Fuge;;Topografie<Herkunft>Fuge;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;3024;;Sitzbank;Sitzbank;130021;Topografie<Herkunft>Sitzbank;;Topografie;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4003;;Stationszeichen;Stationszeichen;SYM301;Möblierung<Herkunft>Stationszeichen;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BUNDESLAND;;4;;;;Bundesland;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;KREIS;;5;;;;Kreis;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;STRASSENNR;;6;;;;Straßennummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ABSCHNITNR;;7;;;;Abschnittsnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;STATION;;8;;;0,001;Station (Kilometer);;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;9;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4004;;KM-Marke allgemein;KM-Marke allgemein;SYM301;Möblierung<Herkunft>KM-Marke_allgemein;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;4005;;Verkehrszeichen;Verkehrszeichen;VZ;Möblierung<Herkunft>Verkehrszeichen;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4006;;VZ Vorfahrt;VZ Vorfahrt;VZ-VSTR;Möblierung<Herkunft>VZ_Vorfahrt;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4007;;VZ Stop;VZ Stop;VZ-STOP;Möblierung<Herkunft>VZ_Stop;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4008;;VZ Achtung;VZ Achtung;VZ-GEBO;Möblierung<Herkunft>VZ_Achtung;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4009;;VZ Verbot;VZ Verbot;VZ-VEBO;Möblierung<Herkunft>VZ_Verbot;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4010;;VZ Vorfahrtgeben;VZ Vorfahrtgeben;VZ-HALT;Möblierung<Herkunft>VZ_Vorfahrtgeben;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4011;;VZ Einbahnstraße;VZ Einbahnstraße;VZ-EINB;Möblierung<Herkunft>VZ_Einbahnstraße;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4012;;VZ Gefahr;VZ Gefahr;150022;Möblierung<Herkunft>VZ_Gefahr;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
PT;4013;;VZ Straßenname;VZ Straßenname;150020;Möblierung<Herkunft>VZ_Straßenname;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4014;;VZ Hinweis;VZ Hinweis;150026;Möblierung<Herkunft>VZ_Hinweis;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4015;;VZ Warnbake links;VZ Warnbake links;150029;Möblierung<Herkunft>VZ_Warnbake_links;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4033;;Bodenmarkierung Stop;Bodenmarkierung Stop;BD_STOP;Möblierung<Herkunft>Bodenmarkierung_Stop;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4034;;Bodenmarkierung Behindertenparkplatz;Bodenmarkierung Behindertenparkplatz;BD_BEHP;Möblierung<Herkunft>Bodenmarkierung_Behindertenparkplatz;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4035;;Bodenmarkierung Radweg;Bodenmarkierung Radweg;BD_RADW;Möblierung<Herkunft>Bodenmarkierung_Radweg;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4036;;Notrufsäule;Notrufsäule;SYM327;Möblierung<Herkunft>Notrufsäule;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4037;;Beleuchtungshochmast;Beleuchtungshochmast;SYM318;Möblierung<Herkunft>Beleuchtungshochmast;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4038;;Reklameschild;Reklameschild;SPG;Möblierung<Herkunft>Reklameschild;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4039;;Fahnenmast;Fahnenmast;Fahne;Möblierung<Herkunft>Fahnenmast;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4040;;Funkmast;Funkmast;funkmast;Möblierung<Herkunft>Funkmast;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4041;;Müllbox Wertstoffbehälter rechteckig;Müllbox Wertstoffbehälter rechteckig;130019;Möblierung<Herkunft>Müllbox_Wertstoffbehälter_rechteckig;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4042;;Müllbox Wertstoffbehälter rund;Müllbox Wertstoffbehälter rund;130018;Möblierung<Herkunft>Müllbox_Wertstoffbehälter_rund;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;DMESSER;;4;;;0,001;Durchmesser;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;5;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4043;;Taxiruf;Taxiruf;T;Möblierung<Herkunft>Taxiruf;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4044;;Brandmelder;Brandmelder;F;Möblierung<Herkunft>Brandmelder;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4045;;Denkmal;Denkmal;SYM305;Möblierung<Herkunft>Denkmal;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4046;;Windmotor;Windmotor;SYM320;Möblierung<Herkunft>Windmotor;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4047;;Drehkreuz;Drehkreuz;1103;Möblierung<Herkunft>Drehkreuz;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4048;;Telefonzelle;Telefonzelle;SYM325;Möblierung<Herkunft>Telefonzelle;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4049;;Brunnen;Brunnen;SYM306;Möblierung<Herkunft>Brunnen;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4050;;Springbrunnen;Springbrunnen;SYM307;Möblierung<Herkunft>Springbrunnen;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4051;;Pumpe;Pumpe;abpum;Möblierung<Herkunft>Pumpe;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4052;;Poller;Poller;1105;Möblierung<Herkunft>Poller;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;DMESSER;;5;;;0,001;Durchmesser;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;6;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4053;;Pfeiler;Pfeiler;PFEILER;Möblierung<Herkunft>Pfeiler;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;MATERIAL;;4;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;LAENGE;;5;;;0,001;Länge;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BREITE;;6;;;0,001;Breite;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4054;;Leitpfosten;Leitpfosten;KREUZ;Möblierung<Herkunft>Leitpfosten;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4055;;Feld-, und Gipfelkreuz;Feld-, und Gipfelkreuz;KREUZ;Möblierung<Herkunft>Feld-_und_Gipfelkreuz;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4056;;Meldesäule Notrufsäule rechteckig;Meldesäule Notrufsäule rechteckig;130015;Möblierung<Herkunft>Meldesäule_Notrufsäule_rechteckig;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4057;;Blitzer Radarkontrolle stationär;Blitzer Radarkontrolle stationär;150004;Möblierung<Herkunft>Blitzer_Radarkontrolle_stationär;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4058;;Schaltkasten;Schaltkasten;ELSKA;Möblierung<Herkunft>Schaltkasten;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schaltkastennummer;;4;;;;Schaltkastennummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;5;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4059;;Lichtmast;Lichtmast;LAMPE;Möblierung<Herkunft>Lichtmast;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4060;;Bodenstrahler;Bodenstrahler;KREUZ;Möblierung<Herkunft>Bodenstrahler;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4061;;Straßenlampe freihängend;Straßenlampe freihängend;130031;Möblierung<Herkunft>Straßenlampe_freihängend;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4062;;Bodenlampe;Bodenlampe;130032;Möblierung<Herkunft>Bodenlampe;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4063;;Straßenlampe;Straßenlampe;130033;Möblierung<Herkunft>Straßenlampe;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4064;;Straßenlampe mit Ausleger einseitig;Straßenlampe mit Ausleger einseitig;130034;Möblierung<Herkunft>Straßenlampe_mit_Ausleger_einseitig;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4065;;Straßenlampe mit Ausleger beidseitig;Straßenlampe mit Ausleger beidseitig;130035;Möblierung<Herkunft>Straßenlampe_mit_Ausleger_beidseitig;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4066;;Lichtflutstrahler Cityleuchte;Lichtflutstrahler Cityleuchte;130036;Möblierung<Herkunft>Lichtflutstrahler_Cityleuchte;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;4;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
PT;4067;;Einfachmast Strom;Einfachmast Strom;SYSTR;Möblierung<Herkunft>Einfachmast_Strom;;Möblierung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;ERFVERFAHR;;2;;;;Erfassungsverfahren;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;3;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Mastbezeichnung;;4;;;;Mastbezeichnung;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Material;;5;;;;Material;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Doppelmast;;6;;;;Doppelmast;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Bemerkung;;7;;;;Bemerkung;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Fernmeldewesen (Diagonal);Deckel eckig Fernmeldewesen (Diagonal);SCHACHTD2p;Fernmeldewesen<Herkunft>Deckel_eckig_Fernmeldewesen_(Diagonal);;Fernmeldewesen;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Fernmeldewesen (Rand);Deckel eckig Fernmeldewesen (Rand);SCHACHTE2p;Fernmeldewesen<Herkunft>Deckel_eckig_Fernmeldewesen_(Rand);;Fernmeldewesen;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Fernwärme;Deckel eckig Fernwärme;SCHACHTE2p;Fernwärme<Herkunft>Deckel_eckig_Fernwärme;;Fernwärme;;;;;;;;;;3;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Fernwärme (Diagonal);Deckel eckig Fernwärme (Diagonal);SCHACHTD2p;Fernwärme<Herkunft>Deckel_eckig_Fernwärme_(Diagonal);;Fernwärme;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Fernwärme (Rand);Deckel eckig Fernwärme (Rand);SCHACHTE2p;Fernwärme<Herkunft>Deckel_eckig_Fernwärme_(Rand);;Fernwärme;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Gas;Deckel eckig Gas;SCHACHTE2p;Gas<Herkunft>Deckel_eckig_Gas;;Gas;;;;;;;;;;3;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Gas (Diagonal);Deckel eckig Gas (Diagonal);SCHACHTD2p;Gas<Herkunft>Deckel_eckig_Gas_(Diagonal);;Gas;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig sonstige Leitungen (Diagonal);Deckel eckig sonstige Leitungen (Diagonal);SCHACHTD2p;Sonstige Leitungen<Herkunft>Deckel_eckig_sonstige_Leitungen_(Diagonal);;Sonstige Leitungen;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig sonstige Leitungen (Rand);Deckel eckig sonstige Leitungen (Rand);SCHACHTE2p;Sonstige Leitungen<Herkunft>Deckel_eckig_sonstige_Leitungen_(Rand);;Sonstige Leitungen;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Strom;Deckel eckig Strom;SCHACHTE2p;Strom<Herkunft>Deckel_eckig_Strom;;Strom;;;;;;;;;;3;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Strom (Diagonal);Deckel eckig Strom (Diagonal);SCHACHTD2p;Strom<Herkunft>Deckel_eckig_Strom_(Diagonal);;Strom;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Strom (Rand);Deckel eckig Strom (Rand);SCHACHTE2p;Strom<Herkunft>Deckel_eckig_Strom_(Rand);;Strom;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Deckel eckig Wasserentsorgung;Deckel eckig Wasserentsorgung;SCHACHTE2p;Wasserentsorgung<Herkunft>Deckel_eckig_Wasserentsorgung;;Wasserentsorgung;;;;;;;;;;3;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Schachtnummer;;3;;;;Schachtnummer;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Sohle / Höhe im Schacht;;4;;;0,001;Sohle / Höhe im Schacht;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;relative Sohlenhöhe;;5;;;0,001;relative Sohlenhöhe;;;;;;;;;;;;;;;;;;;;
SY;XXXX;;Tür rechts;Tür rechts;TÜRRE;Bauwerke<Herkunft>Tür_rechts;;Bauwerke;;;;;;;;;;2;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Abstandslinie;Abstandslinie;;Raumplanung<Herkunft>Abstandslinie;;Raumplanung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Baugrenze;Baugrenze;;Raumplanung<Herkunft>Baugrenze;;Raumplanung;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;SEITE;;3;;;0,001;Seite;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Baulast;Baulast;;Raumplanung<Herkunft>Baulast;;Raumplanung;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Schutzrohr;Schutzrohr;;Sonstige Leitungen<Herkunft>Schutzrohr;;Sonstige Leitungen;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Volumengrenze;Volumengrenze;;Geländemodell_Volumengrenze;;Geländemodell;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Weiche Zwangskante;Weiche Zwangskante;;Geländemodell_Weiche_Zwangskante;;Geländemodell;;;;;;;;;;;;;;;;;;;;;;;;;;;
PL;XXXX;;Zwangskante;Zwangskante;;Geländemodell_Zwangskante;;Geländemodell;;;;;;;;;;;;;;;;;;;;;;;;;;;
FL;XXXX;;Wirtschaftsgebäudefläche;Wirtschaftsgebäudefläche;;Bauwerke<Herkunft>Wirtschaftsgebäudefläche;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BEZEICHNU;;3;;;;Bezeichnung;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Absteckung;Beschriftung Absteckung;;Absteckung<Herkunft>Beschriftung_Absteckung;;Absteckung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
FL;XXXX;;Straßenfläche;Straßenfläche;;Verkehr Straße<Herkunft>Straßenfläche;;Verkehr Straße;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BEZEICHNU;;3;;;;Bezeichnung;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Bauwerke;Beschriftung Bauwerke;;Bauwerke<Herkunft>Beschriftung_Bauwerke;;Bauwerke;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Fernmeldewesen;Beschriftung Fernmeldewesen;;Fernmeldewesen<Herkunft>Beschriftung_Fernmeldewesen;;Fernmeldewesen;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Fernwärme;Beschriftung Fernwärme;;Fernwärme<Herkunft>Beschriftung_Fernwärme;;Fernwärme;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Gas;Beschriftung Gas;;Gas<Herkunft>Beschriftung_Gas;;Gas;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Gewässer;Beschriftung Gewässer;;Gewässer<Herkunft>Beschriftung_Gewässer;;Gewässer;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Möblierung;Beschriftung Möblierung;;Möblierung<Herkunft>Beschriftung_Möblierung;;Möblierung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Raumplanung;Beschriftung Raumplanung;;Raumplanung<Herkunft>Beschriftung_Raumplanung;;Raumplanung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Sonstige Leitungen;Beschriftung Sonstige Leitungen;;Sonstige Leitungen<Herkunft>Beschriftung_Sonstige_Leitungen;;Sonstige Leitungen;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Strom;Beschriftung Strom;;Strom<Herkunft>Beschriftung_Strom;;Strom;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Topografie;Beschriftung Topografie;;Topografie<Herkunft>Beschriftung_Topografie;;Topografie;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Vegetation;Beschriftung Vegetation;;Vegetation<Herkunft>Beschriftung_Vegetation;;Vegetation;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Verkehr Schiene;Beschriftung Verkehr Schiene;;Verkehr Bahn<Herkunft>Beschriftung_Verkehr_Schiene;;Verkehr Bahn;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Verkehr Straße;Beschriftung Verkehr Straße;;Verkehr Straße<Herkunft>Beschriftung_Verkehr_Straße;;Verkehr Straße;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Vermessung;Beschriftung Vermessung;;Vermessung<Herkunft>Beschriftung_Vermessung;;Vermessung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Wasserentsorgung;Beschriftung Wasserentsorgung;;Wasserentsorgung<Herkunft>Beschriftung_Wasserentsorgung;;Wasserentsorgung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Beschriftung Wasserversorgung;Beschriftung Wasserversorgung;;Wasserversorgung<Herkunft>Beschriftung_Wasserversorgung;;Wasserversorgung;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Bewuchs Beschriftung;Bewuchs Beschriftung;;Vegetation<Herkunft>Bewuchs_Beschriftung;;Vegetation;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Bewuchs Beschriftung klein;Bewuchs Beschriftung klein;;Vegetation<Herkunft>Bewuchs_Beschriftung_klein;;Vegetation;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Hausbezeichnung;Hausbezeichnung;;Bauwerke<Herkunft>Hausbezeichnung;;Bauwerke;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Hausbezeichnung klein;Hausbezeichnung klein;;Bauwerke<Herkunft>Hausbezeichnung_klein;;Bauwerke;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Hausnummer;Hausnummer;;Bauwerke<Herkunft>Hausnummer;;Bauwerke;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Hilfstext;Hilfstext;;Layout_Hilfstext;;Layout;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
TX;XXXX;;km-Beschriftung Bahn;km-Beschriftung Bahn;;Verkehr Bahn<Herkunft>km-Beschriftung_Bahn;;Verkehr Bahn;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;km-Beschriftung Bahn klein;km-Beschriftung Bahn klein;;Verkehr Bahn<Herkunft>km-Beschriftung_Bahn_klein;;Verkehr Bahn;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
TX;XXXX;;Maßstab;Maßstab;;Layout_Maßstab;;Layout;Text;;1;;;;;;;;;;;;;;;;;;;;;;0;0;
FL;XXXX;;Wohngebäudefläche;Wohngebäudefläche;;Bauwerke<Herkunft>Wohngebäudefläche;;Bauwerke;;;;;;;;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;Herkunft;;1;;;;Herkunft;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BESTANDART;;2;;;;Bestandsart;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;BEZEICHNU;;3;;;;Bezeichnung;;;;;;;;;;;;;;;;;;;;
AT;;;;;;;;;HAUSNUMMER;;4;;;;Hausnummer;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;99;;LinieAnfang;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;9;;LinieEnde;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;-;;LinieEndeVorMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;-;;LinieEndeVorGeometrieCode;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;1;;LinieSchliessen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;2;;LinieUebergang;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;55;;AusrundenStart;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;56;;AusrundenEnde;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;22;;Umdrehen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;33;;FluchtPkt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;3;;FluchtPktMitAbst;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;4;;Bogen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;5;;Tangentenbogen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;6;;Kreis;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;7;;Rechteck;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;8;;Parallelogramm;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;11;;BreitenPkt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;44;;ReWinkelLinks;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;66;;ReWinkelRechts;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;0;;Massbandkodierung;;;;;;;;;;;0.001;;;;;;;;;;;;;;;;;;;;;
LI-DEF;gn;;Gruppierung;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LI-DEF;gn3;;Gruppierung3Linien;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;-;;Links;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;V;;Vorne;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;+;;Rechts;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;Z;;Zurueck;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;B;;Beenden;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MASSBAND-DEF;S;;Schliessen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SY-DEF;-;;SymbolUmkehrung;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SY-DEF;9;;SymbolUmkehrungGeometrieCode;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;999;;Start;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;-999;;Ende;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;998;;Auslassen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;997;;Fuellcode;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;996;;Hinzufuegen;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSREIHENFOLGE-DEF;995;;Ignorieren;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Stand der Dinge:

Code: Alles auswählen

from pprint import pprint
from pathlib2 import Path
import csv

PT = 'PT'
AT = 'AT'
PL = 'PL'
CSV_IGNOR_OBJECTS = [
    '',
    'LI-DEF',
    'MASSBAND-DEF',
    'SY-DEF',
    'MESSREIHENFOLGE-DEF'
]
MESSCODEZUORDNUNGSDATEIPORDNERFAD = Path(
    r'C:/ProgramData/rmDATA/Shared/CodeGrafik'
)
DELIMITER_CSV = ';'


def parse_attributes(line):
    return


def load_classification(filepath):
    classification_points = []
    classification_polylines = []

    with open(filepath) as csvdatei:
        # last_object = None
        csv_reader_object = csv.DictReader(csvdatei, delimiter=DELIMITER_CSV)
        for line in csv_reader_object:
            if line['Objektart'] in CSV_IGNOR_OBJECTS:
                continue
            # classification_points['Attributes'] = None
            # classification_polylines['Attributes'] = None
            if line['Objektart'] == PT:
                classification_points.append(line)
                last_object = PT
            elif line['Objektart'] == PL:
                classification_polylines.append(line)
                last_object = PL
            elif line['Objektart'] == AT:
                if last_object == PT:
                    classification_points[-1]['Attributes'] = {'Punkt_1': 'EINS', 'Punkt_2': '2', 'Punkt_3': 3, }
                elif last_object == PL:
                    classification_polylines[-1]['Attributes'] = {'Linie_1': 'EINS', 'Linie_2': '2', 'Linie_3': 3, }
    return classification_points, classification_polylines


def main():
    classification_points, classification_polylines = load_classification(
        MESSCODEZUORDNUNGSDATEIPORDNERFAD / 'VDLF_test.csv')
    pprint(classification_points)
    # pprint(classification_polylines)


if __name__ == "__main__":
    main()
Vielen Dank
Fabian
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Was genau geht denn jetzt nicht?

Wenn die Objekte identisch zu bearbeiten sind, aber in zwei verschiedene Listen wandern, würde ich nicht das letzte Element der Liste aufrufen, sondern mir das letzte Objekt immer merken.
"continue" würde ich wo immer möglich vermeiden, weil es den Codeverlauf schwerer nachzuvollziehen macht.

Code: Alles auswählen

def load_classification(filepath):
    classification_points = []
    classification_polylines = []

    with open(filepath) as csvdatei:
        # last_object = None
        csv_reader_object = csv.DictReader(csvdatei, delimiter=DELIMITER_CSV)
        for line in csv_reader_object:
            if line['Objektart'] not in CSV_IGNOR_OBJECTS:
                if line['Objektart'] == PT:
                    classification_points.append(line)
                    last_object = line
                elif line['Objektart'] == PL:
                    classification_polylines.append(line)
                    last_object = line
                elif line['Objektart'] == AT:
                    last_object['Attributes'] = {
                        'Punkt_1': 'EINS',
                        'Punkt_2': '2',
                        'Punkt_3': 3, 
                    }
    return classification_points, classification_polylines
Oh, und wenn für die alle eine Liste angelegt werden soll... dann willst du das doch nicht alles per if unterscheiden, oder? Nutze ein defaultdict mit einer Liste als default und benutze den Identifier in Spalte 1 als Schlüssel. Dann hast du einen Schlüssel mit einer Liste je Art.
Benutzeravatar
grubenfox
User
Beiträge: 426
Registriert: Freitag 2. Dezember 2022, 15:49

an so einen Code dachte ich auch zuerst, aber möglicherweise ist der fehlerhaft weil unvollständig. Im originalen Code unterscheidet sich das Dict welches in last_object['Attributes'] gespeichert wird, in Abhängikeit von der Objektart (unterschiedliche Keys). Bei PT sind es drei "Punkte" wie hier, aber bei der Objektart PL sind es drei "Linien".

Kann natürlich ein Fehler im originalen Code sein. Das kann ich nicht beurteilen.
Da kann man vielleicht in den If-Bedingungen die PT bzw. PL bearbeiten schon festlegen welche Keys dann bei AT zu nutzen sind. Die stehen dann in einer Variablen "zu_nutzende_keys" und damit entfällt unten bei der Behandlung von AT dann die nochmalige Fallunterscheidung. Dort werden dann einfach immer die Keys genutzt, die vorher in "zu_nutzende_keys" eingetragen wurden.

Oder zwei Funktionen die sich um die unterschiedlichen Behandlungen der Attribute kümmern und oben bei verarbeiten von PT bzw. PL wird in eine Variable die zu nutzende Attributfunktion eingetragen (nur die Funktion, nicht als String den Namen der Funktion und ohne die Klammern) und bei der Behandlung der AT-Zeilen wird die gespeicherte Funktion aufgerufen [wegen dem aufrufen jetzt mit Klammern]
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

@grubenfox: Nein, ein Blick auf die Ausgangsdaten zeigt, dass das eher willkürlich gewählte Namen sind.

@Feedback1000: Weil heute ein guter Tag ist, sollte das hier dein Problem lösen. Schön wäre gewesen, wenn du nach diesem Problem auch konkret gefragt hättest:

Code: Alles auswählen

import csv
from collections import defaultdict
from pathlib import Path
from pprint import pprint

CLASSIFICATION_IDENTIFIER = ("PT", "PL")
ATTRIBUTE_IDENTIFIER = "AT"
DELIMITER_CSV = ';'

DATA_DIRECTORY = Path(
    r'C:/ProgramData/rmDATA/Shared/CodeGrafik'
)

def load_classification(filepath):
    classifications = defaultdict(list)
    with open(filepath) as csvdatei:
        reader = csv.DictReader(csvdatei, delimiter=DELIMITER_CSV)
        for line in reader:
            if line['Objektart'] in CLASSIFICATION_IDENTIFIER:
                line["Attributes"] = {}
                last_classification = line
                classifications[line['Objektart']].append(line)
            elif line['Objektart'] == ATTRIBUTE_IDENTIFIER and last_classification:
                last_classification["Attributes"][line["Wert-ID"]] = line["AT-Name"]
            else:
                last_classification = None
    return classifications


def main():
    classifications = load_classification(
        DATA_DIRECTORY / 'VDLF_test.csv')
    pprint(classifications)

if __name__ == "__main__":
    main()
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

@sparrow Erst einmal danke für dein Code.
Habe dazu aber Verständnis-Fragen: Denn
1. muss ich zugeben, dass ich classifications noch nicht ganz verstehe (und vor allem wie es entsteht) - da die Console nicht ausreicht, um den gesamten Inhalt darzustellen (und das würde mir helfen deinen Code besser zu verstehen).
2. Wie kann ich dann zum Beispiel auf den Eintrag 'PT' mit dem Messcode '2099' zugreifen und mir alle values() aus 'Attributes' ausgeben?
3. Wenn ich langfristig entscheide, dass für mich dann auch noch 'TX' und 'SY' entscheidend sind, muss ich dann "einfach nur" CLASSIFICATION_IDENTIFIER erweitern?

Ferner waren die Aussagen von mir war die Keys des Objekts und die Keys der Attribute nur Beispiele. Die folgenden Listen unterscheiden das (wobei sich diese mittelfristig ändern können - dann muss ich aber nur Einträge der Listen verschieben)

Code: Alles auswählen

CLASSIFICATION_OBJECT_KEYS = ('Objektart', 'Messcode', 'Bemerkung', 'Objekttyp', 'Beschreibung', 'Blockname', 'Layer', 'Kurzcode', 'Gruppe', 'SY-Art', 'SY-InsertMode', 'XSize', 'YSize', 'XSizeMin', 'XSizeMax', 'YSizeMin', 'YSizeMax', 'XSize-ID', 'XSize-Pos', 'YSize-ID', 'YSize-Pos', 'SY-ZusObj', 'SY-EinsetzPkt', 'SY-RiCode', 'PosRechts', 'PosHoch', 'Massband-Pos')
CLASSIFICATION_ATTRIBUTE_KEYS = ('Wert-ID', 'Wert-Spalte', 'Wert-Pos', 'Wert-Necessary', 'Wert-UebTab', 'Wert-Faktor', 'AT-Name', 'AT-Default', 'Ausrichtung')
Für den ersten Eintrag sollte/müsste das folgendes stehen:

Code: Alles auswählen

test = [
    {
        'Attributes': [
            {
                'Wert-Faktor': '',
                'Wert-ID': 'Herkunft',
                'Wert-Necessary': '',
                'Wert-Pos': '1',
                'Wert-Spalte': '',
                'Wert-UebTab': '',
                'AT-Name': 'Herkunft',
                'AT-Default': '',
                'Ausrichtung': ''
            },
            {
                'Wert-Faktor': '',
                'Wert-ID': 'ERFVERFAHR',
                'Wert-Necessary': '',
                'Wert-Pos': '2',
                'Wert-Spalte': '',
                'Wert-UebTab': '',
                'AT-Name': 'Erfassungsverfahren',
                'AT-Default': '',
                'Ausrichtung': ''
            },
            {
                'Wert-Faktor': '',
                'Wert-ID': 'BESTANDART',
                'Wert-Necessary': '',
                'Wert-Pos': '3',
                'Wert-Spalte': '',
                'Wert-UebTab': '',
                'AT-Name': 'Bestandsart',
                'AT-Default': '',
                'Ausrichtung': ''
            },
            {
                'Wert-Faktor': '',
                'Wert-ID': 'Bemerkung',
                'Wert-Necessary': '',
                'Wert-Pos': '4',
                'Wert-Spalte': '',
                'Wert-UebTab': '',
                'AT-Name': 'Bemerkung',
                'AT-Default': '',
                'Ausrichtung': ''
            }
        ],
        'Bemerkung': '',
        'Beschreibung': 'Freier Standpunkt',
        'Blockname': 'standpunkt',
        'Gruppe': 'Vermessungspunkte',
        'Kurzcode': '',
        'Layer': 'Vermessungspunkte<Herkunft>Freier_Standpunkt',
        'Massband-Pos': '',
        'Messcode': '1001',
        'Objektart': 'PT',
        'Objekttyp': 'Freier Standpunkt',
        'PosHoch': '',
        'PosRechts': '',
        'SY-Art': '',
        'SY-EinsetzPkt': '',
        'SY-InsertMode': '',
        'SY-RiCode': '',
        'SY-ZusObj': '',
        'XSize': '',
        'XSize-ID': '',
        'XSize-Pos': '',
        'XSizeMax': '',
        'XSizeMin': '',
        'YSize': '',
        'YSize-ID': '',
        'YSize-Pos': '',
        'YSizeMax': '',
        'YSizeMin': ''
    }
]
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Ja, schade. Wäre natürlich schön gewesen, wenn deine Beispieldaten die Interpretation zugelassen hätten. Dann hätte man auch verstehen können, dass Atribute nicht eindeutige Schlüssel-Wert-Paare sind.
Feedback1000 hat geschrieben: Samstag 28. Januar 2023, 13:321. muss ich zugeben, dass ich classifications noch nicht ganz verstehe (und vor allem wie es entsteht) - da die Console nicht ausreicht, um den gesamten Inhalt darzustellen (und das würde mir helfen deinen Code besser zu verstehen).
"classifications" ist ein dict mit je einem Schlüssel pro gefundenem CLASSIFICATION_IDENTIFIER. Der Wert ist jeweils eine Liste in denen jeweils die dicts der entsprechenden Classifications für die Objektart der Classification stehen.
Das was in deinem Code classification_points gewesen wäre ist jetzt classifications["PT"].
Und weil sich einfach nur der Schlüssel des dicts ändert, muss man da nicht mit else/if-Cascaden durch irgendwelche per Hand angelegten Listen wählen.
Feedback1000 hat geschrieben: Samstag 28. Januar 2023, 13:322. Wie kann ich dann zum Beispiel auf den Eintrag 'PT' mit dem Messcode '2099' zugreifen und mir alle values() aus 'Attributes' ausgeben?
Die verschiedenen Classifications stehen alle in einer Liste. Wenn du immer per Messcode darauf zugreifen möchtest, wäre es unter Umständen sinnvoller stattdessen ein dict mit dem key "Messcode" und den Daten als Value zu verwenden.
Momentan kommst du so an die entsprechende Classification:

Code: Alles auswählen

def main():
    classifications = load_classification(
        DATA_DIRECTORY / 'VDLF_test.csv')
    classification = [c for c in classifications["PT"] if c["Messcode"] == "2099"][0]
    print(f"clasification: {classification}")
Feedback1000 hat geschrieben: Samstag 28. Januar 2023, 13:323. Wenn ich langfristig entscheide, dass für mich dann auch noch 'TX' und 'SY' entscheidend sind, muss ich dann "einfach nur" CLASSIFICATION_IDENTIFIER erweitern?
Ja. Die werden dann genau so behandelt, wie bisher PT und PS. Das heißt, es wenn solche Daten gefunden werden, stehen sie in einer Liste mit dem Schlüssel "TX" oder "SY" als Ergebnis von load_classifications.


Du müsstest jetzt den Code so anpassen, dass der Schlüssel "Attributes" in den classifications kein dict mehr ist, sondern eine Liste mit dicts. Und dort dann die entsprechenden Werte hinein schreiben.

Wenn du nicht weiter kommst oder etwas nicht verstehst, frag gerne.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Habe mich erst einmal nur an den CLASSIFICATION_OBJECT_KEYS versucht und bekomme es nur hin, dass alle Attribute zu einem eigenen Eintrag werden.
Wo muss man den Hebel ansetzen, damit bei jedem neuen line ein neuer Eintrag geschrieben wird?

Wenn ich das Problem gelöst haben sollte dann sollt ich auch CLASSIFICATION_ATTRIBUTE_KEYS eingebunden bekommen.

Ferner: warum speicherst du die gesamte line in last_classification - Macht das für die Abfrage für die AT-Zeilen so noch Sinn?

Code: Alles auswählen

import csv
from collections import defaultdict
from pathlib import Path
from pprint import pprint

CLASSIFICATION_IDENTIFIER = (
    'PT',  # Punkt
    'PL',  # Linienzug
)
ATTRIBUTE_IDENTIFIER = 'AT'
DELIMITER_CSV = ';'

CLASSIFICATION_OBJECT_KEYS = (
    'Objektart', 'Messcode', 'Bemerkung', 'Objekttyp', 'Beschreibung', 'Blockname', 'Layer', 'Kurzcode',
    'Gruppe', 'SY-Art', 'SY-InsertMode', 'XSize', 'YSize', 'XSizeMin', 'XSizeMax', 'YSizeMin', 'YSizeMax',
    'XSize-ID', 'XSize-Pos', 'YSize-ID', 'YSize-Pos', 'SY-ZusObj', 'SY-EinsetzPkt', 'SY-RiCode', 'PosRechts',
    'PosHoch', 'Massband-Pos')
CLASSIFICATION_ATTRIBUTE_KEYS = (
    'Wert-ID', 'Wert-Spalte', 'Wert-Pos', 'Wert-Necessary', 'Wert-UebTab',
    'Wert-Faktor', 'AT-Name', 'AT-Default', 'Ausrichtung')

DATA_DIRECTORY = Path(
    r'C:/ProgramData/rmDATA/Shared/CodeGrafik')


def load_classification(filepath):
    classifications = defaultdict(list)
    with open(filepath) as csvdatei:
        reader = csv.DictReader(csvdatei, delimiter=DELIMITER_CSV)
        for line in reader:
            if line['Objektart'] in CLASSIFICATION_IDENTIFIER:
                line['Attributes'] = {}
                last_classification = line
                for key, value in line.items():
                    if key in CLASSIFICATION_OBJECT_KEYS:
                        classifications[line['Objektart']].append({key: value})
            elif line['Objektart'] == ATTRIBUTE_IDENTIFIER and last_classification:
                last_classification["Attributes"][line["Wert-ID"]] = line["AT-Name"]
            else:
                last_classification = None
    return classifications


def main():
    classifications = load_classification(
        DATA_DIRECTORY / 'VDLF.csv')
    # print(len(classifications['PT']))
    pprint(classifications['PT'])


if __name__ == '__main__':
    main()
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Das was du da mit den Keys für die classification machst, sieht nicht richtig aus.

Zu deiner Frage, warum ich "line" verwendet habe:
Weil du es in deinem Code getan hast.

Wenn du das nicht willst musst du den Part, der die Zeilen verarbeitet, die mit PT und PL anfangen, so anpassen, dass ein neues dict erstellt wird, dass nur die key/value-Paare aus line enthält, die du darin haben wlllst.
Wenn du das dict gleich last_classification nennst und, den Schlüssel "Attributes" mit einem leeren dict hinzufügst und das dann an die entsprechende Liste in classifications anfängst (also das, was bisher dort alles mit line gemacht wird) hättest du zumindest schon einmal den Teil bis auf die Attribute durch.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Hmm...so ganz funktioniert das auch noch nicht:

Code: Alles auswählen

import csv
from collections import defaultdict
from pathlib import Path
from pprint import pprint

CLASSIFICATION_IDENTIFIER = (
    'PT',  # Punkt
    'PL',  # Linienzug
)
ATTRIBUTE_IDENTIFIER = 'AT'
DELIMITER_CSV = ';'

CLASSIFICATION_OBJECT_KEYS = (
    'Objektart', 'Messcode', 'Bemerkung', 'Objekttyp', 'Beschreibung', 'Blockname', 'Layer', 'Kurzcode',
    'Gruppe', 'SY-Art', 'SY-InsertMode', 'XSize', 'YSize', 'XSizeMin', 'XSizeMax', 'YSizeMin', 'YSizeMax',
    'XSize-ID', 'XSize-Pos', 'YSize-ID', 'YSize-Pos', 'SY-ZusObj', 'SY-EinsetzPkt', 'SY-RiCode', 'PosRechts',
    'PosHoch', 'Massband-Pos')
CLASSIFICATION_ATTRIBUTE_KEYS = (
    'Wert-ID', 'Wert-Spalte', 'Wert-Pos', 'Wert-Necessary', 'Wert-UebTab',
    'Wert-Faktor', 'AT-Name', 'AT-Default', 'Ausrichtung')

DATA_DIRECTORY = Path(
    r'C:/ProgramData/rmDATA/Shared/CodeGrafik')


def load_classification(filepath):
    classifications = defaultdict(list)
    with open(filepath) as csvdatei:
        reader = csv.DictReader(csvdatei, delimiter=DELIMITER_CSV)
        for line in reader:
            if line['Objektart'] in CLASSIFICATION_IDENTIFIER:
                last_classification = line['Objektart']
                test = {}
                for key, value in line.items():
                    if key in CLASSIFICATION_OBJECT_KEYS:
                        test.update({key: value})
                classifications[last_classification].append(test)
                # classifications['Objektart'].append(test)
            # elif line['Objektart'] == ATTRIBUTE_IDENTIFIER and last_classification:
            # last_classification["Attributes"][line["Wert-ID"]] = line["AT-Name"]
            # else:
            #     last_classification = None
    return classifications


def main():
    classifications = load_classification(
        DATA_DIRECTORY / 'VDLF.csv')
    # print(len(classifications))
    pprint(classifications)


if __name__ == '__main__':
    main()
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Warum soll last_classification denn die Objektart sein?
last_classification muss das leere dict sein, das du "test" genannt hast.
Wobei ich bei näherer Betrachtung denke, dass das vielleicht auch "current_classification" heißen sollte. Aber das ist Kosmetik.

Vielleicht solltest du dir einmal die Dokumentation zu dicts anschauen und dann einmal erklären, was diese Zeile wohl macht:

Code: Alles auswählen

test.update({key: value})
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Kurze Zwischenfrage:
Warum funktioniert

Code: Alles auswählen

print(len(classifications['PT']))
aber

Code: Alles auswählen

print(f'Anzahl Punkte: {len(classifications['PT'])}')
nicht?!
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weil du nicht die gleichen Anführungszeichen innen wir außen verwenden kannst. Nimm außer Double und innen single quotes. Oder umgekehrt. Oder triple quotes aussen.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Das mit dem update habe ich in deinem Link nicht gefunden. Das ist aber auch nicht mein momentanes Problem: ich bin noch einmal einen Schritt zurückgegangen und bin mit dem defaultdict(list) noch ein wenig unzufrieden. Denn wenn ich es richtig verstanden habe, dann ist das erste Element immer so aus:

Code: Alles auswählen

defaultdict(<class 'list'>,
            {'PL': [{'Bemerkung': '',
                     'Beschreibung': 'Sonstiges Vermessungspunkte',
                     'Blockname': ''
                     #...
# wobei hier in diesem Beispiel "Attributes" nicht eingebaut ist - was aber für die Erklärung keinen Unterschied macht...
                     
Was ich aber eigentlich haben wollte ist - so glaube ich - das folgende:

Code: Alles auswählen

from pprint import pprint

test = {'PL': [{'Atttributes': [{'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}},
                                {'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}},
                                {'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}}
                                # ...
                                ],
                'Bemerkung': '',
                'Beschreibung': '',
                'Blockname': ''
                # ...
                },
               {'Atttributes': [{'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}},
                                {'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}}
                                # ...
                                ],
                'Bemerkung': '',
                'Beschreibung': '',
                'Blockname': ''}
               # ...
               ],
        'PT': [{'Atttributes': [{'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}},
                                {'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}},
                                {'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}}
                                # ...
                                ],
                'Bemerkung': '',
                'Beschreibung': '',
                'Blockname': ''
                # ...
                },
               {'Atttributes': [{'AT-Default': {}, 'AT-Name': {}, 'Ausrichtung': {}}
                                # ...
                                ],
                'Bemerkung': '',
                'Beschreibung': '',
                'Blockname': ''
                # ...
                }]}


pprint(test)
# Anmerkung: "..." steht hier in diesem Beispiel für die nicht eingetragenen keys() in CLASSIFICATION_OBJECT_KEYS bzw. CLASSIFICATION_ATTRIBUTE_KEYS
Gibt das Datenmodell so Sinn, oder habe ich jetzt einen absoluten Knoten im Kopf?!
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

__deets__ hat geschrieben: Sonntag 29. Januar 2023, 10:05 Weil du nicht die gleichen Anführungszeichen innen wir außen verwenden kannst. Nimm außer Double und innen single quotes. Oder umgekehrt. Oder triple quotes aussen.
Auch Backe, das erklärt es. Danke.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Habe noch ein paar "..." hinzugefügt....
Die Frage bleibt: gibt mein angedachtes Datenmodell so Sinn?

Code: Alles auswählen

from pprint import pprint

classifications = {
    'PL': [
        {
            'Atttributes': [
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                # ...
            ],
            'Bemerkung': '',
            'Beschreibung': '',
            'Blockname': '',
            # ...
        },
        {
            'Atttributes': [
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                # ...
            ],
            'Bemerkung': '',
            'Beschreibung': '',
            'Blockname': '',
            # ...
        }
    ],
    'PT': [
        {
            'Atttributes': [
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                # ...
            ],
            'Bemerkung': '',
            'Beschreibung': '',
            'Blockname': '',
            # ...
        },
        {
            'Atttributes': [
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                {
                    'AT-Default': {},
                    'AT-Name': {},
                    'Ausrichtung': {},
                    # ...
                },
                # ...
            ],
            'Bemerkung': '',
            'Beschreibung': '',
            'Blockname': '',
            # ...
        }
    ]
}

# Anmerkung: "..." steht für die fehlenden keys() in CLASSIFICATION_OBJECT_KEYS bzw. CLASSIFICATION_ATTRIBUTE_KEYS
pprint(classifications)
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Waum sind die values in "Attributes" dicts? Die sollten einfach ein String sein, oder?
Ich meine dies:

Code: Alles auswählen

'AT-Default': {},
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

Da haben wir vermutlich aneinander vorbei geredet. Weil ich das vermutet hatte, habe ich dann noch einmal mein "Ideal-Datenmodell" eingestellt.
Tatsächlich soll in 'Attributes' alle in CLASSIFICATION_ATTRIBUTE_KEYS gespeicherten Spalten aus der CSV als Dict gespeichert werden, da ich momentan noch nicht weis, welche Spalten genau ich weiterverarbeiten werden.
So kann ich dann später sagen: ok, gib mir zu jeder 'PL' die Attribute mit dem Key XYZ.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Ja. Dafür muss "Attributes" eine Liste mit dicts enthalten.
Meine Frage war, warum die einzelnen Attribute in deiner Datenansucht ebenfalls dict sind.
Feedback1000
User
Beiträge: 88
Registriert: Dienstag 20. September 2022, 21:21

So ganz verstehe ich deine Frage nicht. Wie könnte/sollte deiner Meinung nach das Datenmodell aussehen?
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das hier zb:

Code: Alles auswählen

    'PT': [
        {
            'Atttributes': [
                {
                    'AT-Default': {},
Was soll das? Neben dem offensichtlichen Rechtschreibfehler, warum hat AT-Default ein dict?
Antworten