Table of Contents

pitFM Add-on - ALKIS (pitFM_ALKIS.dll)

Es wird ALKIS bis zur Version 7.1.2 unterstützt. Gilt ab Version Add-on-Version 1.1. Ältere Add-on-Versionen unterstützen ausschließlich Version 6.0.x.

Dieses Add-on kann ALKIS-XML-Daten im NAS-Format einlesen und erzeugt daraus für pit benötigte CSV-Dateien.

Für die Konvertierung der Alkis-Daten in CSV-Dateien über die Konsole steht eine Konsolenanwendung zur Verfügung. Diese heißt pitFM_AlkisApp.exe und wird als separate ZIP-Datei zur Verfügung gestellt.

pit Projekte welche dieses Add-on nutzen

  • Landesbetrieb Bau- und Liegenschaftsmanagement Sachsen-Anhalt (BLSA)

Technisches

Code-Respository: https://dev.azure.com/pit-cup/pitFM_Addons/_git/pitFM_Alkis

Releaseverzeichnis: X:\FM\AddOns\ALKIS

Zum CSV Format

Als Standard-Separator für die Werte wird das Semikolon ";" verwendet.

Gleitkommazahlen werden immer im englischen Format, eigentlich Sprachunabhängig, in das CSV exportiert. Trenner für 1'000 und größere Zahlen werden nicht exportiert.

Bsp.: 33.99 3344.99 1000000.1

Das Datum wird immer im deutschen Format exportiert. Dabei wird immer das Datum wie auch die Zeit mit führender 0 exportiert.

Bsp.: 21.12.2024 13:10:55

Hinweise

Es kann Probleme mit zu großen ALKIS-XML-Dateien geben. Es konnte bisher mangels großer Testdaten nicht verifiziert werden wie groß die XML-Datei sein darf. Jedoch könnte es sein, dass ab einer Dateigröße von 1GB Abstürze des Add-ons auftreten.

Falls beim Konvertieren von mehreren ALKIS-XML-Dateien Referenzen über verschiedene XMLs existieren, werden diese Referenzen aktuell nicht aufgelöst. XML-Dateien mit solchen Referenzen werden aktuell nicht unterstützt. Das Cachen und Ermitteln der Referenzen ist dafür vorbereitet jedoch werden Querverweise noch nicht unterstützt.

Release Notes

Version 1.2.0 - (ALKIS 6.0.1 - 7.1.2)

  • Konsolen Applikation implementiert.
  • Fix für den Import mehrerer ALKIS-XMLs erstellt.

Version 1.1.0 - (ALKIS 6.0.1 - 7.1.2)

  • ALKIS wird jetzt bis zu Version 7.1.2 unterstützt.
  • Auflösen der ALKIS-Referenzen über den XML-DOM wurde durch Caching ersetzt.
  • Verwendung von globalen XML-Namespaces wurde entfernt.
  • Das Lesen, der ALKIS-XML, ist jetzt Thread-safe.
  • Tests für ALKIS 7 hinzugefügt
  • Abrufen der XML-Werte wurde mit Extensions vereinfacht.
  • Fix für das Schreiben der HTNutzungsarten.csv. Mapping von Flurstück zu TatsächlicheNutzung.
  • Performance-Update für N+1-Problem beim Ermitteln der Schnittmenge zwischen Flurstücke und TatsächlichenNutzung. Vortest mit BoundingBoxen statt vollständigem Pfad.

Version 1.0.2 - (ALKIS 6.0.1)

  • Tests hinzugefügt
  • Code-Refactoring
  • Code dem aktuellen Add-on Standard angepasst. (PitFmInterface-Klasse)
  • Alkis-Ids werden nicht mehr verändert
  • Gleitkommazahlen werden immer im englischen Format in das CSV exportiert. -> 3344.9
  • Datum wird immer im deutschen Format in das CSV exportiert. -> 21.12.2024 13:10:55

Version 1.0.0.1 - (ALKIS 6.0.1)

  • Überführung des Quellcodes in das Repository. Dies ist die originale Version, welche für das BLSA Projekt erstellt wurde.

Funktionen

Add-on

Es stehen zwei Funktionen zum Einlesen der ALKIS-XML-Dateien bereit. Für Details siehe Summarys.

/// <summary>
/// Liest die übergebene ALKIS-XML-Datei ein und erstellt die CSV Dateien.
/// </summary>
/// <param name="alkisXmlFilePath">Dateipfad zu der ALKIS-Datei.</param>
/// <param name="csvTargetPath">Pfad zum Verzeichnis, in welches die CSV-Dateien geschrieben werden sollen.</param>
public static void AlkisCreateCsvFromXmlFile(string alkisXmlFilePath, string csvTargetPath);
/// <summary>
/// Liest die übergebenen ALKIS-XML-Dateien ein und erstellt die CSV Dateien.
/// </summary>
/// <param name="alkisXmlFilePaths">Separate Dateipfade, zu den ALKIS-Dateien.</param>
/// <param name="csvTargetPath">Pfad zum Verzeichnis, in welches die CSV-Dateien geschrieben werden sollen.</param>
public static void AlkisCreateCsvFromXmlFiles(string[] alkisXmlFilePaths, string csvTargetPath);

Konsolen Applikation

Wenn man die Konsolen-Applikation ohne Parameter startet, wird eine Hilfe angezeigt. Die Konsolen-Applikation unterstützt 2 Eingabeparameter.

Nach dem Parameter -f wird eine oder mehrere Dateien erwartet. Falls die Datei nicht in dem Verzeichnis liegt, muss der Pfad zu der Datei mit angegeben werden.

Nach dem Parameter -t wird das Zielverzeichnis für die erzeugten CSV-Dateien erwartet. Das Zielverzeichnis muss bereits existierten, sonst wird ein Fehler angezeigt.

Nachfolgend ein paar Ausführungsbeispiele:

pitFM_AlkisApp.exe -t Zielverzeichnis -f ALKIS-XML-Dateinamen
 
pitFM_AlkisApp.exe -t c:\temp\ALKIS-CSV -f alkisFile1.xml
pitFM_AlkisApp.exe -t c:\temp\ALKIS-CSV -f alkisFile1.xml alkisFile2.xml
pitFM_AlkisApp.exe -t ..\ALKIS-CSV -f alkisFile1.xml alkisFile2.xml alkisFile3.xml

Es können auch alle Alkis-Dateien in dem aktuellen Verzeichnis mit der Wildcard *.xml übergeben werden. Wenn diese Wildcard angegeben wird, sucht die Applikation alle xml-Dateien in dem Arbeitsverzeichnis und verwendet diese als Eingabe.

// Zu beachten ist, dass nur *.xml als Eingabe unterstützt wird.
pitFM_AlkisApp.exe -f *.xml -t c:\temp

// NICHT unterstützt wird die Wildcard mit einer Pfadangabe.
pitFM_AlkisApp.exe -f ../*.xml -t c:\temp
pitFM_AlkisApp.exe -f c:\temp\*.xml -t c:\temp