12d Model Feature Representation

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).

All 12d Model XML features contain a 12dxml_type attribute, which identifies the geometric type. In the rare cases where the model does not actually contain any geometry, the value of this attribute will be 12dxml_no_geom.

Writer Feature Representation

The 12D Model xml writer supports multiple feature types contained in the model element. However, differentiating the output element type based on the feature geometry becomes a challenge. For example, an FMEPath geometry, sequence of line segments, can be interpreted as the path of a road in a string_super element or a network of pipes under a string_drainage element. Thus, to differentiate between the 12d types, the writer looks for specific attributes that relate to the element.

12D Element Type

FME Geometry Type

Required Attributes

string_super

FMEPoint, FMELine, FMEPolygon

None

string_drainage

FMELine, FMEAggregate, FMEPipe

drainage_sewer

outfall

flow_direction

use_pit_con_points

trimesh

FMEMesh

None

tin

FMEMesh

input.preserve_strings

input.remove_bubbles

input.weed_tin

input.triangle_data

input.sort_tin

input.cell_method

Attributes

12d Model elements have attributes specific to each feature, similar to FME feature attributes. 12d Model attribute types must be one of the following: integer, real, text, or group. Attributes can have a recursive definition by using the group type, which allows for nested attributes going down to any level.

The 12d Model XML reader in dataset mode will dynamically unflatten these attributes into the following feature attributes:

Attribute Name

Attribute Value

Group_A.Attribute_1

Value 1

Group_B.Attribute_2

Value 2

Group_B.Group_C.Attribute_3

Value 3

Vertex and Segment Attributes

A super string can have attributes for the entire string (feature attributes) or have attributes for each vertex and/or segments (geometry attributes). FME does not support having attributes or traits on individual vertex or segments, so vertex and segment attributes are transferred onto feature attributes. Vertex and Segment attributes will contain a prefix Vertex{n} or Segment{n}, where n represents the nth vertex or segment.

This 12d XML reader/writer will read and write Vertex and Segment attributes as the following list attributes:

Attribute Name

Attribute Value

Vertex{0}.attr_A

Fred

Vertex{0}.attr_B

100

Vertex{1}.attr_A

200

Pipe and Pit Attributes

A string drainage feature type represents a network of pipes. Pipe and Pit attributes specific to a single pipe will be set as a list attribute on the feature, similar to Vertex and Segment attributes.

When writing to 12d XML, if pipe or pit list attributes exist for a pipe at index i, then those attributes will be written. Otherwise, only diameter and thickness attributes will be written for the pipe, as well as the ip attribute for the pit.

Geometry Representation

The geometry of 12d Model features is identified by the 12dxml_type attribute. The valid values for this attribute are described below.

Aggregates

12dxml_type

FME Type

Feature Type

Description

12dxml_collection

fme_collection

Aggregate feature

Features with their 12dxml_type set to 12dxml_collection could be an aggregate of vertical and horizontal alignments, or an aggregate of FMEPipe geometries that represent a drainage network.

A 12dxml_collection geometry comes from a super_string_alignment or a string_drainage element.

For string drainage reading and writing, FME assumes the FMEPipe geometries in the aggregate are connected in the order they appear.

Areas

12dxml_type

FME Type

Feature Type

Description

12dxml_polygon

fme_polygon

fme_rectangle

fme_rounded_rectangle

Polygon feature

Features with their 12dxml_type set to 12dxml_polygon are polygon features that do not have interior boundaries.

A polygon geometry is automatically created when a geometry is detected to be closed. A 12dxml_polygon geometry comes from a string_super element.

Lines

12dxml_type

FME Type

Feature Type

Attribute Type

12dxml_line

fme_line

fme_ellipse

fme_arc

Linear, arc, or path feature

Features with their 12dxml_type set to 12dxml_line are polyline, arc, and path features.

A path feature may contain a combination of straight line and arc geometries.

A 12dxml_line geometry comes from a string_super or string_drainage element.

No Geometry

12dxml_type

FME Type

Feature Type

Description

12dxml_no_geom

fme_no_geom

FME feature with no geometry

Features with their 12dxml_type attribute set to 12dxml_no_geom do not contain any geometry data.

Points

12dxml_type

FME Type

Feature Type

Description

12dxml_point

fme_text

Point feature

Features with their 12dxml_type set to 12dxml_point are single coordinate features (also referred to as vertex geometry by 12d Model).

A 12dxml_point geometry comes from a string_super element.

Surfaces

12dxml_type

FME Type

Feature Type

Description

12dxm_surface

fme_surface

Surface feature

Features with their 12dxml_type set to 12dxml_surface are triangulated irregular networks (TINs).

A 12dxml_surface geometry comes from a full_tin, tin, or primitive_3d element.