Novapoint Online Documentation

Selection Set

A “Selection Set” is a resulting list of objects that match a query made to the Quadri database. To make a query one has to be familiar with the structure and principals of the Quadri database.

Quadri

Information inside Quadri are organized within record sets, where each and every object is given a unique record number. On each record, an object is stored with header information and a coordinate point list.

Object header information

  • Record number
  • Object Name
  • Object Type
  • Group
  • Feature Code
  • Attributes (optional)

Geometry (Coordinate Point List)

  • X Y Z
  • X Y Z
  • etc.

Queries

A query is done using a SQL-similar language and syntax.

Example:

fcode=1000
*selects all object with feature code = 1000
fcode=>1000 AND fcode=<2000
*selects all object with feature codes between 1000 and 2000

Note: The query engine extracts data from active groups and feature codes only.

Preface

All queries are prefaced with the expression “Select ID from OBJECT where”, but this is omitted in the user interface.

Header keys

The following keys can be queried:

  • Feature code “fcode”
  • Group “group”
  • Object type “type”
  • Object name “name”

Type can also be used with sub key “type.height” and “type.id”.

Note: The response time from key queries on “fcode” and “group” are normally very fast, even on very large databases. This due to the fact that these keys are indexed.

Geometry keys

Coordinate information can be queried using:

  • Point.x
  • Point.y
  • Point.z

Note: The key only compares the first coordinate set on each object.

Example:

Point.z=0
*selects all objects where first z-coordinate value is equal to zero

Numpoints
The function counts the number of coordinate sets on each object.

Example:

Numpoints = 1
*selects all objects with only one coordinate set (e.g. - single points)

Object Attribute keys

Object attributes can be queried by using the following syntax:

attr.<dyn record no.>.<data type+position>

  • Dyn record no. See Quadri documentation for complete list
  • Data type L=Long, I=Integer, D=Double, S=String
  • Position See Quadri documentation for complete list

Example:

attr.25.L1=14
*selects all objects with attribute value 14, stored in dynamic record set no. 25, position 1 with a long value.

Note 1: Attribute queries can slow down response time severely, especially on large databases. This due to the fact that dynamic records are not indexed.

Note 2: Attribute queries can only be performed on object header level. Queries on point attribute information is not yet supported.

Operator keys

The following operators are supported:

  • Equal ”=”
  • Not equal ”!=”
  • Greater than ”>”
  • Less than ”<”
  • Greater than or equal ”>=”
  • Less than or equal ”⇐”

Boolean expression keys

The following Boolean expressions can be used to combine queries:

  • AND
  • OR
  • NOT

When combining queries using Boolean expressions one should (and in some cases must) use parentheses to separate each query segment.

Special feature keys

Multiple keys
Multiple key queries involving “equal”, can be contracted using an IN expression.

Example:

fcode=1000 AND fcode=1001 AND fcode=1002
can be substituted with:
fcode IN (1000, 1001, 1002)

Dividable
The special function “Dividable” analyses the objects first coordinate set, to determine if it's value is dividable for a given set of parameters, and returns TRUE or FALSE.

Example:

fcode=1000 AND dividable (point.z, 1, 0.2)
*First parameter is the objects coordinate value, second parameter is the division value, third parameter is a deviation value (optional).

Can also be used to exclude objects with a certain height value.

Example:

fcode=1000 AND dividable (point.z, 1) AND NOT dividable (point.z, 5)
*includes heights dividable by 1, but excludes heights dividable by 5

Length2D
The special function “Length2D” calculates the object length i 2D and returns TRUE or FALSE

Example:

fcode=7001 AND length2D >10
*excludes all objects where the length is 10m or less*

Personal Tools
In Other Languages