# CSV Export
Die Export Datei sollte grundsätzlich eine .csv Datei in **utf8** Codierung sein, welche wie folgt aufgebaut sein soll:

```csv
Elementnummer;TeileArt;TeileId;NachbarIds;Bezeichnung;Planquadrat;Merkmale;
1;"ILS 2.0 Kreisel";(id);(nachbarids);"Kreisel 1 im 1.Stock";"1/A";{ "Kreiselart":"Pin/Standard", Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5", "Anzahl der Separatoren":"2", "Anzahl der Scanner":"1", "Anzahl der Scanner":"1", "Anzahl der Rampen": "4"  }
2;"ILS 2.0 Kreisel mit Pin";(id);(nachbarids);"Pinkreisel 1 im 1.Stock";"1/A";{ "Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5", "Anzahl der Separatoren":"2", "Anzahl der Scanner":"1", "Anzahl der Scanner":"1", "Anzahl der Weichen": "4"  }
3;"ILS 2.0 Eckrad";(id);(nachbarids);"Eckrad 1.Stock";"1/A";{ "Anzahl der Zusatzseparatoren":"3", "Länge in Meter":"3.2",}
4;"ILS 2.0 Gefällestrecke";(id);(nachbarids);"Gefällestrecke am 1. Kreisel";"1/A";{ "Anzahl der Zusatzseparatoren":"3", "Länge in Meter":"3.2",}
5;"Förderer";(id);(nachbarids);"Förderer am 1. Kreisel";"1/A";{ "Höhe ETF oben in Meter":"3", "Höhe ETF unten in Meter":"2.3", "Zusatzseparator":"3",}
6;"BT - Beladung";"BT Beladung";"2/X";{}
7;"Abwurf für Klammerbügel";(id);(nachbarids);"Abwurf";"2/Y";{}
8:"ILS 2.0 Weiche";(id);(nachbarids);"Weiche 1: zw. Kreisel 2 und Kreisel 3";"{ "Weichenart":"passiv/aktiv" }"
```
Die erste Zeile ist als Kommentar enthalten.
Jede Zeile ist exemplarisch für eine aktuell implementiertes Objekt (Kreisel, Kreisel mit Pin, Eckrad, usw.).

Beim Export ist dies einfache eine Liste aller Objekte, welche vom Benutzer in dieser Session / in dieser Anlage angelegt wurden.

 Die Merkmale jedes Objektes werden wie in die Datei geschrieben, wie sie im RD verwendet werden. Eine Übersetzung in die Merkmale für das ERP findet ausserhalb statt. 

- Die **Elementnummer** ist einfach eine laufende Nummer
- Die **TeileArt** ist ein Bezeichner, welches jedes Objekt als Eigenschaft mit gegeben hat (ich bin ein “Kreisel”, “Kreisel mit Pin”, etc.)
- **TeileId** ist eine eindeutige ID diese Objekts
- **NachbarIds** ist eine kommaseparierte Liste aller Objekte, welche sich in direkter Nachbarschaft zum Objekt befinden
- **Bezeichnung** sollte vom Benutzer jedem Objekt zugewiesen werden können, um in den Listen besser ein Verständnis zu diesem Objekt zu finden
- **Planquadrat** ist die Position des Objekts auf der 2D Ebene. Wurde kein Planquadrat definiert, sollen einfach die X/Y Koordinaten des Objekts ausgegeben werden
- **Merkmale** sind die vom Nutzer angegebenen Merkmale dieses Objeks, Z.B. Abstand der Motor zur Spannstation, Höhe, usw. im json format 
Beim Kreisel ist dies zum Beispiel
```json
{
    "Kreiselart":"Pin/Standard", 
    "Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.5",
    "Anzahl der Separatoren":"2", 
    "Anzahl der Scanner":"1", 
    "Anzahl der Scanner":"1", 
    "Anzahl der Rampen": "4"  
 }
```
