[Qgis-user] Problem using Model Inputs variable in an Select by expression in the model Designer
Nicolas Cadieux
njacadieux.gitlab at gmail.com
Mon Aug 23 09:52:21 PDT 2021
Hi,
if(attribute(to_string( @NamelengthField )) != "LENGTH2", TRUE, FALSE )
("LENGHT2" is an existing field and @NamelengthField was a model input
string.)
This worked for me! If you have the time, please explain why I needed
the _attribute()_ function for this to work. I looked in the
documentation and did not find it very clear.
Thanks a million you saved my butt!
Nicolas
On 2021-07-20 5:53 a.m., Charles Dixon-Paver wrote:
> Hi Nicholas,
>
> I haven't had time to dig into this extensively or encountered this
> particular issue, but I would suggest trying to "force" the expression
> to retrieve the correct info regardless of context using something
> like this:
>
> with_variable('Length2', to_string(@NamelengthField) || '2',
> if(attribute(to_string(@NamelengthField)) != attribute(@Length2),
> TRUE, FALSE))
>
> That's probably an extreme example but hopefully it illustrates my
> point. If you want to share a sample dataset/ model I can try to have
> a look at how to resolve it.
>
> Regards
>
> On Tue, 20 Jul 2021 at 10:46, Richard McDonnell
> <richard.mcdonnell at opw.ie <mailto:richard.mcdonnell at opw.ie>> wrote:
>
> Nicolas,
>
> I have not looked at this in too much detail, but at a quick
> glance, could it not be the fact that you should be using the
> newly created fields? As in instead of *@NamelengthField !=
> @NamelengthField || '2'*, should it not be more like your previous
> example *Length != Length2*
>
> Regards,
>
> Richard
>
>
> ——
> Richard McDonnell MSc GIS, FME Certified Professional
> /FRM Data Management/
>
> ——
> Oifig na nOibreacha Poiblí
> Office of Public Works
>
> Sráid Jonathan Swift, Baile Átha Troim, Co na Mí, C15 NX36
> Jonathan Swift Street, Trim, Co Meath, C15 NX36
> ——
> M +353 87 688 5964 T +353 46 942 2409
> https://gov.ie/opw <https://gov.ie/opw>
>
> ——
> To send me files larger than 30MB, please use the link below
> https://filetransfer.opw.ie/filedrop/richard.mcdonnell@opw.ie
> <https://filetransfer.opw.ie/filedrop/richard.mcdonnell@opw.ie>
>
> Email Disclaimer:
> https://www.gov.ie/en/organisation-information/439daf-email-disclaimer/
> <https://www.gov.ie/en/organisation-information/439daf-email-disclaimer/>
>
>
> *From:*Qgis-user <qgis-user-bounces at lists.osgeo.org
> <mailto:qgis-user-bounces at lists.osgeo.org>> *On Behalf Of *Nicolas
> Cadieux
> *Sent:* 20 July 2021 09:27
> *To:* Qgis Users List <qgis-user at lists.osgeo.org
> <mailto:qgis-user at lists.osgeo.org>>
> *Subject:* Re: [Qgis-user] Problem using Model Inputs variable in
> an Select by expression in the model Designer
>
> Hi,
>
> Does anyone have an idea?
>
> Nicolas Cadieux
>
> https://gitlab.com/njacadieux <https://gitlab.com/njacadieux>
>
>
>
> Le 8 juill. 2021 à 01:17, Nicolas Cadieux
> <njacadieux.gitlab at gmail.com
> <mailto:njacadieux.gitlab at gmail.com>> a écrit :
>
>
>
> Hi,
>
> I am creating a model that fixes Network files before they are
> used in the QGIS Network analysis (Shortest path) tools.
>
> This is my work flow:
>
> 1. Create a "Length" field (value) and calculate $length in
> the field calculator
> 2. Split the Multipart lines into Singlepart lines
> 3. Create a "Length*2*" field (value) and calculate $length
> in the field calculator
> 4. Select by expression Length != Length2. This basically
> gives me a selection of line that have been modified by
> the Multipart to Singlepart algorithm. (I get 8 results)
>
> This works well
>
> The problem is when I create and Input String to let the user
> create a "Length" field. This become a variable called
> @NamelengthField. My work flow become:
>
> 1. User input "Length" in the Model input. (@NamelengthField)
> 2. Create a "Length" field using @NamelengthField (as
> pre-calculated value) and calculate $length in the field
> calculator: This is OK
> 3. Split the Multipart lines into Singlepart lines: This is OK
> 4. Create a "Length2" field using @NamelengthField ||'2' (as
> pre-calculated value) and calculate $length in the field
> calculator: This is OK this field (Length2) is created and
> calculated properly.
> 5. I get stuck when I try Select by expression using
> @NamelengthField != @NamelengthField || '2' (as
> pre-calculated value) (I get all lines back) and the test
> does not work.
>
> I tried stuff like
>
> @NamelengthField != (@NamelengthField || '2')
>
> '@NamelengthField != @NamelengthField || '2''
>
> "@NamelengthField != @NamelengthField || '2'"
>
> "@NamelengthField"|| !=|| "@NamelengthField || '2'"
>
> Even simple @NamelengthField = 5.286365157529550 (which should
> extract exactly one value).
>
> Any ideas?
>
> Nicolas
>
> QGIS 3.18.2 on Windows 10
>
> --
>
> Nicolas Cadieux
>
> https://gitlab.com/njacadieux <https://gitlab.com/njacadieux>
>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org <mailto:Qgis-user at lists.osgeo.org>
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> <https://lists.osgeo.org/mailman/listinfo/qgis-user>
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
> <https://lists.osgeo.org/mailman/listinfo/qgis-user>
>
--
Nicolas Cadieux
https://gitlab.com/njacadieux
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20210823/9556a22e/attachment-0001.html>
More information about the Qgis-user
mailing list