-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rules for storing geometries for features with nested sub-features #34
Comments
I think this is a good analysis and the final paragraph is a good suggestion that would simplify life for developers of software consuming CityGML 3.0. I also agree with dropping "XLink topology" unless there is a problem that I do not see - which is very possible. Note: this issue (among several) is really a mixture of CM and GML encoding concerns and the content should be distributed across both the CM and the GML encoding projects. For now this is OK because it is good simply to have the issues in front of us, especially since the GML encoding is essential to demonstrating the implement ability of the CM. |
Also see this issue: #6 |
Re pt 4: In my understanding of the concepts of spaces and boundaries, "boundary features" (i.e. features derived from |
Thanks Helga. I agree that boundaries can also be shared by spaces that are not in the same hierarchy. Thus, it must be possible that a boundary feature references the geometry of another boundary feature outside its space hierarchy. So pt 4 should be changed such that a boundary feature shall either reference the geometries of its direct parent space feature using XLinks or the shared geometry of an adjacent boundary feature ("XLink topology"). |
Note: the issue has been moved here from the CityGML 3.0 Conceputal Model repository because it addresses the encoding of the CityGML 3 Conceptual Model rather than the Conceptual Model itself. |
In our web meeting on 28 January 2021 we discussed that it would be useful to store geometries with spaces only and reference the geometries from the space boundaries. To understand better whether this feasible in practice, Volker and Claus will provide suitable test data sets until the next meeting on 11 February 2021 and we will then continue the discussion. |
The results from our web meeting on 11 February 2021: Storing geometries Storing geometries with the individual spaces only would be favourable, but is not realisable easily as backwards compatibility with existing CityGML 2 data sets needs to be ensured. Taking the example of buildings with building installations like dormers, current software is creating city models in such a way that the solid geometry of the Introducing a strict rule that geometries can only be stored with their corresponding spaces would lead to problems for conversion tools that convert CityGML 2 to 3 files. Thus, we can only propose such a rule for new city models created directly compliant to CityGML 3 that contains the following recommendations:
Advantages: As workaround for existing city models we propose:
We also discussed, whether it would be possible and useful to change the order of the XLinks between shared geometries When two buildings share a wall in CityGML 2, the polygon is stored with the We propose the following:
Advantages: Next steps -> Claus will put the discussed examples on github. |
I added some examples to the |
At the web meeting on 25 February 2021 we discussed the examples from Claus, see above, as well as examples on links between roads and bridges, roads and buildings, and between roads sharing an intersection that are available in the As next step TUM will prepare a first draft of rules for when to use CityObjectRelation and when to use XLinks to relate objects that are shared by different features. This draft will be discussed in the next meeting on 11 March 2021. |
At the web meeting on 11 March 2021 we discussed a first draft of the rules. We will have a further round of internal refinement of the rules, before we provide them for public comment. Further todos: |
I've discussed this at length with our development team and the main concern raised was that however we decide to implement support for XLinks, we should only allow geometry XLinks to point to other geometries, not to features. Our understanding is that this is implicit in the GML spec, but it would be worth underlining this for the context of CityGML 3. This does not preclude the use of Xlinks for links to other features outside of the geometry, such as discussed in feature to feature references as discussed above in Tatjana's comment from Feb 12. We also do not imply that we prefer the use of Xlinks to spread around geometry definitions, since in general it is most often easiest to resolve a geometry inline rather than via reference. That said, if we do need to use geometry Xlinks - they should be to other geometries and not to other features. This comment also relates to issue#6 raised earlier by Claus on 'Restrict Xlinks for GML encoding' |
In CityGML 2.0, the geometry of a feature like
Building
can be stored with the feature itself but also spread across various sub-features on different hierarchy levels. Moreover, sometimes the parent's geometry should redundantly contain the child's geometry, and sometimes not. For example, the SIG3D modelling guide for buildings recommends that dormers should be modelled as individualBuildingInstallation
sub-features with their own geometry and that this geometry should also be part of the geometry of the parent building (see here). Balconies should also be modelled asBuildingInstallation
s, but in contrast to dormers their geometry should be excluded from the building geometry (see here).Due to this, collecting the geometry of a feature can become be a tedious task. I would therefore like to start a discussion whether we should introduce more rules in CityGML 3.0 to make consuming the data more easy.
Here are my first thoughts:
AbstractSpace
) shall contain its geometry inline. It shall never use an XLink to reference a geometry from one of its (transitive) sub-features.AbstractThematicSurface
) is meant to be used to semantically classify one or more surfaces (or curves) in the geometry of its direct parent space feature (e.g. as wall or roof surfaces). Consequently, it shall not contain its geometry inline, but shall only reference the geometries of its direct parent space feature using XLinks (thus, agml:ReferenceType
should be used in the GML encoding).AbstractFillingSurface
s. They are meant to fill a "hole" inside a surface of the parent space feature and to classify this filling, for instance, as door or window. Since there is no geometry that they could reference, they shall provide the filling geometry inline.I know that especially rule 4 is exactly the opposite way as it is done in CityGML 2.0. But I think the above proposal is much more consistent and easier. A viewer, for example, would just have to iterate over every "space feature" and draw its geometry without having to fear that it misses geometries or that geometries are redundantly drawn (leading to a flickering effect). Also enabling or disabling a sub-feature in the viewer becomes much easier (because of rule 2). Other tools like geometry validators would also benefit for similar reasons.
The text was updated successfully, but these errors were encountered: