Saturday, 14 February 2015

Sort inputs parameters in QGIS modeler


I created a model in QGIS 3.6 with three inputs parameters (two vector layer and one vector field). When I run the model, the inputs are not sorted in a correct way: the vector field is requested before the vector layer.


For this simple example, it doesn't matter, however for more complex models with severals inputs, I fear the user could feel not confortable.


Is it possible to choose the order of the inputs parameters ?


Here are two screenshot. "Conduite" = pipe in french "regard" = manhole in french


I want the user to select firstly "regard" layer, then "ID_regard" field within "regard" layer.



enter image description here


enter image description here



Answer



If you right-click your model and select the Export Model as Python Algorithm, you would get a translated script of your model. Here you could order the parameters however you like in the initAlgorithm() function. E.g.:


def initAlgorithm(self, config=None):
self.addParameter(QgsProcessingParameterFeatureSource('1conduites', '1_Conduites', types=[QgsProcessing.TypeVectorLine], defaultValue=None))
self.addParameter(QgsProcessingParameterVectorLayer('2regard', '2_Regard', types=[QgsProcessing.TypeVectorPoint], defaultValue=None))
self.addParameter(QgsProcessingParameterFeatureSource('3idregard', '3_ID_regard', types=[QgsProcessing.TypeVector], defaultValue=None))
self.addParameter(QgsProcessingParameterFeatureSink('Result', 'result', type=QgsProcessing.TypeVectorPolygon, createByDefault=True, defaultValue=None))


Then save and run your script which should list the parameters in the same order as in the script. This method means you need to run the script version instead of the model version but the interface is exactly the same.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...