Feature Representation
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 described in this section.
The Geodatabase modules make use of the following special attribute names.
Attribute Name |
Contents |
geodb_type |
The type of geometric entity stored within the feature. The valid values are listed below: geodb_annotation geodb_arc geodb_attributed_relationship geodb_complex_edge geodb_complex_junction (read-only) geodb_dimension geodb_ellipse geodb_metadata geodb_multipatch geodb_multipoint geodb_point geodb_polygon geodb_polyline geodb_raster geodb_relationship geodb_simple_edge geodb_simple_junction geodb_table |
geodb_measures |
This is present for features that have measures when reading. To write measures, you simply build this list with one value for each vertex in the feature being written. This is a comma-separated list of floating values that correspond to the vertex measures. The first value is for the first vertex, second for the second, and so on. |
geodb_feature_is_simple (Reader only) |
Indicates whether or not the geometry is simple. Only present on spatial features and when ArcGIS 9 (or newer) is installed. |
geodb_subtype_name |
When reading, if RESOLVE_SUBTYPE_NAMES is set to YES, then the value corresponding to the subtype code is stored in this attribute. When writing to a table with subtypes and no integer value is supplied for the subtype field, then specifying this attribute with an actual value (i.e. not "") will trigger a look-up for the code corresponding to the value supplied in this attribute. If the code is found, it will be written to the subtype field; otherwise the feature will fail to be written. If the value specified was the empty string (i.e., "") then the default value will get used. |
<attribute-name>_resolved |
When reading, if RESOLVE_DOMAINS is set to YES, then the description corresponding to the domain code is stored in this attribute. When writing to a field associated with a coded value domain, specifying this attribute instead of <attribute-name> will trigger a look-up for the corresponding code. If the code is found, it will be written to <attribute-name>. |
geodb_feature_class_alias |
When reading, if ALIAS_MODE is set to SCHEMA or ON_DATA_FEATURES, then the feature class or table alias will be added to each feature. When writing, this attribute will be respected when creating feature classes or tables. |
<attribute-name>_alias |
When reading, if ALIAS_MODE is set to ON_DATA_FEATURES, then a secondary attribute that contains the attribute alias will be added to each feature, for each attribute. When writing, these attributes will be respected when creating feature classes or tables. |
Indicates the feature dataset in which the feature originates. For reading, this is only present if the feature originates from a feature class that is part of a feature dataset. For writing, this can be specified on the first feature to indicate the feature dataset a newly created feature class should be created in. If the feature dataset did not previously exist, a new one will be created. A feature dataset provided in the Feature Type parameter will take precedence over this format attribute. Note: Not all geodb_types can be part of a feature dataset. See Esri Geodatabase documentation for details. |
Features read from, or written to, the Geodatabase also have an attribute for each column in the database table.
geodb_type: geodb_table
Features with this value consist of no coordinates. This value is used by both the reader and the writer.
geodb_type: geodb_point
Features with this value are point features. This value is used by both the reader and the writer.
geodb_type: geodb_polyline
Features with this value are features or multi-part features consisting of one or more linear features (that are linked together). This type of linear feature is allowed to touch or cross over itself. This value is used by both the reader and the writer.
geodb_type: geodb_multipoint
Features with this value are multi-part features consisting of points. This value is used by both the reader and the writer.
Note: If a multipoint feature is written to an existing point feature class, then the feature will be split up and each point written out as a separate feature. Each new feature will have the same attribution as the original feature; the only difference will be the geometry. If a multipoint feature is written to a point feature class that has not yet been created, then a multipoint feature class will be created instead of a point feature class.
geodb_type: geodb_arc
Features with this value contain either a circular arc or an elliptical arc. Arc features are like ellipse features, except two additional angles control the portion of the ellipse boundary which is drawn.
Attribute Name |
Contents |
geodb_primary_axis
|
The length of the semi-major axis in ground units. If the arc is circular, this will be the same as the geodb_secondary_axis. Reprojectable: Yes |
geodb_secondary_axis
|
The length of the semi-minor axis in ground units. If the arc is circular, this will be the same as the geodb_primary_axis. Reprojectable: Yes |
geodb_start_angle
|
How FME calculates start_angle and sweep_angle Default: 0 Reprojectable: Yes |
geodb_sweep_angle
|
How FME calculates start_angle and sweep_angle
Reprojectable: Yes |
geodb_rotation
|
The rotation of the major axis. The rotation is measured in degrees counterclockwise up from horizontal. Reprojectable: Yes Default: 0 |
geodb_type: geodb_ellipse
Ellipse features are point features used to represent both circles and ellipses. The point serves as the centre of the ellipse.
Attribute Name |
Content |
geodb_primary_axis |
The length of the semi-major axis in ground units. Reprojectable: Yes |
geodb_secondary_axis
|
The length of the semi-minor axis in ground units. Default: the value of geodb_primary_axis Reprojectable: Yes |
geodb_rotation |
The rotation of the major axis. The rotation is measured in degrees counterclockwise up from horizontal. Default: 0 Reprojectable: Yes |
geodb_type: geodb_polygon
Features with this value are features or multi-part features consisting of polygons and/or donut polygons.
geodb_type: geodb_multipatch
Features with this value consist of a 3D geometry, used to represent the outer surface of features which occupy a discrete area or volume in three-dimensional space. Geodatabases directly support 3D polygonal faces, triangle fans, triangle patches and triangle strips. By definition, the surfaces which compose a multipatch do not need to be connected. This value is used by both the reader and the writer.
Multipatches support appearances, but only one appearance per surface is supported. For two-sided surfaces, the writer will favor non-default appearances with textures, with the front side taking precedence over the back side. If this behavior is not desired, the writer can be forced to choose the front side by using the AppearanceRemover transformer in FME Workbench to remove all back appearances.
For writing, all 3D geometry types are supported. Any types of 3D geometry which are not directly supported in a geodatabase (e.g., solids) are decomposed into a set of 3D polygonal faces prior to writing.
geodb_type: geodb_annotation
Feature-linked Annotation
Annotations are separate features but can be linked to other features through feature-linked annotations. Feature-linking occurs when there is a relationship between an annotation feature class and some other feature class. The attribute geodb_linked_feature_id controls which annotations are linked to which features.
If the feature to be linked to by the annotation has not yet been written, then it is possible for the Geodatabase writer to write the feature, retrieve the object ID of the new feature, and then write the annotation feature linking to it, supplying the correct value for geodb_linked_feature_id. This is accomplished by supplying attributes (Geodatabase-specific annotation attributes and user-defined attributes) from the annotation feature on the non-annotation feature; of the annotation feature attributes, only geodb_text_string must be specified. In addition, the following attributes must also be specified:
- geodb_text_feat_class_name – specifies the annotation feature class to which the annotation will be written
- geodb_text_x_coord & geodb_text_y_coord – specifies the location of the annotation
The result is that the one FME feature contains enough information to write two features: one annotation feature and one non-annotation feature.
To specify multiple feature-linked annotations, the list attribute geodb_text{i} must be used to group together each annotation's attributes. There are 4 mandatory annotation attributes that must be present for each annotation in the list:
- geodb_text{i}.geodb_text_string - the text string to write
- geodb_text{i}.geodb_text_feat_class_name - the name of the destination annotation feature class
- geodb_text{i}.geodb_text_x_coord - the x coordinate of the annotation's location
- geodb_text{i}.geodb_text_y_coord - the y coordinate of the annotation's location
Other than these 4 attributes, as many or as few annotation attributes can be used. Keep in mind that default values will be used for attributes that are not specified. A list of all available annotation attributes is given at the end of this section on annotations.
For example, to insert 3 annotation features, each belonging to a different anno feature class, for the one 'streets' feature written, a feature like this would be needed.
feature type: streets
fme_geometry = fme_line
fme_type = fme_line
geodb_type = geodb_polyline
user_defined_field_1 = value
user_defined_field_2 = value
user_defined_field_3 = value
...
geodb_text{0}.geodb_text_feat_class_name = street_names
geodb_text{0}.geodb_text_x_coord = 7504799.45082186
geodb_text{0}.geodb_text_y_coord = 731099.587626632
geodb_text{0}.geodb_text_angle = 10
geodb_text{0}.geodb_text_line_spacing = 0
geodb_text{0}.geodb_text_ref_scale = 100
geodb_text{0}.geodb_text_scale = true
geodb_text{0}.geodb_text_size = 8.2
geodb_text{0}.geodb_text_string = "displayed street name"
geodb_text{0}.user_field_1_for_street_names = value
geodb_text{0}.user_field_2_for_street_names = value
...
geodb_text{1}.geodb_font_bold = false
geodb_text{1}.geodb_font_charset = 0
geodb_text{1}.geodb_font_italic = false
geodb_text{1}.geodb_font_name = Arial
geodb_text{1}.geodb_font_size = 20(
geodb_text{1}.geodb_font_strikethrough = false
geodb_text{1}.geodb_font_underline = false
geodb_text{1}.geodb_font_weight = 400
geodb_text{1}.geodb_text_feat_class_name = alternate_street_names
geodb_text{1}.geodb_text_x_coord = 7504783.11300916
geodb_text{1}.geodb_text_y_coord = 731109.158628889
geodb_text{1}.geodb_text_angle = 56.8
geodb_text{1}.geodb_text_size = 4.3
geodb_text{1}.geodb_text_string = "alternate street name"
geodb_text{1}.user_field_1_for_alternate_street_names = value
...
geodb_text{2}.geodb_text_feat_class_name = old_street_names
geodb_text{2}.geodb_text_string = "old street name"
geodb_text{2}.geodb_text_x_coord = 7504788.43294883
geodb_text{2}.geodb_text_y_coord = 731105.044247817
geodb_text{2}.user_field_1_for_old_street_names = value
...
Geometry Type: Line (2)
Number of Coordinates: 4 -- Coordinate Dimension: 2 -- Coordinate System: _FME_0'
(7504779.48166667,731111.522380952)
(7504797.35380952,731098.524285714)
(7504813.13690476,731104.327142857)
(7504805.59357143,731109.201190476)
Lastly, the TRANSACTION_TYPE
directive must be set to EDIT_SESSION
or VERSIONING
whenever writing feature-linked annotations.
Note: geodb_text_line_spacing
is equivalent to Font Leading in Geodatabase.
Note: For accurate placement of multiline text, ensure that the line endings are Windows-style line endings (“\r\n”).
In addition to text geometries, annotation feature classes can also contain non-text graphical elements known as graphic shapes. These shapes may be composed of polygon or line geometries or hierarchies containing them. Currently, graphic shapes are only supported on writing.
When writing line or polygon geometries or aggregates of them to an annotation feature class, they will be written out as graphic shapes. Basic symbology may be associated with the graphic by supplying the fme_color and fme_fill_color attributes. Graphic shapes are not text elements and therefore the format attributes associated with text annotation will not be written.
The following attributes are used to store the annotation information within an FME annotation feature.
In ArcGIS 9.1, the schema of annotation feature classes changed and a considerable number of additional fields were added. These new fields contain information about the annotation such as its font, size, angle, offset, leading, etc. When writing, these fields should never be set directly; instead the attributes in the table below must be used to control the properties of the annotation. After the translation, the fields will display the desired values because the attributes below correspond to some of the fields.
FME supports “Simple Line Callout” and “Line Callout” annotation leader lines represented as format attributes. Common between both are tolerance, line width, line color, and the anchor point. Simple Line Callouts can optionally have a geometry associated with them stored in geodb_leader_line. Line Callouts in Geodatabase have no geometry associated with them and are rendered directly in ArcGIS based on their attributes. To assist in emulating the rendering, FME provides a textbox envelope that can be used along with the style, gap, margin and anchor point attributes to determine where to place the leader line and accent bar.
Leader lines attributes will only be on annotations with an actual leader line. If the annotation is split, then the leader line attributes are only placed on the first part with the textbox being the envelope of the whole annotation.
Leader line attributes will override leader line symbols if a symbol id or annotation class id is provided. If just providing an anchor point, only the anchor point will be overridden; otherwise, the whole leader line symbol will be overridden.
Attribute Name |
Contents |
geodb_text_string |
The annotation string. It is returned as a UTF-16 encoded string by the reader. The writer converts the value supplied for this attribute into UTF-16. |
geodb_text_size |
The size of the text in user units. This size gets converted to points, and the text will be displayed at this size when viewed at the reference scale. If this attribute is not supplied, then a default text size of 10 points is used and no conversion is done. Default: 10.0 points Reprojectable: Yes |
geodb_text_feat_class_ |
The name of the destination annotation feature class. It is only used when writing feature-linked annotations. |
geodb_text_x_coord |
The x coordinate of the annotation's location. It is only used when writing feature-linked annotations. |
geodb_text_y_coord |
The y coordinate of the annotation's location. It is only used when writing feature-linked annotations. |
geodb_linked_feature_id |
The ID of the feature to which the annotation is linked. Only applicable when writing feature-linked annotation and when the feature being linked to has already been written. In most cases the non-annotation feature will not yet have been written and so the feature ID will not be known. In this case, the Geodatabase writer can provide the correct value for this attribute. See the section Feature-Linked Annotation for more information. Default: -1 |
geodb_anno_class_id |
The ID of the Annotation Class to use when writing the annotation. The ID is an integer: to see what ID an Annotation Class maps to, view the Subtypes tab of the Feature Class Properties dialog in Esri ArcCatalog® for the annotation feature class. If an invalid ID or -1 was specified then the annotation will be created using an inline text symbol; otherwise the annotation will reference an existing text symbol. Referencing existing text symbols decreases table size and may improve performance.
When using an Annotation Class, certain annotation properties can be overridden and others cannot. The following attributes cannot override the properties of the Annotation Class: - geodb_font_strikethrough - geodb_font_weight - geodb_font_charset - geodb_text_scale - geodb_text_break_char - geodb_text_clip - geodb_right_to_left The following attributes can override the properties of the Annotation Class: - all non-read-only leader line attributes - geodb_text_size - geodb_text_angle - geodb_font_name - geodb_font_size - geodb_font_italic - geodb_font_underline - geodb_font_bold - geodb_text_color - geodb_color - geodb_text_x_offset - geodb_text_y_offset - geodb_h_align - geodb_v_align - geodb_text_line_spacing (equivalent to Font Leading in Geodatabase) Default: -1 |
geodb_symbol_id |
The ID of Symbol to use when writing the annotation. The ID is an integer: to see what ID a Symbol maps to, view the Annotation or Subtypes tabs of the Feature Class Properties dialog in Esri ArcCatalog for the annotation feature class. If an invalid ID or -1 was specified then the annotation will be created using an inline text symbol; otherwise the annotation will reference an existing text symbol. If geodb_anno_class_id is also specified, geodb_symbol_id takes precedence. See geodb_anno_class_id above for details about overriding annotation properties. Default: -1 |
geodb_allow_symbol_overrides |
If TRUE, then this indicates that an annotation may override text symbol properties when it is already referencing a symbol with a geodb_symbol_id or geodb_anno_class_id. FALSE indicates that no overrides will be written ensuring the annotation will conform to the referenced symbol. See geodb_anno_class_id for details about overriding annotation properties. Default: TRUE |
geodb_font_name |
The name of the font used to display the text string. Default: Arial |
geodb_font_size |
The size of the font used to display the text string. Default: 10 |
geodb_font_italic |
Indicates whether the string should be Italicized text. Allowable values are Yes and No. Default: No |
geodb_font_underline |
Indicates whether the string should be underlined text. Allowable values are Yes and No. Default: No |
geodb_font_bold |
Indicates whether the string should be boldface text. Allowable values are Yes and No. Default: No |
geodb_font_strikethrough |
Indicates whether the string should be "strike-through" text. Allowable values are Yes and No. Default: No |
geodb_font_weight |
Indicates the weight of the font being used to display the string. The value must be an integer greater than or equal to zero. Default: 400 |
geodb_font_charset |
Indicates the character set being used to display the string. The value must be the integer value associated with a specific character set. For example, the ANSI character set is given the value 0, the default character set is given the value 1, and the symbol character set is given the value 2. Some additional character sets, and their values, are:
Default: 0 (ANSI character set) |
geodb_color |
The color of the text defined as an RGB string, with each value separated by a comma. Each value must be an integer between 0 and 255 (inclusive). Note: The Geodatabase writer has an internal attribute for color (geodb_text_color) and so the default for this attribute is only used when no value is supplied for the geodb_text_color attribute. Default: 0,0,0 (black) |
geodb_text_angle
|
The rotation of the annotation measured from the horizontal in a counterclockwise direction. It is measured in degrees. Default: 0 Reprojectable: Yes |
geodb_text_ref_scale |
The reference scale at which the text’s size, on the screen, is the size indicated by geodb_text_size/fme_text_size. When the scale is larger in value than the reference scale, the text appears smaller than that indicated by geodb_text_size/fme_text_size, and vice versa. Default: 1 |
geodb_text_scale |
Indicates whether the text scales with the map. Default: TRUE |
geodb_text_point_scale_factor | The size of one font point in ground units. This can be used for conversion from point units to ground units or vice versa. It is a read-only attribute. |
geodb_text_break_char |
The ASCII value of the character that should be interpreted as the line end. Default: 10 (the line feed character) |
geodb_text_clip |
Indicates whether the text string will be clipped in order to fit into an envelope geometry. Default: No |
geodb_text_x_offset |
The text offset in the x direction, measured in points. Default: 0 |
geodb_text_y_offset |
The text offset in the y direction, measured in points. Default: 0 |
geodb_text_leader_line |
The geometry of the leader line of type “Simple Line Callout” associated with the annotation, if present. It will be stored in OGC WKT format. |
geodb_text_leader_line_anchor_point |
The geometry of the leader line anchor point associated with the annotation, if present. It will be stored in OGC WKT format. |
geodb_text_leader_line_tolerance | The leader tolerance of the leader line in ground units associated with the annotation, if present. The leader tolerance is the minimum distance the text should be from the anchor point before a leader line is drawn. |
geodb_text_leader_line_width | The width of the leader line in ground units. |
geodb_text_leader_line_color | The RGB color of the leader line. See geodb_color for a description of how color is represented in FME. |
geodb_text_lc_style |
The style of “Line Callout” type leader lines. Options: base, midpoint, threepoint, fourpoint, underline, custom, circularCW, circularCCW |
geodb_text_lc_gap | The gap is the space in ground units between the margin and the accent bar for “Line Callout” type leader lines. |
geodb_text_lc_margin_left | The left margin in ground units of “Line Callout” type leader lines. |
geodb_text_lc_margin_right | The right margin in ground units of “Line Callout” type leader lines. |
geodb_text_lc_margin_top | The top margin in ground units of “Line Callout” type leader lines. |
geodb_text_lc_margin_bottom | The bottom margin in ground units of “Line Callout” type leader lines. |
geodb_text_lc_accent_bar_width | The width in ground units of the accent bar of “Line Callout” type leader lines. |
geodb_text_lc_accent_bar_color | The RGB color of the accent bar of “Line Callout” type leader lines. See geodb_color for a description of how color is represented in FME. |
geodb_text_lc_textbox_x1 geodb_text_lc_textbox_y1 geodb_text_lc_textbox_x2 geodb_text_lc_textbox_y2 geodb_text_lc_textbox_x3 geodb_text_lc_textbox_y3 geodb_text_lc_textbox_x4 geodb_text_lc_textbox_y4 |
The four coordinates of a bounding box around the text. This bounding box may be rotated. The textbox along with the margin and gap can be used to determine the start position of the accent bar and the start position of the leader line for “Line Callout” leader lines. These are read-only attributes. |
geodb_h_align |
The alignment of text horizontally if the text spans multiple lines. Options: left, right, center, full Default: left |
geodb_v_align |
The vertical alignment of text. Options: baseline, bottom, center, top Default: bottom |
geodb_right_to_left |
If TRUE, then this indicates that the text is written from right to left. If FALSE, then this indicates that the text is written from left to right. Default: FALSE |
geodb_text_char_spacing |
The amount of character spacing, measured as a percentage of the original character’s length. A value of 0 indicates that the standard amount of character spacing, as set by Esri, will be used. A value greater than 0 increases the amount of character spacing, whereas a value less than 0 decreases the amount of character spacing. Default: 0 |
geodb_text_character_width |
The amount to expand or shrink the width of each character as a percentage of the original character width. A value of 200 doubles the width of each character, whereas a value of 50 halves the width. Default: 100 |
geodb_text_line_spacing Note: (equivalent to Font Leading in Geodatabase) |
The amount of line spacing, measured in font points. The value must be a real number. A value of 0 indicates that the standard amount of line spacing, as set by Esri, will be used. A value greater than 0 increases the amount of line spacing, whereas a value less than zero decreases the amount of line spacing. If the value is small enough, the order of lines will get reversed (that is, the first line becomes the last line, the second line becomes the second last line, and so on). Default: 0 |
geodb_text_string_with_format_tags |
The annotation string complete with text formatting tags. It is returned as a UTF-16 encoded string by the reader. The writer converts the value supplied for this attribute into UTF-16. To set the text string of an annotation when writing, the value of this attribute is used in preference to geodb_text_string. |
geodb_text_part_count | The part number of a feature that was split from a complex text annotation. The parts are indexed from 0. This is only available when SPLIT_COMPLEX_ANNOS is set to Yes. |
geodb_type: geodb_dimension
Dimension features are defined by the following attributes:
Attribute Name |
Contents |
geodb_dim_style_id |
The numeric ID describing which style this dimension uses. When writing dimensions this attribute must be supplied on the feature and be assigned an ID for an existing style, otherwise an error will occur. Note: When translating from one Geodatabase dimension feature class to another, make sure that the destination feature class contains all the dimension styles used by the input dimension feature class. This may mean that the destination dimension feature class has to be created before the translation using ArcGIS. |
geodb_dim_length |
The length of the dimension. A read-only attribute. |
geodb_dim_custom_length |
A length specified to be displayed instead of the actual length in geodb_dim_length. This value only gets used if geodb_dim_using_custom_length is set to true. Default:0 |
geodb_dim_using_custom_length |
Specifies whether or not to use the custom length specified instead of the actual length. Permitted values are true and false. Default:false |
geodb_dim_type |
Specifies whether the dimension is linear or aligned. Please reference Esri documentation on dimensions for specific definitions. The numbers specified follow the Esri enumeration esriDimensionType and the values are: 0 = aligned 1 = linear Default: 0 |
geodb_dim_line_display |
Specifies which dimension parts appear on the dimension line (that is, if they point inward or outward, etc.). The integer values for this parameter follow the Esri enumeration esriDimensionDisplay and the values are: 0 = Displays both dimension parts. 1 = Displays the beginning dimension part. 2 = Displays the ending dimension part. 3 = Does not display any dimension part. Setting this attribute overrides the value set by the dimension style. |
geodb_dim_extn_line_display |
Specifies which dimension parts appear on the extension line. The valid values are the same as for geodb_dim_line_display. Setting this attribute overrides the value set by the dimension style. |
geodb_dim_marker_display
|
Specifies how arrows are displayed for the dimension. The values are the same as that of geodb_dim_line_display, except that they apply to markers (arrows) instead of dimension parts. Setting this attribute overrides the value set by the dimension style. |
geodb_dim_text_angle |
The angle of the text displayed, in radians. From Esri’s documentation: "The TextAngle property will only affect the dimension if the dimension's style's text alignment property is True in which case the text is always parallel to the dimension line." Default:0 |
geodb_dim_extn_line_angle |
The angle (in degrees) between the dimension line and the extension line. Default:90 |
geodb_dim_begin_dimension_x |
The X value for the Begin Dimension Point. |
geodb_dim_begin_dimension_y |
The Y value for the Begin Dimension Point. |
geodb_dim_begin_dimension_z |
The Z value for the Begin Dimension Point. |
geodb_dim_end_dimension_x |
The X value for the End Dimension Point. |
geodb_dim_end_dimension_y |
The Y value for the End Dimension Point. |
geodb_dim_end_dimension_z |
The Z value for the End Dimension Point. |
geodb_dim_line_x |
The X value for the Dimension Line Point. The Dimension Line Point determines the height of the dimension line above the baseline. To create a two-point dimension, the Dimension Line Point must be the same as the Begin Dimension Point. |
geodb_dim_line_y |
The Y value for the Dimension Line Point. The Dimension Line Point determines the height of the dimension line above the baseline. To create a two-point dimension, the Dimension Line Point must be the same as the Begin Dimension Point. |
geodb_dim_line_z |
The Z value for the Dimension Line Point. The Dimension Line Point determines the height of the dimension line above the baseline. To create a two-point dimension, the Dimension Line Point must be the same as the Begin Dimension Point. |
geodb_dim_text_x |
The X value for the Text Point. If the x,y,z values for the text point are all zero then the default text position is used. Default:0 |
geodb_dim_text_y |
The Y value for the Text Point. If the x,y,z values for the text point are all zero, then the default text position is used. Default:0 |
geodb_dim_text_z |
The Z value for the Text Point. If the x,y,z values for the text point are all zero, then the default text position is used. Default:0 |
geodb_type: geodb_simple_junction
This type is supported by both the reader and the writer. However, simple junction feature classes must be created in ArcCatalog prior to running the translation. Simple junction features are defined by the following attributes:
Attribute Name |
Contents |
geodb_edge_feature_count |
The number of edge features associated with the junction. Present only on features being read. |
geodb_element_id |
The logical network element ID of the junction. Present only on features being read. |
geodb_ancillary_role |
The network ancillary role of the junction. Possible values are: none, source, and sink. |
geodb_type: geodb_simple_edge
This type is supported by both the reader and the writer. However, simple edge feature classes must be created in ArcCatalog prior to running the translation. Simple edge features are defined by the following attributes:
Attribute Name |
Contents |
geodb_element_id |
The logical network element ID of the junction. Present only on features being read. |
geodb_from_junction_element_id |
The junction element ID that corresponds to the from endpoint. Present only on features being read. |
geodb_to_junction_element_id |
The junction element ID that corresponds to the to endpoint. Present only on features being read. |
geodb_type: geodb_complex_junction
This type is deprecated, and only supported by the Reader. Complex junction features are defined by the following attributes:
Attribute Name |
Contents |
geodb_junction_element_count |
The number of junctions associated with the feature |
geodb_edge_feature_count{} |
The number of edge features associated with the indexed connection point |
geodb_topological_ |
The configuration of the feature. Possible values are: chain, loop, star, and mesh. |
geodb_ancillary_role |
The network ancillary role of the junction. Possible values are: none, source, and sink. |
geodb_edge_element_count |
The number of edge elements associated with the feature. |
geodb_type: geodb_complex_edge
This type is supported by both the reader and the writer. However, complex edge feature classes must be created in ArcCatalog prior to running the translation. The attributes present on an FME feature depend on the value for the reader directive SPLIT_COMPLEX_EDGES. If the value is NO, the following attributes will be present:
Attribute Name |
Contents |
geodb_edge_element_count |
The number of edge elements associated with the feature. Present only on features being read. |
geodb_from_junction_element_ |
The junction element ID that corresponds to the from endpoint Present only on features being read. |
geodb_junction_feature_count |
The number of connected junction features. Present only on features being read. |
geodb_to_junction_element_id |
The junction element ID that corresponds to the to endpoint. Present only on features being read. |
If the value is YES, these attributes will be present:
Attribute Name |
Contents |
geodb_element_id |
The element ID of the logical edge element. Present only on features being read. |
geodb_element_index |
An attribute created and assigned by FME. It is used to order the edge elements within a complex feature. The index begins at zero, not one. Present only on features being read. |
geodb_from_junction_ |
The junction element ID that corresponds to the from endpoint. Note: This is the from endpoint of the edge element, not the edge feature. Present only on features being read. |
geodb_to_junction_ |
The junction element ID that corresponds to the to endpoint. Note: This is the to endpoint of the edge element, not the edge feature. Present only on features being read. |
geodb_type: geodb_relationship and geodb_attributed_relationship
Relationship features contain information about a single relationship between an origin and destination feature. They can be both read and written using FME: attributed relationships can be inserted, updated and deleted, while non-attributed relationships can only be inserted and deleted. Relationships are not rows in a table or feature class like other features, but rather implied through the primary and foreign key values of an origin and destination feature. Attributed relationships have intermediate tables associated with them, which can be updated by providing an RID (relationship id) as a key field, much as an OBJECTID must be provided when updating a table or feature class.
Relationship classes cannot be created through FME, and must be set up through ArcCatalog prior to running the translation.
When reading, the following attributes are stored on the feature, and are required for writing relationships; they must be supplied, if the feature was not read from Geodatabase:
Attribute Name |
Contents |
geodb_rel_origin_oid |
The OBJECTID of the related origin feature. |
geodb_rel_destination_oid |
The OBJECTID of the related destination feature. |
geodb_type |
geodb_relationship (for non-attributed relationships) geodb_attributed_relationship (for attributed relationships) |
The following attributes are stored on all related origin or destination features, and are required for writing relationships; they must be supplied if a feature was not read from Geodatabase:
Attribute Name |
Contents |
geodb_feature_has_relationships |
Whether the feature participates in a relationship as an origin or destination. Values of ‘yes’, ‘y’, ‘true’, and ‘t’ (all case-insensitive) are accepted for features participating in relationships. |
geodb_oid | The temporary OBJECTID of the feature. |
In particular, it's possible to write to origin and destination feature classes, as well as associated relationship classes, all in one pass. This is automatic when reading from one Geodatabase and writing to another, but can be achieved in other cases with additional care. This applies to attributed and non-attributed relationships. It applies to relationships that reference the OBJECTID field in the origin and destination tables, as well as relationships that reference other fields in the origin and destination tables.
When writing origin or destination features that will be referenced by relationship features written during the same pass, they must have:
geodb_oid = <temporary local object id>
geodb_feature_has_relationships = "yes"
The <temporary local object id>
does not become the ultimate OBJECTID in ArcGIS. However, it can be used to reference origin and destination features when writing relationship features in a single pass.
When writing relationship features, they must have:
geodb_rel_origin_oid
= <temporary local object id>
OR <true object id>
geodb_rel_destination_oid
= <temporary local object id>
OR <true object id>
geodb_type
= "geodb_relationship"
(for non-attributed relationships), or
"geodb_attributed_relationship"
(for attributed relationships)
If there is an overlap between true object IDs and temporary local object IDs, FME preferentially assumes the ID is a temporary local one. This allows the user to ignore the true object IDs if desired.
The destination feature type properties for relationship classes should have
"Allowed Geometries"
= "geodb_relationship"
or "geodb_attributed_relationship"
as appropriate. (This explanation is for Workbench; mapping file authors should
set geodb_type
to one of the above on the DEF line. See Geodatabase Table
Representation for more details.)
Note: When writing relationship features with FME, you must always provide object IDs, *not* the values of the actual origin and destination key fields if they are different than OBJECTID.
geodb_type: geodb_metadata
Metadata features contain metadata about the feature type. Metadata can be read and written. The metadata used is of the same form as when using Esri’s ArcCatalog to export table metadata to (plain) XML.
When reading, the following attributes are supplied on the feature, where applicable:
Attribute Name |
Contents |
fme_contains_spatial_column |
yes or no, depending on whether the feature type is a non-spatial table, attributed relationship, or a feature class |
fme_dimension |
2 or 3, depending on the dimension of the feature class |
fme_feature_identifier |
The name of the object ID field |
fme_geometry{0} |
The geometry of the feature class. This will be set to fme_no_geom for non-spatial tables and attributed relationships |
fme_num_entries (Personal Geodb only) |
The total number of features in the table |
geodb_metadata_string |
The geodatabase metadata in XML |
If the feature type represents a feature class, the geometry of the metadata feature returned is a polygon, representing the extents of the feature class and the coordinate system of the feature class also gets set on the feature.
When writing, the geodb_type of the feature must be geodb_metadata; however, the geodb_type of the destination feature type must not be geodb_metadata, but rather the type of the table itself.
The metadata within geodb_metadata_string will overwrite any previous metadata that exists in the table. If multiple metadata features are written to a single table, then the last metadata feature will be used. Viewing the metadata within ArcCatalog after the translation will automatically update certain fields, such as table name & record count, if they were set incorrectly in geodb_metadata_string. However, if you use FME to read back the metadata before viewing the results in ArcCatalog then the incorrect fields will not have been corrected. None of the other attributes supplied on an FME feature when reading metadata will get used when writing metadata.
Writing metadata features does not increase the number of features in a table.
Difference features are produced when reading version differences. The features record the changes made to a table or feature class between the connection version and a baseline version.
Three types of differences are considered: inserts, updates, and deletes. Each difference feature always contain an fme_db_operation attribute that contains the type of difference and the geodb_oid that identifies the record that has changed.
Features additionally represent the current state of the row, so INSERT and UPDATE features contain the complete feature representation including geometry and attributes, whereas DELETE features only contain the fme_db_operation and geodb_oid of the deleted row.
Attribute Name | Contents |
---|---|
fme_db_operation |
INSERT – A new feature was added that did not exist in the baseline version. UPDATE – The feature with the specified Object ID has been modified since the baseline version. DELETE – The feature with the specified Object ID has been deleted since the baseline version. |
Features with this value consist of a raster geometry, and are used to represent a two-dimensional grid of values. FME supports the writing and reading of both single- and multi-banded numeric rasters, and three-banded color rasters.
Additionally, the writer supports a single alpha band that is treated as a nodata mask for all bands, where an alpha value of 0 at a given cell represents nodata.
Nodata within rasters are represented as nodata values per band for unmanaged rasters and as a single alpha band for managed rasters. The single alpha band is a combination of the nodata bitmasks of the other bands, where a value of zero at a given cell represents nodata and only occurs when all the bands have nodata at the given cell. On write, nodata per band is fully supported as nodata values per band. If nodata values and an alpha mask are both present on write, then only the nodata values will be used and the alpha band is ignored.
Attribute Name |
Contents |
geodb_raster_compression_type |
The type of compression algorithm used to store data in the raster dataset. |
geodb_raster_compression_quality | The compression quality. |
geodb_raster_pyramid_resample_type | The resampling method used when building reduced resolution pyramids on the raster dataset. |
geodb_raster_pyramid_level | The number of reduced resolution pyramids built. |