Relations

A Relation compares any two Values and returns a result of true or false.

They can either compare scalar values or spatial geometries.

Scalar Relationships

Scalar Relationships compare two Values (boolean, integers, real numbers, strings, or timestamps).

A Predicate using a Scalar Relationship can only return a Boolean value of True or False based on the result of comparing the two values.

     Note: For Greater Than, Less Than and similar Scalar Relationships, True is considered greater than False, times and dates that are later/in the future are greater than those in the present/past, and alphanumeric characters are ordered by their character code.

     Example: Numbers are "less than" upper-case letters, which are "less than" lower-case letters, so "e" is greater than "E".

ClosedTypes of Scalar Relationships

Scalar Relationship

Data Type

Description

Begins With

String

Test whether the first string begins with the second string.

Contains

String

Test whether the first string contains the second string.

Ends With

String

Test whether the first string ends with the second string.

Equal

Boolean, Integer, Real, String, and Timestamp.

The two values are the same.

Greater Than

Boolean, Integer, Real, String, and Timestamp.

The first value is greater than the second value.

Greater Than or Equal

Boolean, Integer, Real, String, and Timestamp.

The first value is greater than the second value, or the two values are the same.

Less Than

Boolean, Integer, Real, String, and Timestamp.

The first value is less than the second value.

Less Than or Equal

Boolean, Integer, Real, String, and Timestamp.

The first value is less than the second value, or the two values are the same.

Not Equal

Boolean, Integer, Real, String, and Timestamp.

The two values are different.

Null values will be ignored. When using the Not Equal relation you must perform a null check if comparing fields that can be null, otherwise null values will not be returned.

The class_is_attribute_null Built-in can be used to perform the null check, for example:

Null check in a Rule.

Regular Expression

String

For string values, check whether the first string matches the wild card string or Perl regular expression in the second string.

Spatial Relationships

A Spatial Relationship is a type of Relation only applied to Values that are Geometries. It returns true if the geometries have the specified Relation.

Any type of geometry can be passed into a Spatial Relationship check, but only the geometry types relevant to this Spatial Relationship will be tested. For example, if comparing areas, line geometries will not be tested.

     Note: Some Spatial Relationships can be considered subsets of others. For example, "Covered By" is a subset of "Within" (if a geometry is "Covered By" another geometry, it is also "Within" that geometry).

Geometry Basics for Spatial Relations

The detailed description of each Spatial Relationship uses the terms interior, boundary, exterior. Understanding the details in this table will help you when using Spatial Relationships. Additionally, see Geometries for more detailed information on Geometry types and support in 1Integrate.

Geometry Basic

Description

Interior

All points of the geometry, excluding the boundary the boundary.

Exterior

Any points that are not part of the geometry, can include the space inside of an interior ring.

Boundaries

The following examples of boundaries may not immediately be clear

Point

A zero dimensional object that has no boundary.

Lines and curves

Lines and curves have boundaries at their end points. A single line would have two endpoint boundaries. A geometry represented by two intersecting lines would have a boundary represented by the four endpoints.

Polygon

The boundary for a polygon would be its outer ring. Any inner rings would also form part of the boundary.

Rings

A ring, where the start and end point are the same, has no boundary.

Solid

The boundary of a solid is formed by its polygonal surfaces.

Spatial Relationships

Within the following dropdown you can find descriptions of the types of spatial relationships available to you in 1Integrate.

We recommend you familiarise yourself with the Geometry Basics for Spatial Relations first.

ClosedTypes of Spatial Relationships

Spatial Relationships in 3D

Most of the Spatial Relationships in 1Integrate support 3D data, and generally have the same meaning as their 2D counterparts.

     Note: Spatial Relationships will behave differently if the geometry is a solid or if it is a multi-surface. for more information about full 3D data in 1Integrate, please see Full 3D Support.

     Note: If you are loading 2.5D data, and not true 3D, then Spatial Relationships will be calculated in 2D. For example, 2.5D geometries will intersect if they intersect in 2D, regardless of height. To compare geometries in 3D they will nee to be loaded as True 3D Geometries.