Blog
Die
Kombination von GIS und lagebezogenen CAD-Daten scheint in vielen
Branchen eine Herausforderung zu sein und immer wieder begegnen mir
Menschen, die gezwungen sind diese zwei Programmwelten
überein zu bringen.
Im
Folgenden möchte ich versuchen, zumindest die Probleme bei der
Verarbeitung von DWG und DXF in QGIS ein wenig zu beleuchten, die mir
in den letzten Jahren über den Weg gelaufen sind.
Vorweg
zu bedenken:
Ein
CAD-Projekt kann zwar aus mehreren Layern zusammengestellt werden,
diese Layeraufteilung unterliegt allerdings keinen festen Zwängen.
Unterschiedliche Geometriearten und Texte können gemeinsam auf dem
gleichen Layer liegen.
QGIS
braucht aber zwingend eine Aufteilung der Geometrietypen und baut
sich diese beim Import der CAD-Daten.
Eine DWG/DXF bringt in der Regel keine Attribute mit. Die Attributtabelle, die in QGIS geöffnet werden kann, beinhaltet grafische Informationen, die sich auf die Darstellung der CAD-Objekte beziehen. Thematischen Informationen, die das Dargestellte weiter definieren, fehlen.
CAD-Datensätze bringen keine von QGIS lesbare Information über das Koordinatensystem mit, in dem sie ggf. gespeichert wurden. Diese Information ist extern einzuholen.
ACHTUNG: die Position der Zeichnung bezieht sich häufig nicht auf ein geographisches Koordinatensystem, sonder auf ein einfaches Kartengitter mit dem Ursprung 0/0.
Hier ein einige generelle Infos von Autodesk zu dem Thema:
GIS-Koordinatensysteme
DXG/DXF-Layer sind in QGIS nicht editierbar.
Seitenlayoutelemente sind Teil der CAD-Zeichnung, während sie in QGIS getrennt in einem Drucklayout abgespeichert werden. Wundert euch also nicht, wenn plötzlich Textboxen oder Nordpfeile in eurem Kartenfenster auftauchen, die ggf. nicht im Bereich der eigentlichen Projektfläche, sondern bei der Koordinate 0/0 liegen.
Zunächst
müssen wir uns diese Frage stellen:
Will ich die Daten weiter
verarbeiten können, oder nur anschauen? Brauche ich die
Layeraufteilung des CAD-Projektes und die Gestaltung? Und Habe ich es
mit einer .dwg oder einer .dxf Datei zu tun.
Eine
DXF kann, wenn man sie nur als "Hintergrundlayer" sehen
will, einfach via drag&drop in ein bestehendes Projekt geladen
werden.
Vorausgesetzt die Zeichnung wurde koordiniert erstellt
und für das QGIS-Projekt ist das selbe KBS gewählt, wird sie an die richtige Stelle projiziert.
QGIS
wird zwar ein Fragezeichen hinter den Layernamen ("...-
entities") setzen, die Objekte aber dank der mitgespeicherten
Ausdehnung richtig platzieren.
Das
Fragezeichen bezieht sich auf das nicht gesetzte
Koordinatenbezugssystem der DXF.
Mittlerweile
(QGIS Version 3.40) kann QGIS eingebettete Stile lesen und
wiedergeben und zeigt euch dadurch die Inhalte selbst bei einem einfachen
Einfügen ohne Import (dazu gleich mehr) recht CAD-nah an.
Nur
die Texte, falls vorhanden, werden euch in eurer QGIS-Oberfläche als
einfache Punkte angezeigt. Die Punkte stellen dabei den jeweiligen
Einfügepunkt dar, die eigentlichen Texte stehen in der
Attributtabelle, sind also in QGIS mit ein paar Klicks in der
Layergestaltung einfach einbaubar.
Wollt
ihr aber die DXF-Zeichnung inklusive der CAD-Projektstruktur sehen
oder eine DWG nutzen, dann muss ein Import ausgeführt werden.
Unter
dem Reiter Projekt findet ihr den Arbeitsschritt Import/
Export.

Der Unterpunkt Layer
aus DWG/DXF importieren bring euch dann zu einer Maske, in der
ihr die Parameter für euren Import definieren könnt.
Wenn
ihr eure Eingaben mit dem OK-Knopf bestätigt, passiert etwas
spannendes:
QGIS liest die Informationen der DXF/DWG und
speichert sie in einer eigenen, nach Geometriearten gelayerten
Geopackage ab.

Nun
werden die Information über die Layer, auf denen die Objekte im
CAD-Projekt eigentlich liegen, aus den Attributen der neuen GPKG-Layer abgelesen und die Objekte darin dann entsprechend
gruppiert und gefiltert(!).
In
eurem QGIS-Projekt erscheint die Struktur des CAD-Projektes.
WICHTIG: Speichert bitte das Projekt ab, damit euch dieser Projektaufbau in QGIS erhalten bleibt.
Hier
das Kapitel des QGIS-Benutzerhandbuches zum Öffnen von CAD-Daten:
importing a dwg or dxf file
Wenn
es nun noch darum gehen soll, diese neu in QGIS importierten Daten
weiter zu nutzen, steht noch ein wenig Arbeit an:
Um
sinnvoll mit den Daten arbeiten zu können, sollten thematisch
zusammengehörige Objekte auch gemeinsam auf Layern abgelegt und mit
Attributen versehen werden.
Nun
heißt es also: gefilterte Layer durchgehen und das exportieren, was
zur weiteren Verarbeitung benötigt wird.
Alternativ
könnt ihr euch auch die ungefilterten "hatches", "lines"
und "polylines" aus der Import-GPKG laden, diese nach Layer
kategorisieren und dann exportieren, was euch relevant erscheint.
Dabei
ist zu bedenken, dass sich thematisch zusammengehörige Objekte auf
unterschiedlichen Importlayern befinden können!
Abhängig davon,
wie diese Objekte im CAD gezeichnet wurden, werden sie gegebenenfalls
von QGIS als Polygon, Linie (=zwei Stützpunkte) oder Polylinie
(=mehrere Stützpunkte möglich) definiert.
Die
Geometrieart muss beim Export also mit beachtet werden.
Die Art, Objekte in einem CAD-Programm zu zeichnen beschäftigt uns auch noch auf eine zweite Weise: augenscheinlich zusammenhängende Linien entpuppen sich gegebenenfalls als einzelne Objekte, die man zunächst zusammenfassen muss, um GIS-konforme Geometrien zu bekommen.

Eine Topologie- oder Geometrieprüfung kann helfen, diese Objekte zu identifizieren.
Wenn alle Objekte in die richtige Geometrieart überführt, zusammengefasst und neu gespeichert sind, folgt das Hinzufügen von Attributen.
In den meisten CAD-Datensätzen sind wichtige Informationen, beispielsweise Straßennamen oder Höhenangaben, als Text an die Zeichnung geschrieben. Diese Texte befinden sich nun losgelöst von unseren Objekten auf einem Punktelayer.
Um diese Textinformationen möglichst automatisiert als Attribut an die Objekte zu speichern, kann mit lagebezogenen Verknüpfungsalgorithmen gearbeitet werden.

Ich habe versucht die einfachsten Methoden des Importes von DWG und DXF in QGIS kurz anzureißen. Es sind jedoch nicht die einzigen Wege, um in QGIS mit CAD-Daten zu arbeiten. Ihr kennt das, in QGIS führen viele Wege nach Rom ;)
Wer ein ggf. "hübscheres" Ergebnis seiner importierten DXF möchte und diese nicht als .gpkg sondern als .shp ausgeben will, sollte sich die Erweiterung AnotherDXFImporter anschauen, mit der ich auch schon gute Ergebnisse erzielt habe. Hier können Datensätze auch direkt Transformiert werden.
Zu
den Limitationen von CAD-Datensätzen im Bezug auf Geodaten und das
Zusammenspiel von raumbezogenen DWG/DXF und GIS kann man sich
übrigens beim Forschungsdatenzentrum Archäologie &
Altertumswissenschaften weiter informieren:
Unterschiede von CAD & GIS
Das war ein kleiner Einblick in das Arbeiten mit CAD-Daten in eurem QGIS Umfeld. Meldet euch gern bei mir, falls ich ganz spezielle Fragen zu dem Thema habt oder Unterstützung beim Kombinieren eurer Datensätze mit QGIS braucht.