XC (TQL): Difference between revisions

From Tygron Support wiki
Jump to navigation Jump to search
Maxim@tygron.com (talk | contribs)
No edit summary
 
(14 intermediate revisions by one other user not shown)
Line 1: Line 1:
Instead of specifying a clause parameter with a particular [[Item ID]], it is possible to use the 'XC' characters for its value. The result of using 'XC' for the clause value, is the automatic creation of multiple TQL statements, one with each Item ID for that Clause Parameter, but only the Items that are covered by the calculated ''Search Polygon'' of the TQL statement. The ''Search Polygon'' is calculated by overlapping the clause polygon. Per clause type it is indicated if it limits the 'Search Polygon'. Internally, the resulting TQL statements are placed in a single array; Similarly the result will be an array of TQL results.
Instead of specifying a clause parameter with a particular [[Item ID]], it is possible to use the 'XC' characters for its value. Using 'XC' automatically creates a TQL statement for every Item ID in that clause parameter that overlaps the ''Search Polygon''. Both the generated TQL statements and their results are handled internally as arrays.
 
This ''Search Polygon'' is determined by the linked content item. Since content item linkage is currently limited to Template Text and Excel Panels, XC should only be used there.


==Example==
==Example==
[[File:xa_example_neigbhorhoods.png|thumb|right|[[Neighborhood]]s in an example project]][[File:xa_example_areas.png|thumb|right|[[Area]]s in an example project]]
Consider the following (simplified) [[Neighborhood]] data of a project:
Consider the following (simplified) [[Neighborhood]] data of a project:
<syntaxhighlight copy>
<pre>
[ {
[ {
   "id" : 0,  "name" : "East Side",
   "id" : 0,  "name" : "East Side",
Line 11: Line 14:
   "polygons" : {  "type" : "MultiPolygon", "coordinates" : [ [ [ [ 0.0, -500.0 ], [ 250.0, -500.0 ], [ 250.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, -500.0 ] ] ] ]  }
   "polygons" : {  "type" : "MultiPolygon", "coordinates" : [ [ [ [ 0.0, -500.0 ], [ 250.0, -500.0 ], [ 250.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, -500.0 ] ] ] ]  }
} ]
} ]
</syntaxhighlight>
</pre>
and the [[Area]] data:
and the [[Area]] data:
<syntaxhighlight copy>
<pre>
[ {
[ {
   "id" : 0,  "name" : "Upper Left",   
   "id" : 0,  "name" : "Upper Left",   
Line 27: Line 30:
   "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 315.0, -395.0 ], [ 325.0, -395.0 ], [ 325.0, -385.0 ], [ 315.0, -385.0 ], [ 315.0, -395.0 ] ] ] ]  }
   "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 315.0, -395.0 ], [ 325.0, -395.0 ], [ 325.0, -385.0 ], [ 315.0, -385.0 ], [ 315.0, -395.0 ] ] ] ]  }
} ]
} ]
</syntaxhighlight>
</pre>


The TQL statement  
For example, a TQL statement in a Template Text Panel applied to neighborhoods creates separate instances for 'East Side' and 'West Side'.
<pre>SELECT_NAME_WHERE_NEIGHBORHOOD_IS_X</pre> is internally replaced with a list of TQL statements, separated by comma's,
 
<pre>SELECT_NAME_WHERE_NEIGHBORHOOD_IS_0, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_1, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_2, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_3, SELECT_NAME_WHERE_NEIGHBORHOOD_IS_4</pre>
The TQL statement
<pre>SELECT_NAME_WHERE_AREA_IS_XC</pre>
for the Text Panel linked to Neighborhood "East Side" is internally replaced with a list of TQL statements, separated by comma's,
<pre>SELECT_NAME_WHERE_AREA_IS_1, SELECT_NAME_WHERE_AREA_IS_3</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:
<pre>"De Manege", "De Lancaster", "De Landstreken", "De Kruidentuin",  "Golfresidentie"</pre>
<pre>"Upper Right", "Lower Right"</pre>


==Clause Parameters==
==Clause Parameters==
The X value can be used in the following TQL Clause parameters:
The XC value can be used in the following TQL Clause parameters:
<div style="column-count:3">
*[[Address (TQL Param)]]
*[[Area (TQL Param)]]
*[[Building (TQL Param)]]
*[[Neighborhood (TQL Param)]]
*[[Zone (TQL Param)]]
*[[Net load (TQL Param)]]
*[[Net line (TQL Param)]]
</div>


{{article end
{{article end
|notes=*The following variants on XC exist:
**XCA: A combination between [[XC (TQL)|XC]] and [[XA (TQL)|XA]].
**XCK: A combination between [[XC (TQL)|XC]] and [[XK (TQL)|XK]].
|seealso=
|seealso=
*[[Y (TQL)]]
*[[YC (TQL)]]
*[[X (TQL)]]
*[[XA (TQL)]]
*[[XA (TQL)]]
*[[XC (TQL)]]
*[[XK (TQL)]]
*[[XK (TQL)]]
 
|api=*[[Api session event editor building query]]
}}
}}


{{TQL param nav}}
{{TQL param nav}}

Latest revision as of 12:00, 8 July 2026

Instead of specifying a clause parameter with a particular Item ID, it is possible to use the 'XC' characters for its value. Using 'XC' automatically creates a TQL statement for every Item ID in that clause parameter that overlaps the Search Polygon. Both the generated TQL statements and their results are handled internally as arrays.

This Search Polygon is determined by the linked content item. Since content item linkage is currently limited to Template Text and Excel Panels, XC should only be used there.

Example

Neighborhoods in an example project
Areas in an example project

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

[ {
  "id" : 0,  "name" : "East Side",
  "polygons" : { "type" : "MultiPolygon", "coordinates" : [ [ [ [ 250.0, -500.0 ], [ 500.0, -500.0 ], [ 500.0, 0.0 ], [ 250.0, 0.0 ], [ 250.0, -500.0 ] ] ] ]  }
}, {
  "id" : 1,  "name" : "West Side",
  "polygons" : {  "type" : "MultiPolygon", "coordinates" : [ [ [ [ 0.0, -500.0 ], [ 250.0, -500.0 ], [ 250.0, 0.0 ], [ 0.0, 0.0 ], [ 0.0, -500.0 ] ] ] ]  }
} ]

and the Area data:

[ {
  "id" : 0,  "name" : "Upper Left",  
  "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 110.0, -110.0 ], [ 110.0, -100.0 ], [ 100.0, -100.0 ], [ 100.0, -110.0 ], [ 110.0, -110.0 ] ] ] ]  }
  }, {
  "id" : 1,  "name" : "Upper Right",  
  "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 435.0, -95.0 ], [ 425.0, -95.0 ], [ 425.0, -105.0 ], [ 435.0, -105.0 ], [ 435.0, -95.0 ] ] ] ]  }
  }, {  
  "id" : 2,  "name" : "Lower Left",  
  "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 165.0, -425.0 ], [ 165.0, -415.0 ], [ 155.0, -415.0 ], [ 155.0, -425.0 ], [ 165.0, -425.0 ] ] ] ]  }
  }, {  
  "id" : 3,  "name" : "Lower Right",  
  "polygons" : {    "type" : "MultiPolygon",    "coordinates" : [ [ [ [ 315.0, -395.0 ], [ 325.0, -395.0 ], [ 325.0, -385.0 ], [ 315.0, -385.0 ], [ 315.0, -395.0 ] ] ] ]  }
} ]

For example, a TQL statement in a Template Text Panel applied to neighborhoods creates separate instances for 'East Side' and 'West Side'.

The TQL statement

SELECT_NAME_WHERE_AREA_IS_XC

for the Text Panel linked to Neighborhood "East Side" is internally replaced with a list of TQL statements, separated by comma's,

SELECT_NAME_WHERE_AREA_IS_1, SELECT_NAME_WHERE_AREA_IS_3

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

"Upper Right", "Lower Right"

Clause Parameters

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

Notes

  • The following variants on XC exist:
    • XCA: A combination between XC and XA.
    • XCK: A combination between XC and XK.

See also

API Endpoints