Create QGIS projects from database schemas or Interlis models
Using ili2db version 5.0.1
Using modelbaker library 1.7.2
Using ili2db version 5.0.1
Using modelbaker library 1.7.1
Using ili2db version 5.0.1
Using modelbaker library 1.7.0
This release focuses on topping handling (UsabILIty Hub) but brings as well some improvements of the workflow wizard in general. It makes some missing bits available like for example the using of a project topping on generating a project and the possiblity to delete the data in the schema before import.
Since ili2db 4.11 the id of the metaconfiguration file used to create the physical database is stored in the meta-tables. This means, on Project Creation we consider this id and provide the linked project topping.
Still it's possible to disable it and choose another project topping file (YAML
).
You can choose a project topping file (identified by model, db-type etc.) from the UsabILITy Hub repositories or as well a YAML file from the local system.
... and not "metaconfiguration* file?
Because on this step only project topping files are relevant. Metaconfiguration files are only relevant, when the schema is created. We thought about to provide them, to choose the same like on schema import, but this part is already provided by getting the topping from the DB.
Financed by Canton of Schwyz and the QGIS Model Baker Group
Model Baker only provides the toppings that are made for the current database source (GeoPackage, PostgreSQL etc.) in case it's defined in the ilidata
at the category
with the key http://codes.modelbaker.ch/preferredDataSource
. If there is no such category it's always displayed - so there are no backwards compatibility issues.
Here it detects what database sources are used and suggests you to optimize. You still can choose none.
Financed by the QGIS Model Baker Group
It is now possible to delete the existing data before importing new data. This means on using baskets, the ili2db parameter --replace
is executed instead of --update
. On not using baskets, the parameter --deleteData
is added to the command. Note that on using baskets, only the data from the corresponding dataset is deleted, whereas on not using baskets all data from the schema is deleted.
Financed by the QGIS Model Baker Group
Sometimes the wizard has to load - mostly checking the repos to suggest data / reload the comboboxes. And there users are confused, what's happening. For this reason it does now disable the page (instead of just freeze) and show a busy indicator as a bar below the log panel.
Financed by the QGIS Model Baker Group
qgis.modelbaker
for Model Baker specific Meta Attributes. See documentation
---
when no oid-domain defined in the OID Managerin https://github.com/opengisch/QgisModelBaker/pull/864
Using ili2db version 5.0.1
Using modelbaker library 1.7.0
Main feature of this release is all about OIDs, a pain point that has existed for quite some time. First thing is the OIDs generated for the single objects, means the TID (or t_ili_tid in the physical database) what is done with default value expressions. The second thing is the OIDs generated for basket-objects, means the BID (and as well t_ili_tid in the physical database), when creating baskets, what now can be controlled by the user as well.
Often the models definition requires a cross-system unique identificator. The so called OID.
Model Baker detects the OID domain (like UUIDOID
, I32OID
, STANDARDOID
, ANYOID
or user defined OID) and suggests default value expressions used in the t_ili_tid
fields.
Since the user have to be able to edit those values, they are provided in the GUI.
See documentation
There is an additional page after the generation of the QGIS project.
You can use the QGIS Expression Dialog to edit the default value expression for the t_ili_tid
field of each layer.
See documentation
Find the TID (OID) Manager via the Database > Model Baker menu.
If you need a counter in the expressions, you can use the t_id
field, that has a schema-wide sequence counting up. This sequence can be reset as well by the user, but be carefull not to set it lower than already existing t_id
s in your project.
This feature has been financed in a crowdfunding project by geostandards.ch, Canton of Schaffhausen and the QGIS Model Baker Group
In case you create a new dataset (e.g. the Baseset
that is created by Model Baker automatically) and you want to collect fresh data in QGIS (no import of existing data), the baskets have to be created as well.
Here the BID
definition needs to be considered.
There is an additional page after the schema import when the Baseset
is created.
Reasonable BIDs are suggested, but of course some of them (like STANDARDOID
) need editing by the user.
As well Model Baker suggests what baskets should be created or not (it sees it as relevant in case it's not extended by other topics).
See documentation
Of course you might want to create additional Datasets and with it the Baskets. Here is a new option Manage baskets of selected dataset to create the baskets you want.
See documentation
This feature has been financed in a crowdfunding project by geostandards.ch, Canton of Schaffhausen and the QGIS Model Baker Group
On PostgreSQL connections you are now able to select your schema.
This feature has been financed by the Canton of Schaffhausen
Using ili2db version 5.0.1
Using modelbaker library 1.6.0
On extended class's layers all possible baskets (if NONE-Strategy) or only the relevant ones (if GROUP- or HIDE-Strategy) are listed in the widget of the t_basket
field.
In the dataset selector all possible baskets (if NONE-Strategy) or only the relevant ones (if GROUP- or HIDE-Strategy) are listed. The chosen value is then written to the project variable and can be used as default value.
Using modelbaker library 1.5.1
This release offers new features that make working with advanced capabilities of INTERLIS even more enjoyable, such as with advanced models and using validation configurations. Furthermore, it offers some enhancements and fixes, like clearing the cache, a pleasant log and the support of drag'n'drop of extra meta attribute files.
If a model or topic contains extended classes, the inclusive base classes are implemented in the physical database what leaded to a confusing layer tree, messy forms and lots of unused relations.
While the you only want to see, what is relevant for you, Model Baker detects the irrelevant layers and lets you to apply an optimization to the project.
When generating a project you can now choose one of the following strategies to optimize your project:
Base class layers with extensions of the same name are hidden and base class layers with multiple extensions also. Unless the extension is in the same model, then it's not hidden but renamed. Relations of hidden layers are not created and thus the widgets for them neither.
Base class layers with extensions of the same name are grouped, base class layers with multiple extensions also. Unless the extension is in the same model, then it's not grouped but renamed.
Relationships of grouped layers are created, but widgets are not applied to the form.
Independently from extended models (but pretty much connected to it), we eliminate ambiguous layer naming in general. This means:
This feature has been financed by QGIS Anwendergruppe Schweiz - Groupe d'utilisateurs QGIS Suisse - Swiss QGIS User Group
Warning and information messages are printed to the log panel of the wizard dialog. This is good to see the information immediately, but to track down a problem, users and developers require the information of past actions. The new logging functionality saves each log output to a daily file (in the plugin directory, i.e. the QGIS profile folder) and keeps the last ten files accessible via the Model Baker menu.
If Java is not installed, a barely visible log line used to be output. For people using Model Baker (and thus ili2db) for the first time, this was quite confusing. Now a popup appears indicating that Java is not installed and pointing to a possible download source.
In several places, but especially on the Source Selection Page, the user can select and use a model from the network of Swiss Geodata Repositories. These files are downloaded and cached locally. In case of immediate changes - which is not often the case, but can be if the model is in a test phase - the problem can occur that a different file (the one from the cache instead of the one from the repository) is used. Users had to delete the cache folder manually, which was usually too advanced and inconvenient. This is now solved by having a button do it for you.
Since some time you have the possibility to select a config file in the validator and pass it to ili2db. Since it is meaningful to use this multiple times, it is handy that you can now store the path in the QGIS project variables. The path is stored relatively (so that the project can be exchanged to other systems), but passed absolutely to ili2db. Likewise, it is possible to pass (and store) a key to the ilidata repository, like ilidata:<key>
.
While Model Baker claims to do everything for you when dragging and dropping files into QGIS, the Extra Meta Attribute Files (the file formerly known as the toml file) were not considered. This is now fixed. When you drop an additional Extra Meta Attribute File, it is automatically set in the advanced schema import settings.
STRUCTURE
object cannot exist without a parent. This means when the parent is deleted the entry in the linking table (the structure) needs to be deleted. Means, every relation with a child that is a structure, shall have composition as strength.Using ili2db version 5.0.0 fixing this https://github.com/opengisch/QgisModelBaker/issues/779
Using modelbaker library 1.5.0
Using modelbaker library 1.4.4
Using modelbaker library 1.4.3
This release brings better support of working with extended models concerning export and validation.
If your data is in the format of the cantonal model, but you want to export it in the format of the national model, you have to pass --exportModels
to ili2db, otherwise (or if the data cannot be exported/validated in the selected model because it's not an extension of it) the data is exported in the model it is stored.
Usually, this is one single model. However, it is also possible to pass multiple models, which makes sense if there are multiple base models in the schema you want to export.
Note that this implementation works as addition (and not replacement) of the filters where models can be passed to define what data (not what format) should be exported.
The tool tip is listing all the relevant parent models (the ones that are listed as well, means are exportable).
The export session visualization has been improved, helping for more clearity.
Same is now supported in the validator as well.
When the data are validated in the model where they are stored (here Staedtischer_Ortsplanung_V1_1
extending Kantonale_Ortsplanung_V1_1
, all the constraints are considered. Means the one of the extended model and of its parents.
And when validating according to the parent model, only the parent model's constraints are checked (and the parent's parent's constraints of course :smile:
This feature has been financed by QGIS Anwendergruppe Schweiz - Groupe d'utilisateurs QGIS Suisse - Swiss QGIS User Group
Using ili2db version 4.10.0
Using modelbaker library 1.4.3