subset - ObjectVision/GeoDMS GitHub Wiki
Relational functions subset
Starting form version 8.6.0, we advice to use the select_with_attr_by_org_rel or select_with_attr_by_cond functions in stead of the subset function, for 2 reasons: - it is easier to configure new attributes for the resulting domain. - the select_with_attr_by_org_rel function results in a subitem org_rel, meeting our naming conventions. In the future the subset function becomes obsolete.
- subset(condition)
subset(condition) results in a new domain unit with a relation to the entries of the domain unit of the condition, for which the values of the condition argument are true.
The resulting value type of the domain unit is derived from the domain unit of the condition argument:
- uint32 for conditions with uint32, boolean, spoint or wpoint value type
- uint8 for conditions with uint8 value type
- uint16 for conditions with uint16 value type
- uint64 for conditions with uint64, ipoint or upoint value type
The explicit subset_uint32, subset_uint16 and subset_uint8 functions can be used in the same manner as the subset function, to create a new domain unit with an explicit value type.
The subset function generates a subitem, named Nr_OrgEntity. This data item contains the relation towards the domain unit of the condition argument.
The Nr_OrgEntity data item can be used in a lookup function to relate attributes to the new domain unit, see the example.
See this overview for when to choose which selection operator is feasable.
- condition must be a boolean attribute or subexpression resulting in boolean values.
The subset function results in a new domain unit. Attributes for this new domain need to be configured explicitly, see the example.
It is possible to configure all attributes (e.g. read from a .csv file) for the Subset domain unit with a script example presented below in the example, selecting all attributes paragraph.
unit<uint32> ZHCities := subset(City/RegionCode == 200)
{
attribute<string> name := City/Name[Nr_OrgEntity];
}
City/RegionCode | City/Name |
---|---|
100 | Amsterdam |
200 | Rotterdam |
300 | Utrecht |
200 | Den Haag |
400 | Eindhoven |
null | Haarlem |
400 | Tilburg |
domain City, nr of rows = 7
ZHCities/nr_OrgEntity | ZHCities/name |
---|---|
1 | Rotterdam |
3 | Den Haag |
domain ZHCities, nr of rows = 2
For this purpose we advice the new select_with_attr_by_org_rel or select_with_attr_by_cond functions.