XK (TQL): Difference between revisions

From Tygron Support wiki
Jump to navigation Jump to search
Line 27: Line 27:
And the Grid Overlay in the same project:
And the Grid Overlay in the same project:
<pre>
<pre>
{ "id" : 0, "name" : "Water Overlay" ,"keys": { "CULVERT_DIAMETER" : "MEASURED_DIAM" },
{ "id" : 6, "name" : "Water Overlay", "type" : "RAINFALL" , "keys": { "CULVERT_DIAMETER" : "MEASURED_DIAM" } }
</pre>
</pre>




The TQL statement  
The TQL statement  
<pre>SELECT_NAME_WHERE_BUILDING_IS_XK_CULVERT_DIAMETER</pre> is internally replaced with a list of TQL statements, separated by comma's,
<pre>SELECT_NAME_WHERE_BUILDING_IS_XK_CULVERT_DIAMETER_AND_GRID_IS_6</pre> is internally replaced with a list of TQL statements, separated by comma's,
<pre>SELECT_NAME_WHERE_BUILDING_IS_0, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_2, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_3, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_5</pre>
<pre>SELECT_NAME_WHERE_BUILDING_IS_0, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_2, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_3, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_5</pre>
Its result will be a list of names, separated by comma's, for example:
Its result will be a list of names, separated by comma's, for example:

Revision as of 13:49, 15 May 2026

The XK clause value is a variation on the XA clause value. The characters 'XK' should be followed by an underscore and the name of a Key; for example XK_CULVERT_DIAMETER. Also see the example below.

This Key is used to obtain the name of an Attribute, given a Grid Overlay. This Grid Overlay is obtained from the same TQL statement, which should contain one of the following clause parameters:

The result of using 'XK' for the clause value, is the automatic creation of multiple TQL statements, one with each Item ID for that Clause Parameter that can be found in the project data. Items are only taken into account of they contain the attribute specified for the indicated key.

Internally, the resulting TQL statements are placed in a single array; Similarly the result will be an array of TQL results.


Example

Consider the following (simplified) Building data of a project:

[ 
 { "id" : 0, "name" : "Duiker A", "attributes": { "CULVERT_DIAMETER" : [1.0], "MEASURED_DIAM" : [0.2] } },
 { "id" : 1, "name" : "Kerklaan", "attributes": { "MONUMENTAL_HOUSE" : [1.0] } }, 
 { "id" : 2, "name" : "Duiker B", "attributes": { "CULVERT_DIAMETER" : [0.5], "MEASURED_DIAM" : [1.0], } }, 
 { "id" : 3, "name" : "Duiker C", "attributes": { "CULVERT_DIAMETER" : [1.0] } },
 { "id" : 4, "name" : "Duiker K", "attributes": { "CULVERT_DIAMETER" : [2.0], "MEASURED_DIAM" : [0.0] } } 
 { "id" : 3, "name" : "Duiker M", "attributes": { "CULVERT_DIAMETER" : [0.0], "MEASURED_DIAM" : [2.0] } },
]

And the Grid Overlay in the same project:

{ "id" : 6, "name" : "Water Overlay", "type" : "RAINFALL" , "keys": { "CULVERT_DIAMETER" : "MEASURED_DIAM" } }


The TQL statement

SELECT_NAME_WHERE_BUILDING_IS_XK_CULVERT_DIAMETER_AND_GRID_IS_6

is internally replaced with a list of TQL statements, separated by comma's,

SELECT_NAME_WHERE_BUILDING_IS_0, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_2, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_3, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_5

Its result will be a list of names, separated by comma's, for example:

"De Manege", "De Lancaster", "Marylebone", "Hyde Park"

Clause Parameters

The X value can be used in the following TQL Clause parameters:

Notes

  • In case no Grid is specified by any of the other clauses of the original TQL statement, the result will be 0 generated TQL statements; an empty array.

See also