Modell und Daten Import Workflow
Der Wizard kann über den Toolbar-Icon geöffnet werden oder über das Menu mit Datenbank > Model Baker > Import/Export Wizard.

Zur Auswahl von Transferdateien und Modellen für den Import oder die Erstellung einer neuen Datenbank folge der Beschreibung unten. Um ein QGIS-Projekt aus einer bestehenden Datenbank zu erzeugen springe zum Ende dieser Anleitung. Um Daten aus einer bestehenden Datenbank zu exportieren siehe die separate Anleitung dazu.
Note
Der Wizard öffnet genauso, wenn du Dateien mit der Endung xtf, ili or xml (xml nur wenn zusammen mit anderen Endungen) in QGIS reinziehst.
1. Quellen Auswahl
Auf der ersten Seite kannst du die zu importierenden Quellen auswählen.

INTERLIS Modelle
Quellen können INTERLIS-Modelle sein, die in ili-Dateien gespeichert sind, die du vom lokalen System auswählst (mit dem Filebrowser
oder mit Drag'n'Drop reinziehst).
Genauso kannst du INTERLIS Modelle über die Repositories oder Benutzerdefinierte Modellordner finden. Da die Modellnamen strikt so angegeben werden sollten, wie sie in den INTERLIS-Dateien geschrieben wurden, hilft die automatische Vervollständigung, sobald mit der Eingabe begonnen wird, verfügbare Modelle mit ihrer korrekten Schreibweise zu finden. Mit dem
können sie dann hinzugefügt werden.
Note
Die Modelle aus den Repositories werden lokal zwischengespeichert. Wenn du diesen Cache leeren möchtest, verwende die Schaltfläche Clear ilicache.
Das führt dich zu einem Vorgang, bei dem du die physische Datenbank in PostgreSQL oder GeoPackage anlegst.
Transfer- und Katalogdateien (Datenfiles)
Das xtf ist eine INTERLIS Transferdatei, die räumliche und/oder alphanumerische Daten gespeichert im XML Format enthält. Kataloge oder Codelisten sind technisch das Gleiche aber haben normalerweise xml als Dateiendung.
Die Auswahl von Datenfiles führt dich zum Prozess um die Daten in die physische Datenbank zu importieren.
2. Datenbank Konfiguration
Auf jeden Fall kannst du die Verbindung zur Datenbank konfigurieren.

- Datenbank Host IP oder Domain Name des Servers. Standard ist localhost.
- Datenbank Port Setzt den Port zum Server. Standard ist 5432.
- Datenbank Name Der Name der Datenbank. Die Datenbank soll schon existieren.
- Datenbank Schema Das Schema funktioniert wie ein Ordner, es hilft dir, Datenbankobjekte wie Tabellen und Beziehungen zu organisieren und sie von anderen Schemas zu isolieren. Lege das Datenbankschema fest, in welchem du das physische Modell erstellen oder die Daten aus der Übertragungsdatei importieren möchten. Du kannst auch ein bestehendes Schema wählen, in dem du ein neues physisches Modell erstellst, aber beachte, dass du dabei frühere ili2db-Konfigurationen überschreibt.
- Datenbank Benutzer Setze den:die Benutzer:in für den Datenbankzugriff.
- Benutzer Password Setze das Passwort für den Datenbankzugriff.
- Aufgaben zum Datenmanagement mit dem Superuser-Login aus den Einstellungen ausführen Wenn aktiviert, benutzt es das Login des Superusers (zu setzen in den Plugin Konfigurationen plugin configurations für Datenmanagement-Tasks wie z. B. das Erstellen des Schemas etc.
3. Import of INTERLIS Model
Modellwahl
Es gibt verschiedene Methoden, wie der Model Baker Wizard die zu importierenden INTERLIS-Modelle erkennt.
- Modelle aus den ausgewählten, lokalen
ini-Files. - Ausgewählt aus dem Repository.
- Aus einer gewählten Transfer- oder Katalogdatei geparst.
- Ein "Depending Model" des im ilidata.xml gefundenen Katalogs zu diesem Modell.
- Als ili2db Parameter definiert in der Metakonfiguration. Siehe Toppings.
Wenn du nur einen Modellnamen hast (wie in den meisten Fällen ausser den lokalen ini-Dateien), werden die Modelle in den Repositories oder dem Benutzerdefinierten Modell-Ordner gesucht. Es kann sein, dass Modelle mehrfach aufgelistet werden, wenn sie in verschiedenen Quellen gefunden wurden. Es ist dir überlassen, welches du wählst.

Du kannst die Modelle auswählen, die du in das physische Schema importieren möchtest.
Note
Über den Tooltip kannst du herausfinden, woher das Modell stammt.
Wenn dein Modell (gemäss ilidata.xml) eine Codeliste erfordert und diese Codeliste auf einem Modell basiert, das nicht strukturell mit deinem Modell verknüpft (importiert) ist, wird dieses hier ebenfalls aufgeführt.

Metakonfiguration / Topping
Wähle eine auf den Repositories gefundene Metakonfigurationsdatei aus, um ili2db-Einstellungen und Styling-Eigenschaften in dein QGIS-Projekt zu laden.
Ili2db Settings
Da Model Baker ili2db benutzt, kannst du in den Erweiterten Optionen festlegen, wie das konzeptionell und objektorientierte INTERLIS-Modell als physisches Modell abgebildet wird.

Vererbungstyp
Ili2db erlaubt drei Typen für die Implementierung der Vererbung.
- noSmartMapping Bildet alle Klassen des INTERLIS-Modelles im Zieldatenbankschema ab. Jede Klasse enthält alle Attribute. Model Baker bietet diese Option nicht an.
- smart1inheritance bevorzugt die Abbildung der Parent-Klasse in der Datenbank, solange bestimmte Bedingungen erfüllt sind. Attribute der Child-Klassen gehen nicht verloren, sondern werden in die Parent-Tabelle transferiert.
- smart2inheritance bevorzugt die Abbildung der Child-Klasse in der Datenbank. Attribute der Parent-Klassen gehen nicht verloren, sondern werden in die Child-Tabelle transferiert.
Basket Spalte erzeugen
Mit dieser Option aktivierst du das Dataset und Basket Handling im physischen Modell.
Wenn diese Option aktiviert ist, übergibt Model Baker --createBasketCol dem ili2db Kommando. Ili2db erstellt dann die zusätzliche Spaltent_basket in allen Klassen-Tabellen, womit dann auf Einträge in der zusätzlichen Tabelle t_ili2db_baskets referenziert wird. Der Wert in der Spalte t_basket muss dem Behälter (Basket) des Objekts entsprechen.
Note
Wenn BASKET OID im Modell definiert ist, wird vorausgesetzt, dass man das Behälter (Basket) Handling in QGIS nutzt (und wir das physische Modell mit dem ili2db Parameter --createBasketCol erstellen). Dies wird momentan nicht automatisch von Model Baker erkannt und muss von den Benutzer:innen sichergestellt werden.
Wenn das Dataset und Basket Handling aktiviert ist, wird ein Standard-Dataset namens Baseset erstellt und die Seite für die Erstellung von Baskets erscheint nach dem Schema-Import.
Mehrere Geometrien pro Tabelle in Geometrien
Wenn das INTERLIS-Modell Klassen enthält, die mehrere Geometrien beinhalten, können in GeoPackage Tabellen mit mehreren Geometriespalten erstellt werden.
Note
Diese Funktion ist nicht standardisiert, und solche Tabellen mit mehreren Geometrien erfordern die GDAL-Version >= 3.8, um in QGIS ausgeführt zu werden. Und selbst wenn deine GDAL-Version in Ordnung ist, können andere mit niedrigeren Versionen als 3.8 solche Tabellen im erstellten QGIS-Projekt nicht lesen. Die meisten modernen QGIS-Versionen unter Windows haben eine GDAL-Version >= 3.8 integriert.
Kreisbögen segmentieren
Wenn diese Option aktiviert ist, werden zirkuläre Bögen segmentiert wenn die Daten importiert werden.
SQL Scripts
Du kannst sql Scripts definieren die vor oder nach dem (Schema) Import ausgeführt werden.
Extra Meta Attribut Datei
Eine toml- oder ini-Datei kann Werte für Meta-Attribute (wie z. B. qgis.modelbaker.dispExpression) enthalten, anstatt diese direkt in der ili-Datei anzugeben.
Übersetzung
Wenn es sich bei dem importierten Modell um ein Übersetzungsmodell handelt (TRANSLATION OF), kannst du wählen, ob die Datenbankstruktur in der Übersetzungssprache oder in der Sprache des Originalmodells angelegt werden soll. Diese Einstellung steuert den Parameter --nameLang im Befehl ili2db.
4. Führe ili2db Sessions aus
Im nächsten Schritt kannst du alle Sessions ausführen, um dein physikalisches Modell zu erstellen. Falls ein Modell sowohl in einer lokalen ili-Datei (vom Benutzer:in hinzugefügt) als auch in den Repositories gefunden wird, wird das Modell aus der lokalen ili-Datei verwendet. Wenn mehrere Modelle aus den Repositories abgerufen werden, werden diese in einem Befehl übergeben. Du kannst die Befehle nacheinander oder alle zusammen ausführen.

Über die Schaltfläche
neben Ausführen kannst du den Befehl entweder ausführen, ohne Constraints oder ohne „Not-Null“-Constraints zu erstellen, oder den Befehl vor der Ausführung manuell bearbeiten.
Note
Wenn "Ausführen ohne Constraints“ ausgewählt ist, werden die Parameter --sqlEnableNull und --sqlColsAsText zusätzlich an ili2db übergeben, während die Parameter --createNumChecks, --createUnique und --createFk entfernt werden. Das Ergebnis ist eine äusserst tolerante Datenbank, die bei der Korrektur ungültiger Daten oder bei einer Migration eine große Menge an Dateneingaben zulässt. Wenn "Ohne not null ausführen“ ausgewählt ist, wird nur der zusätzliche Parameter --sqlEnableNull übergeben, und alle anderen Einschränkungen und Spaltentypen werden weiterhin berücksichtigt.
5. Erstelle Behälter
Falls du keine Daten hast, die du in deinen Standard-Dataset importieren willst, sondern aktuelle Daten in QGIS erfassen möchtest, müssen auch die Behälter angelegt werden. Es liegt ganz bei dir, für welche Topics du Behälter erstellen möchtest. Model Baker schlägt dir vor, welche Behälter erstellt werden sollten, und gibt sinnvolle Werte für die BID (Wert in der Tabelle t_ili_tid) vor, aber möglicherweise musst du diese anpassen.

Wenn du nicht weisst, worum es dabei geht, schau dir hier weitere Details an oder klick einfach auf Behälter erstellen und dann auf Weiter.
6. Importieren von INTERLIS Daten
Nachdem das physische Modell erstellt wurde oder du ein existierendes Datenbankschema ausgewählt hast, um deine Transfer- oder Katalog-Dateien zu importieren, kommst du zur Seite um die Einstellungen für die Datenimports zu machen.

Importreihenfolge
Während die Reihenfolge für den Import der INTERLIS-Modelle in der Regel nicht wichtig ist (siehe Ausnahmen), erfordert der Datenimport oft die richtige Reihenfolge. Transferdaten hängen oft von bestehenden Katalog- / Codelistendaten ab. Ziehe deine Dateien mit der Schaltfläche
per Drag-and-Drop in die richtige Reihenfolge.
Dataset Handling
Das Dataset und Basket Handling ist nur aktiv, wenn das physische Modell mit Erzeuge Behälter-Spalte (--createBasketCol) erstellt wurde.
Falls ja, werden die Daten mit dem ili2db Parameter --update importiert. Das heisst, dass alle existierenden Daten des gleichen Behälters aktualisiert werden (und gelöscht, sofern sie nicht existieren im Transferfile).
Wähle das Dataset in das du deine Daten importieren möchtest mit Doppelklick auf das Dataset Feld. Wenn du ein neues Dataset erstellen möchtest, benutze den Dataset Manager. Die entsprechenden Baskets werden dann mit dem Datenimport erstellt.

Wenn die zu importierenden Daten die eines Katalogs sind, wähle die Checkbox für Kataloge und es wird in ein Dataset importiert, das für Kataloge erstellt wurde (namens catalogueset).
Transferdaten aus den Repositories
Über die ilidata.xml aus den Repositories können nicht nur Metadaten für ili2db und das Styling empfangen werden. Ebenso können dort Katalogdaten gefunden werden, die über den Modellnamen referenziert werden. Das bedeutet, dass Model Baker die Repositories auf alle im Datenbankschema enthaltenen Modelle überprüft. Wenn referenzierte Katalogdaten gefunden werden, werden sie dir im Autovervollständigungs-Widget bereitgestellt. Füge sie mit dem Plus-Button
hinzu (die benötigten Modelle wurden bereits im INTERLIS-Modellimport vorgeschlagen).
Weitere Informationen zu den Katalogen in den Repositories findest du hier.
Daten zuerst löschen
Wenn du die Daten in der Datenbank zuerst löschen möchtest, kannst du das entsprechende Kontrollkästchen aktivieren. Bei der Verwendung von Behältern wird der ili2db-Parameter --replace anstelle von --update ausgeführt. Wenn keine Behälter verwendet werden, wird der Parameter --deleteData dem Befehl hinzugefügt. Beachte, dass bei Verwendung von Behältern nur die Daten des entsprechenden Datasets gelöscht werden, während ohne Behälter alle Daten aus dem Schema gelöscht werden.
7. Erstelle das QGIS-Projekt
Falls du dein Projekt aus einer existierenden Datenbank generierst, musst du zuerst die Verbindungsparameter setzen.
Danach generierst du mit einem einfachen Klick dein Projekt. Alle aus den Repositories empfangenen Toppings werden hierbei berücksichtigt.

So einfach ist das. Du kannst jedoch noch weitere Optionen wählen.

Ein Projekt-Topping auswählen
Wenn du zuvor bereits eine Metakonfigurationsdatei ausgewählt hast und diese Metakonfigurationsdatei auf eine Projekt-Topping-Datei verweist (eine YAML-Datei, die den Layerbaum und Links zu den Layer-Style-Dateien enthält), wird diese standardmässig berücksichtigt. Wenn du das Projekt aus einer bestehenden Datenbank erstellst, prüft Model Baker, ob dieses Schema mit einer Metakonfigurationsdatei erstellt wurde, um diese hier zu berücksichtigen. Wenn dies nicht der Fall ist oder du einfach eine andere Datei auswählen möchtest, ist diese Option ebenfalls verfügbar. Hole dir deine Projekt-Topping-Datei aus den Repositories oder von deinem lokalen System.
QGIS-Projekt optimieren, wenn erweitert
Falls du dein Projekt für eine erweiterte Modellstruktur generierst, die mit smart2inheritance erstellt wurde, kannst du es optimieren (nicht verwendete Layer und Relationen ausblenden oder gruppieren).
Wähle deine Optimierungsstrategie im Kontrollkästchen:
- Verstecke ungenutzte Basisklassen-Layer Basisklassen-Layer mit gleichnamigen Erweiterungen werden versteckt, ebenso wie Basisklassen-Layer mit mehreren Erweiterungen. Ausser wenn sich die Erweiterung im gleichen Modell befindet; in diesem Fall wird sie nicht versteckt, sondern umbenannt.
Relationen von ausgeblendeten Layern werden nicht erstellt und mit ihnen keine Widgets.
- Gruppiere ungenutzte Basisklassen-Layer Basisklassen-Layer mit gleichnamigen Erweiterungen werden in einer Gruppe gesammelt, ebenso wie Basisklassen-Layer mit mehreren Erweiterungen. Ausser wenn die Erweiterung im gleichen Modell liegt; in diesem Fall wird sie nicht gruppiert, sondern umbenannt.
Relationen von gruppierten Layern werden erstellt, aber die Widgets werden nicht auf das Formular angewendet.
Note
Ebenso kannst du Projekte optimieren, die mit smart1inheritance erstellt wurden. Dort werden lediglich die relevanten Typ-Werte an das t_type-Dropdown-Feld im Formular angehängt, wenn Verstecke ungenutzte Basisklassen-Layer ausgewählt ist. Eine "Gruppierungs"-Optimierung macht für smart1inheritance keinen Sinn.
Weitere Informationen zur Optimierung erweiterter Modelle findest du im entsprechenden Kapitel.
Bevorzugte Sprache für Objekte wie Layer und Felder
Wenn das importierte Modell ein Übersetzungsmodell ist (TRANSLATION OF), kannst du wählen, ob die QGIS-Projektelemente (wie Layernamen, Feld-Aliase usw.) unababhängig von der Sprache der Datenquelle in der Übersetzungssprache oder in der Sprache des Originalmodells vorliegen sollen.
8. OID-Werte
Oft erfordert die Modelldefinition systemübergreifend eindeutige Identifikatoren. Sogenannte OIDs, die in der physischen Datenbank als Spalte t_ili_tid dargestellt werden. Eine klare Definition und weitere Details dazu findest du im entsprechenden Kapitel.
Beim Erstellen eines QGIS-Projekts mit Model Baker werden voreingestellte Standardwert-Ausdrücke für das Feld t_ili_tid im Attributformular generiert. Oft müssen diese Standardwert-Ausdrücke jedoch vom Benutzer bearbeitet werden (wie z. B. das Präfix in der STANDARDOID).

Hier kannst du den QGIS-Ausdrucksdialog verwenden, um den Standardwert-Ausdruck für das Feld t_ili_tid jedes Layers zu bearbeiten.
Wenn du einen Zähler in den Ausdrücken benötigst, kannst du das Feld t_id verwenden, das über eine schemaweite Sequenz hochzählt. Diese Sequenz kann vom Benutzer ebenfalls zurückgesetzt werden, aber sei vorsichtig, sie nicht niedriger einzustellen als bereits vorhandene t_ids in deinem Projekt.
In der Datenbank ist die t_ili_tid weder eindeutig noch zwingend erforderlich (mandatory). Dies kann nützlich sein, wenn du zuerst deine Features erstellen und dann die t_ili_tid generieren möchtest, aber normalerweise möchtest du diese Constraints haben. Andernfalls wirst du beim Teilen oder Duplizieren von Features auf Probleme stossen.
Diese Einstellungen können auch an einem bestehenden QGIS-Projekt vorgenommen werden. Du findest den OID Manager über das Menü Datenbank > Model Baker.