142 Copyright © 2012 Open Geospatial Consortium.
Fig. 72: LOD0 regional model consisting of land use objects in CityGML source: IGG Uni Bonn.
XML namespace
The XML namespace of the CityGML LandUse module is identified by the Uniform Resource Identifier URI http:www.opengis.netcitygmllanduse2.0. Within the XML Schema definition of the LandUse module, this
URI is also used to identify the default namespace.
10.10.1 Land use object
LandUseType, LandUse
xs:complexType name=
LandUseType xs:complexContent
xs:extension base=
core:AbstractCityObjectType xs:sequence
xs:element name=
class type=
gml:CodeType minOccurs=
xs:element name=
function type=
gml:CodeType minOccurs=
maxOccurs= unbounded
xs:element name=
usage type=
gml:CodeType minOccurs=
maxOccurs= unbounded
xs:element name=
lod0MultiSurface type=
gml:MultiSurfacePropertyType minOccurs=
xs:element name=
lod1MultiSurface type=
gml:MultiSurfacePropertyType minOccurs=
xs:element name=
lod2MultiSurface type=
gml:MultiSurfacePropertyType minOccurs=
xs:element name=
lod3MultiSurface type=
gml:MultiSurfacePropertyType minOccurs=
xs:element name=
lod4MultiSurface type=
gml:MultiSurfacePropertyType minOccurs=
xs:element ref=
_GenericApplicationPropertyOfLandUse minOccurs=
maxOccurs= unbounded
xs:sequence xs:extension
xs:complexContent xs:complexType
-- ========================================================================================= -- xs:element
name= LandUse
type= LandUseType
substitutionGroup= core:_CityObject
-- ========================================================================================= -- xs:element
name= _GenericApplicationPropertyOfLandUse
type= xs:anyType
abstract= true
10.10.2 Code lists
The attributes class, function, and usage of the feature LandUse are specified as gml:CodeType. The values of these properties can be enumerated in code lists. Proposals for corresponding code lists can be found in annex
C.5.
Copyright © 2012 Open Geospatial Consortium. 143
10.10.3 Conformance requirements
Base requirements
The gml:MultiSurface geometry element representing the geometry of a LandUse object must be given with 3D coordinate values within each LOD.
144 Copyright © 2012 Open Geospatial Consortium.
10.11 City object groups
The CityGML grouping concept has been introduced in chapter 6.8. CityObjectGroups are modelled using the Composite Design Pattern from software engineering cf. Gamma et al. 1995: CityObjectGroups aggregate
CityObjects and furthermore are defined as special CityObjects. This implies that a group may become a member
of another group realizing a recursive aggregation schema. However, in a CityGML instance document it has to be ensured by the generating application that no cyclic groupings are included. Fig. 73 shows the UML dia-
gram for the class CityObjectGroup, for the XML schema see annex A.6. The grouping concept of CityGML is defined by the thematic extension module CityObjectGroup cf. chapter 7.
Fig. 73: UML diagram of city object groups in CityGML. Prefixes are used to indicate XML namespaces associated with model elements. Element names without a prefix are defined within the CityGML
CityObjectGroup
module.
The class CityObjectGroup has the optional attributes class, function and usage. The class attribute allows a group classification with respect to the stated function and may occur only once. The function attribute is intend-
ed to express the main purpose of a group, possibly to which thematic area it belongs e.g. site, building, trans- portation, architecture, unknown etc.. The attribute usage can be used, if the way the object is actually used
differs from the function. Both attributes can occur multiple times. Each member of a group may be qualified by a role name, reflecting the role each _CityObject plays in the context of the group. Furthermore, a CityObject-
Group
can optionally be assigned an arbitrary geometry object from the GML3 subset shown in Fig. 9 in chapter 8.1. This may be used to represent a generalised geometry generated from the members geometries.
The parent association linking a CityObjectGroup to a _CityObject allows for the modelling of a generic hierar- chical grouping concept. Named aggregations of components CityObjects can be added to specific CityObjects
considered as the parent object. The parent association links to the aggregate, while the parts are given by the group members. This concept is used, for example, to represent storeys in buildings see section 10.3.6: Mo-
delling building storeys using CityObjectGroups.
XML namespace
The XML namespace of the CityGML CityObjectGroup module is identified by the Uniform Resource Identifier URI http:www.opengis.netcitygmlcityobjectgroup2.0. Within the XML Schema definition of the CityOb-
jectGroup module, this URI is also used to identify the default namespace.
10.11.1 City object group
CityObjectGroupType, CityObjectGroup
xs:complexType name=
CityObjectGroupType xs:complexContent
xs:extension base=
core:AbstractCityObjectType xs:sequence
xs:element name=
class type=
gml:CodeType minOccurs=
xs:element name=
function type=
gml:CodeType minOccurs=
maxOccurs= unbounded
xs:element name=
usage type=
gml:CodeType minOccurs=
maxOccurs= unbounded
xs:element name=
groupMember type=
CityObjectGroupMemberType minOccurs=
maxOccurs= unbounded
Copyright © 2012 Open Geospatial Consortium. 145
xs:element name=
parent type=
CityObjectGroupParentType minOccurs=
xs:element name=
geometry type=
gml:GeometryPropertyType minOccurs=
xs:element ref=
_GenericApplicationPropertyOfCityObjectGroup minOccurs=
maxOccurs= unbounded
xs:sequence xs:extension
xs:complexContent xs:complexType
-- ========================================================================================= -- xs:element
name= CityObjectGroup
type= CityObjectGroupType
substitutionGroup= core:_CityObject
-- ========================================================================================= -- xs:element
name= _GenericApplicationPropertyOfCityObjectGroup
type= xs:anyType
abstract= true
-- ========================================================================================= -- xs:complexType
name= CityObjectGroupMemberType
xs:sequence minOccurs=
xs:element ref=
core:_CityObject xs:sequence
xs:attribute name=
role type=
xs:string xs:attributeGroup
ref= gml:AssociationAttributeGroup
xs:complexType -- ========================================================================================= --
xs:complexType name=
CityObjectGroupParentType xs:sequence
minOccurs= xs:element
ref= core:_CityObject
xs:sequence xs:attributeGroup
ref= gml:AssociationAttributeGroup
xs:complexType
10.11.2 Code lists
The attributes class, function, and usage of the feature CityObjectGroup are specified as gml:CodeType. The values of these properties can be enumerated in code lists. Proposals for corresponding code lists can be found in
annex C.10.
10.11.3 Conformance requirements
Base requirements
1. No cyclic groupings shall be included within a CityGML instance document.
Referential integrity
2. The groupMember property type: CityObjectGroupMemberType of the element CityObjectGroup may
contain a core:_CityObject element inline or an XLink reference to a remote core:_CityObject element using the XLink concept of GML 3.1.1. In the latter case, the xlink:href attribute of the groupMember
property may only point to a remote core:_CityObject element where remote core:_CityObject ele- ments are located in another document or elsewhere in the same document. Either the contained ele-
ment or the reference must be given, but neither both nor none.
3. The parent property type: CityObjectGroupParentType of the element CityObjectGroup may contain
a core:_CityObject element inline or an XLink reference to a remote core:_CityObject element using the XLink concept of GML 3.1.1. In the latter case, the xlink:href attribute of the parent property may
only point to a remote core:_CityObject element where remote core:_CityObject elements are located in another document or elsewhere in the same document. Either the contained element or the reference
must be given, but neither both nor none.