Standard Classes
When writing Rules and Actions you must always set a class for them to be applied against. Standard Classes allow generic class types to be used.
Most Rules or Actions are performed against a specific class, but it can be more efficient to write generic Rules or Actions which run against all (or most) classes in the data. These classes are always available when building Rules and Actions.
Standard Class |
Description |
---|---|
All |
This represents all objects, in all classes that have been defined in Data Stores. It includes objects created in a Session but does not include System classes such as topology nodes, edges or faces. |
All Geometric |
This runs against all objects from classes with at least one geometry attribute. This includes objects with a null geometry. Rules written against this class can reference the geometry attribute because the Primary Geometry of a class is always called "geometry". |
All Non-Geometric |
This runs against objects from classes that have no geometry attribute and therefore are non-spatial classes. |
Writing Rules and Actions with Classes
Standard Classes enable you to write Rules and Actions to validate the features of a dataset without manually separating the spatial and non-spatial features.
The classes behave as a hierarchy of parent classes, from which classes loaded from Data Stores will inherit. The All class is the root class and All Geometric and All Non-Geometric inherit from it. From that, all classes defined in Data Stores inherit from either All Geometric or All Non-Geometric.
Any attributes that share the same name and type in all the subclasses will appear on the parent class.
Example: If classes loaded all have a string attribute called UUID then it will appear as an attribute for the All class.
If a common attribute that you expect is missing then this is because at least one class has that attribute missing or with a different type or name.
Example: When writing a Rule or Action with a standard class as the root class, you can still refer to specific class names using the Class Name value type
In this example, the Class to be referenced is Road.
Check for All objects that if All: equals "Road" then…