OGC CityGML User Attributes

In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Type Attributes), this format also adds format-specific attributes (Format Attributes).

OGC 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 listed in the table below.

xml_type

Geometry

Description

xml_aggregate

Collection

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 (that is, an aggregate may contain aggregate components).

xml_line

Line

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

xml_no_geom

No Geometry

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

xml_point

Area

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

xml_solid

Point

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

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.

CityGML-Specific Attributes

Other attributes depend on the feature type. Common and feature-specific attributes are listed in the tables below.

Common Attributes

Attribute Name

Contents

gml_id

The unique identifier for each feature. This attribute must be unique in the dataset scope. If you already have an id in your data (my_id), you can use a prefix to make it unique.

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

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.