CityGML User Attributes

In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Attributes), this format adds the format-specific attributes and attribute types described in this section.

CityGML Attribute Types

CityGML provides the usual assortment of attribute types, usually prefixed with either citygml_ or xml_. One type that is particularly interesting to users of the CityGML Writer is the xml_xml type.

A string attribute that is set to this type will not be encoded when written into the XML document. One place that this is very useful is when writing elements of type xalAddress or other places where you wish to provide a back door into the document and insert an xml fragment directly into the document.

XML Type

The geometry of the CityGML feature may be identified by its xml_type attribute. The valid values for this attribute are:

xml_type

Description

xml_no_geom

FME Feature with no geometry.

xml_point

Point feature.

xml_line

Linear feature.

xml_surface

Surface feature, may contain gaps.

xml_solid

Solid feature, may contain voids.

xml_aggregate

A possibly heterogeneous collection of geometries.

No Geometry

xml_type: xml_no_geom

Features having their xml_type set to xml_no_geom do not contain any geometry data.

Point

xml_type: xml_point

Features having their xml_type set to xml_point are single coordinate features or aggregates of single coordinate features.

Line

xml_type: xml_line

Features having their xml_type set to xml_line are polyline features and have at least two coordinates or aggregates of polyline features.

Surface

xml_type: xml_surface

Features having their xml_type set to xml_surface are surfaces. They may be simple, topologically contiguous surfaces or aggregates of surface features.

Collection

xml_type: xml_aggregate

Features having their xml_type set to xml_aggregate are complex geometries. Each component of an aggregate may be any of the types listed in this section, including xml_aggregate (i.e. an aggregate may contain aggregate components).

CityGML-Specific Attributes

Other attributes depend on the feature type. Common and feature-specific attributes are as follows.

Common Attributes

Attribute Name

Contents

gml_id

The unique identifier for each feature. This attribute must be unique in the dataset scope.

gml_parent_id

The unique identifier representing the feature’s parent in the hierarchy. This must reference another feature in the dataset.

citygml_level_of_detail{}

The level of detail of the geometry/geometries.

Range: 0...4

citygml_lod_name

Provides the specific name of the level of detail element that this feature is enclosed. The Range is (in pseudo-regular expression syntax) lod[0-4](Network|(Multi)?(Surface|Solid). Examples: lod0Network, lod3Solid, etc. Not all combinations are legal, and not all CityGML feature types support all options.

citygml_library_object

The target URI for the implicit geometry.

citygml_mime_type

The mime type of the library object.

citygml_transformation_matrix

A 4x4 matrix describing the translation of the implicit geometry. Elements are space-delimited.

Appearance Attributes:

Attribute Name

Contents

citygml_theme

The name of the themed appearance.

X3DMaterial Attributes:

Attribute Name

Contents

citygml_is_front

A boolean describing whether the material should be applied to the front or the back of the target surface.

Range: true|false|1|0

citygml_ambient_intensity

A real number describing the ambient intensity.

Range: 0...1

citygml_diffuse_color

A list of three real numbers describing diffuse color. Elements are space-delimited and must conform to the following range.

Range: 0...1

citygml_emissive_color

A list of three real numbers describing emissive color. Elements are space-delimited and must conform to the following range.

Range: 0...1

citygml_specular_color

A list of three real numbers describing specular color. Elements are space-delimited and must conform to the following range.

Range: 0...1

citygml_shininess

A real number describing the shininess.

Range: 0...1

citygml_transparency

A real number describing the transparency.

Range: 0...1

citygml_is_smooth

A Boolean denoting if the surface is smooth or not.

Range: true|false|1|0

citygml_target

Targets to apply the material to.

GeoreferencedTexture Attributes:

Attribute Name

Contents

citygml_is_front

A boolean describing whether the material should be applied to the front or the back of the target surface.

Range: true|false|1|0

citygml_image_uri

The target uri that the texture is located at.

citygml_mime_type

The mime type of the texture.

citygml_texture_type

The texture type.

Range: specific|typical|unknown

citygml_wrap_mode

The type of wrapping to apply.

Range: none|wrap|mirror|clamp|border

citygml_border_color

A list of three to four real numbers describing the border color and opacity. Elements are space-delimited and must conform to the following range.

Range: 0...1

citygml_prefer_world_file

A boolean denoting if a world file should be sought and used when possible instead of the included georeferenced texture data.

Range: true|false|1|0

citygml_orientation_matrix

A 2x2 matrix describing the rotation and scaling of the texture. Elements are space-delimited.

citygml_target

Targets to apply the texture to.

ParameterizedTexture Attributes:

Attribute Name

Contents

citygml_is_front

A Boolean describing whether the material should be applied to the front or the back of the target surface.

Range: true|false|1|0

citygml_image_uri

The target uri that the texture is located at.

citygml_mime_type

The mime type of the texture.

citygml_texture_type

The texture type.

Range: specific|typical|unknown

citygml_wrap_mode

The type of wrapping to apply.

Range: none|wrap|mirror|clamp|border

citygml_border_color

A list of three to four real numbers describing the border color and opacity. Elements are space-delimited and must conform to the following range.

Range: 0...1

citygml_target{}.uri

The location of the surface to which the texture applies.

citygmal_target{}.coordinate_list{}.ring

The named ring of the surface that the texture applies to.

citygml_target{}.coordinate_list{}.coordinates

A list of real numbers describing the coordinates on the ring that the texture applies to. Elements are space-delimited.

citygml_target{}.coordinate_list{}.world_to_texture_matrix

A 3x4 matrix describing the linear translation and spatial location of the texture to be mapped. Elements are space-delimited.