Closed clausnagel closed 4 years ago
The support of generic attributes should only be possible when a software implements the Generics module. Hence, in order to formally express this, the data type GenericCityObjectRelation
extends CityObjectRelation
within the Generics module.
The data type CityObjectRelation
is defined in the Core module, because we want to show that now all CityObjects
in principle can be augmented by relations to other CityObjects
(similar to the IFCRELATION
concept in IFC). Since some thematic modules may even define more specific relationships, they should use CityObjectRelation
as the supertype of their more specific relation types.
One addition: one of the predefined kind of relationships that makes sense for all CityObjects is the set of topological relations (as shown in the current UML model). It is important to note, that this relationship refers to the semantics of the real world objects, not necessarily to their geometric representations. For example, if a building is in the real world directly adjacent to a pedwalk, then an explicit touch relation between the pedwalk and the building feature can be expressed. This relationship might not be reflected on the given geometry representations, though, e.g. when the pedwalk is represented by a center line and the building by a solid. Such topological relationship given on the semantic level of the real world objects could be used to verify, if also the geometries in the different LODs are consistent with it. On the other side, if the topological relationship of the geometries is explicitly represented or known, one can also derive this semantic level relationship between the city objects.
The nice thing is here, that we abstract from the multiple LODs and their many different combinations of two objects. Users in the end do not want to know, if a polygon of a ground surface in LOD2 touches the boundary of a polygon from a traffic surface in LOD2 (or 3?), but they simply want to query for all the buildings that are adjacent to a specific road. And this can be realized by this modeling.
In today's modelling subgroup meeting there was consensus that we should use the newly introduced abstract class AbstractGenericAttribute
to avoid a dependency between the Generics and the Core module.
Thus, we should add a new association from CityObjectRelation
to AbstractGenericAttribute
- just like it is modelled for AbstractCityObject
. This way, generic attributes can optionally be added to any CityObjectRelation
object. But software can still choose not to implement the Generics module at all.
With this solution, GenericCityObjectRelation
is obsolete and can be removed.
We discussed in the subgroup meeting on 21 October 2019 to already close this issue.
What is the rationale behind having a
GenericCityObjectRelation
(Generics module) in addition to theCityObjectRelation
(Core module)? Is it just to be able to assign generic attributes? If so, then why isn't that simply modelled forCityObjectRelation
? I do not see the need for having both of them.