[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