... | ... | @@ -12,7 +12,7 @@ Description of that service at [Building Physics Library Web Service](../Buildin |
|
|
|
|
|
1. Native CityGML 2.0 and CityGML 2.0 EnergyADE
|
|
|
|
|
|
In general if you model a building and want to assign some physical or construction properties to a building or a set of buildings you can in CityGML either use a set of `genericAttribute`s or predefined attributes of the CityGML EnergyADE.
|
|
|
In general if you model a building and want to assign some physical or construction properties to a building or a set of buildings you can in CityGML either use a predefined attribute, a link to an external data source (if available), a set of `genericAttribute`s or predefined attributes of the CityGML EnergyADE.
|
|
|
|
|
|
The greatest advantage of using the CityGML EnergyADE is the existing definition of attributes and properties related to energy and building physics topics, whereas when using `genericAttribute`s each user can use his own definitions, which can lead to possible incompabilties when exchanging building models with other parties involved.
|
|
|
The greatest disadvantage of the CityGML EnergyADE is the lack of support in many software systems supporting only native CityGML but no Application Domain Extension ( ADE ) at all.
|
... | ... | @@ -21,11 +21,87 @@ Description of that service at [Building Physics Library Web Service](../Buildin |
|
|
|
|
|
2. Using External References in CityGML 2.0 and CityGML 2.0 EnergyADE
|
|
|
|
|
|
In general, CityGML 2.0 offers a mechanism to access internal and external data in a dataset via ```xlink```s. These external references are normally used to reference to a section in the same CityGML file or dataset but an xlink can also reference to an external data source.
|
|
|
In general, CityGML 2.0 offers a mechanism to access internal and external data like attributes in a dataset via ```xlink```s. These references are normally used to reference to another section in the same CityGML file or dataset but an ```xlink``` can also reference to an external data source.
|
|
|
Usually ```xlink```s are known to compose a surface from a set of (referenced) subsurfaces as in the following example:
|
|
|
```xml
|
|
|
...
|
|
|
<bldg:lod2Solid>
|
|
|
<gml:Solid>
|
|
|
<gml:exterior>
|
|
|
<gml:CompositeSurface>
|
|
|
<gml:surfaceMember xlink:href="#GML_7312314b-372f-4161-a9ba-9afceeed0c45"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_4cf1aa91-09bc-4367-8f44-d017ca5a7617"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_1531216f-7082-43d7-8d9d-fac11261415a"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_cd490832-9c42-4346-9761-4d7ff55bc7eb"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_67cb283f-6258-482a-a14f-40202dffd20d"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_bce0ea4f-d8cb-4359-bc3b-6ff1fec80292"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_30015ec3-acf1-4a5b-808e-8d123a0fbe61"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_f31d1f03-fd11-4ef1-9780-4524790bbd41"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_0e66a2a0-66fc-4766-a34d-b9b471bc5c53"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_c69d836d-d138-4b96-b309-0cf893ab9090"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_f6425cf2-75d9-4b59-903d-2092c0d2d084"/>
|
|
|
<gml:surfaceMember xlink:href="#GML_90991341-677e-445c-8f81-e2d6269f4aba"/>
|
|
|
</gml:CompositeSurface>
|
|
|
</gml:exterior>
|
|
|
</gml:Solid>
|
|
|
</bldg:lod2Solid>
|
|
|
...
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. Using Generic Attributes as References in Native CityGML 2.0
|
|
|
|
|
|
Generic Attribute - UML Diagram
|
|
|
|
|
|
```mermaid
|
|
|
classDiagram
|
|
|
_CityObject "1" *-- "*" _genericAttribute
|
|
|
_genericAttribute "1..*" <--* "0..1" genericAttributeSet : _genericAttribute
|
|
|
_genericAttribute <|-- stringAttribute
|
|
|
_genericAttribute <|-- intAttribute
|
|
|
_genericAttribute <|-- doubleAttribute
|
|
|
_genericAttribute <|-- dateAttribute
|
|
|
_genericAttribute <|-- uriAttribute
|
|
|
_genericAttribute <|-- measureAttribute
|
|
|
_genericAttribute <|-- genericAttributeSet
|
|
|
|
|
|
class _CityObject{
|
|
|
<<Feature>>
|
|
|
}
|
|
|
class _genericAttribute{
|
|
|
<<DataType>>
|
|
|
+name : xs::string[1]
|
|
|
}
|
|
|
class genericAttributeSet{
|
|
|
<<DataType>>
|
|
|
+codeSpace : xs::anyURI[0..1]
|
|
|
}
|
|
|
class stringAttribute{
|
|
|
<<DataType>>
|
|
|
+value : xs::string[1]
|
|
|
}
|
|
|
class intAttribute{
|
|
|
<<DataType>>
|
|
|
+value : xs::integer[1]
|
|
|
}
|
|
|
class doubleAttribute{
|
|
|
<<DataType>>
|
|
|
+value : xs::double[1]
|
|
|
}
|
|
|
class dateAttribute{
|
|
|
<<DataType>>
|
|
|
+value : xs::date[1]
|
|
|
}
|
|
|
class uriAttribute{
|
|
|
<<DataType>>
|
|
|
+value : xs::anyURI[1]
|
|
|
}
|
|
|
class measureAttribute{
|
|
|
<<DataType>>
|
|
|
+value : gml::MeasureType[1]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
|
|
|
|