PenMetrics GRD Feature Representation
GRD features consist of geometry and attribute information. All GRD FME features contain the grd_type attribute that identifies the geometric type, as well as many common attributes.
In addition to the generic FME feature attributes that FME Workbench adds to all features (see About Feature Attributes), and depending on the geometric type, the feature may contain additional attributes specific to the geometric type. These are described in the tables below.
Attribute Name |
Contents |
---|---|
grd_type |
The GRD geometric type of this entity. Range:
Default: No default |
The following table lists all common GRD attributes returned on all features produced by the FME reader. If these attributes are present on any feature written out to GRD, they will be used to set the appropriate values in the output file.
Field Name |
Description |
---|---|
grd_added |
Boolean flag indicating whether the IsAdded bit on this vector is set. Range: True | False Default: False |
grd_annotation_string |
This string holds the annotation for the vector. Maximum size is 254 characters. There is no annotation by default. |
grd_annotation_x grd_annotation_y grd_annotation_z |
This is the location of the annotation for the vector. Range: Any real number. Default: 0 |
grd_blocks_brush_color |
When reading GRD files, this Boolean flag indicates if the brush color was taken from the block or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the block’s brush color or specifically set its own. Range: True | False Default: False |
grd_blocks_brush_type |
When reading GRD files, this Boolean flag indicates if the brush type was taken from the block or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the block’s brush type or specifically set its own. Range: True | False Default: False |
grd_blocks_pen_color |
When reading GRD files, this Boolean flag indicates if the pen color was taken from the block or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates whether the feature should use the block’s pen color or specifically set its own. Range: True | False Default: False |
grd_brush_color |
This is the color of the brush used to plot the vector. Refer to the information under the heading Colors for a description of each color. Note that color 16 is TRANSPARENT. Range: 0-18 Default: 0 (black) |
grd_brush_type |
This is the type of brush used for this vector. The values are associated with the following types: 0 = SOLID 1 = DIAGONAL #1 2 = CROSS 3 = DIAGONAL COORD 4 = DIAGONAL #2 5 = HORIZONTAL 6 = VERTICAL 7 = USE LAYER'S BRUSH TYPE 8 = USE BLOCK'S BRUSH TYPE Range: 0-8 Default: 0 (solid) |
grd_changed |
Boolean flag indicating if the IsChanged bit on this vector is set. Range: True | False Default: False |
grd_database_key |
This is a key string that links the vector to a database. The format of, and relationship between, the database and the feature is beyond the scope of the GRD reader or writer. Maximum size is 254 characters. |
grd_has_annotation |
Boolean flag indicating if the HasAnnotation bit on this vector is set. Range: True | False Default: False |
grd_has_extra_data |
Boolean flag indicating whether the HasExtraData bit on this vector is set. Range: True | False Default: False |
grd_layers_brush_color |
When reading GRD files, this Boolean flag indicates if the brush color was taken from the layer or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the layer’s brush color or specifically set its own. Range: True | False Default: False |
grd_layers_brush_type |
When reading GRD files, this Boolean flag indicates if the brush type was taken from the layer or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the layer’s brush type or specifically set its own. Range: True | False Default: False |
grd_layers_linetype |
When reading GRD files, this Boolean flag indicates if the line type was taken from the layer or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the layer’s line type or specifically set its own. Range: True | False Default: False |
grd_layers_pen_color |
When reading GRD files, this Boolean flag indicates whether the pen color was taken from the layer or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the layer’s pen color or specifically set its own. Range: True | False Default: False |
grd_layers_pen_width_type |
When reading GRD files, this Boolean flag indicates whether the pen width was taken from the layer or if it was specifically set on the feature. When writing GRD files, this Boolean flag indicates if the feature should use the layer’s pen width or specifically set its own. Range: True | False Default: False |
grd_linetype_description |
This is a text description of the line type used for this vector. For detailed descriptions, see Line Types. The line type must be defined in either the workspace or the template file being used. By default, the layer’s line type is used. Maximum size is 80 characters, with a maximum of 12 entries. Example: “__ __ ______ . __ __” |
grd_linetype_name |
This is the name of the line type used to display the vector. The line type must be defined in the workspace or the template file being used. The default line type is to use the layer’s line type. Maximum size is 50 characters. |
grd_pen_color |
This is the color of the pen used to plot the vector. For a description of each color, see Numeric Color Associations. Range: 0-18 Default: 0 (black) |
grd_pen_width |
This is the width of the pen used to plot the vector. This value is interpreted differently depending on the pen width type. Range: Any real number. Default: 1 |
grd_pen_width_type |
This is the type of pen width used to plot the vector. Maximum size is 10 characters. The values are associated with the following types: 0 = USE LAYER 1 = HAIRLINE 2 = VIRTUAL 3 = PIXEL Default: 0 |
grd_reserved |
Boolean flag indicating whether the Reserved bit on this vector is set. Range: True | False Default: False |
grd_selected |
Boolean flag indicating whether the IsSelected bit on this vector is set. Note that this setting is unreliable within the FieldNotes application. Range: True | False Default: False |
grd_vector_handle |
This integer is the vector handle. Range: 0 - (2^33-1) Default: 0 |
grd_vector_type |
This is the type of vector. Maximum size is 10 characters. When reading GRD files, the value is one of the following: POINT, LINE, PLINE, RECT, CIRCLE, ELLIPSE, ARC, INSERT, TEXT, INK, or MS-PLINE |
grd_visible |
Boolean flag indicating if the IsVisible bit on this vector is set. Range: True | False Default: True |
grd_type: grd_point
GRD point features represent single point features and may be either 2D or 3D. These features have the following special attributes associated with them.
Attribute Name |
Contents |
grd_virtual_size |
This is the size the point should appear when plotted. Range: Any real number |
grd_point_type |
This is the symbology of the point when plotted. The value here may be the sum of any one of the internal types and any one of the outline types. Internal Types: 0 = dot 1 = none 2 = plus 3 = cross 4 = vertical line Outline Types: 0 = none 32 = circle 64 = square 96 = cirsquare Range: 0 - 100 |
grd_type: grd_ink
GRD ink features represent a raster picture or image. Their geometry is a point that indicates the lower-left point where the ink should be located. Ink features may have the following special attributes associated with them.
Attribute Name |
Contents |
---|---|
grd_ink_data |
This attribute contains the ink data. This is usually binary data stored in a string attribute, so typical string manipulation with this attribute may not be appropriate. |
grd_width |
This is the width of the ink data. Range: Any real number |
grd_height |
This is the height of the ink data. Range: Any real number |
grd_type: grd_insert
GRD insert features represent a block of features linked together. The geometry of this point consists of a point that indicates the location of the insert block. Inserts may also have any number of attributes associated with them (as defined in the block definition of the file). These attributes will appear on the feature with the attribute names as defined.
When writing insert attributes to GRD files, attributes with the prefix grd_insert_attribute{N} are first searched for necessary information. If these attributes are not found, then attributes with the prefix fme_attrib_info{N} are sought. Insert features may also have the following special attributes associated with them.
Attribute Name |
Contents |
---|---|
grd_block_name |
This attribute contains the name of the insert that holds all associated vectors together. If used with a <reader keyword>_TEMPLATE_FILE setting when writing GRD files, inserts may use blocks that have already been defined elsewhere. Maximum size is 254 characters. |
grd_rotation |
This is the rotation of the insert block, in degrees counterclockwise. Note: Ellipses must have a rotation that is a multiple of 90 degrees. Therefore, when writing out to GRD, if an insert refers to a block that has an ellipse in its definition, the rotation of the insert is rounded to the nearest multiple of 90 degrees when it is output. Range: 0 .. 360.0 |
grd_scale_x grd_scale_y grd_scale_z |
This is the scale of the insert block—a scaling factor applied to the ground units that block is defined in. Either the scale or the size of inserts must be specified. Range: Any real number |
grd_size_x grd_size_y grd_size_z |
This is the desired size of the insert block’s bounding box, in ground units. Either the scale or the size of inserts must be specified. If both are specified, the size settings are ignored. Range: Any real number |
grd_insert_attribute{N}.field_name fme_attrib_info{N}.field_name |
These list attributes hold the name of the Nth attribute. Range: text string |
grd_insert_attribute{N}.field_type fme_attrib_info{N}.field_type |
These list attributes hold the type of the Nth attribute. 1=DOUBLE 2=LONG 3=STRING 4=LOGICAL 5=DATE 6=TIME (unsupported) 7=MONEY (unsupported) 8=MEMO 9=BLOB 10=DATETIME (unsupported) Range: integer Default: 3 |
grd_insert_attribute{N}.field_size fme_attrib_info{N}.field_size |
These list attributes hold the size of the Nth attribute. Range: integer |
grd_insert_attribute{N}.num_decimal_ fme_attrib_info{N}.num_decimal_ |
These list attributes hold the number of decimal places in the value of the Nth attribute (if appropriate). Range: text string |
grd_insert_attribute{N}.default_ fme_attrib_info{N}.default_value |
These list attributes hold the default value of the Nth attribute. Range: text string |
grd_insert_attribute{N}.isVisible fme_attrib_info{N}.isVisible |
These list attributes indicates whether the Nth attribute should be displayed or not. Range: TRUE | FALSE |
grd_insert_attribute{N}.color fme_attrib_info{N}.color.red fme_attrib_info{N}.color.green fme_attrib_info{N}.color.blue |
These list attributes hold the color of the Nth attribute. The GRD attribute holds the color based on GRD color codes. The FME attributes hold the color in RGB values, ranged between 0.0 and 1.0. Range: integer (GRD color); real number 0.0-1.0 (FME color |
grd_insert_attribute{N}.locationX grd_insert_attribute{N}.locationY grd_insert_attribute{N}.locationZ fme_attrib_info{N}.location_x fme_attrib_info{N}.location_y fme_attrib_info{N}.location_z |
These list attributes hold the plotting location of the Nth attribute. Range: real number |
grd_insert_attribute{N}.height fme_attrib_info{N}.height |
These list attributes hold the display height of the Nth attribute. Range: real number |
grd_insert_attribute{N}.rotation fme_attrib_info{N}.rotation |
These list attributes hold the display rotation of the Nth attribute. Range: real number |
grd_insert_attribute{N}.horizontal_ |
This list attribute holds the display horizontal alignment of the Nth attribute. 0=CENTER 1=LEFT 2=RIGHT Range: integer Default: 0 |
grd_insert_attribute{N}.vertical_ |
This list attribute holds the display vertical alignment of the Nth attribute. 0=CENTER 1=TOP 2=BOTTOM 3=BASELINE Range: integer Default: 3 |
fme_attrib_info{N}.justification |
This list attribute holds the display justification of the Nth attribute. The value it can have is one of the following: baseline_middle baseline_right bottom_right middle_right top_right baseline_left bottom_left middle_left top_left Range: text string Default: baseline_middle |
grd_type: grd_line
GRD line features represent linear features and may be either 2D or 3D. These features do not have any special attributes associated with them.
When writing lines out to GRD, all lines are written as PLINEs. The only exception is if any line to be written out has exactly two points and also has an attribute grd_vector_type with a value of LINE; in this case, a LINE is written out to GRD.
grd_type: grd_mspline
GRD multi-segmented polyline features represent an aggregate consisting of linear features, all of which are the same — either 2D or 3D. Mspline features may have the following special attribute associated with them.
Attribute Name |
Contents |
---|---|
grd_ordered |
This indicates whether or not multiple lines are ordered. Range: 0 | 1 |
grd_type: grd_arc
GRD arc features represent circular arc features and are either 2D or 3D. The coordinate on the feature contains the location of the center. Arc features may have the following special attributes associated with them.
Attribute Name |
Contents |
---|---|
grd_rotation |
The rotation of the arc, in degrees counterclockwise. Range: 0 .. 360.0 |
grd_primary_axis |
The radius of the arc. Range: Any real number |
grd_secondary_axis |
The radius of the arc. Range: Any real number |
grd_start_angle |
How FME calculates start_angle and sweep_angle Range: 0 .. 360.0 |
grd_sweep_angle |
How FME calculates start_angle and sweep_angle Range: Any real number |
grd_type: grd_circle
GRD circle features represent closed circular arc features and may be either 2D or 3D. The coordinate on the feature contains the location of the center. Circle features may have the following special attribute associated with them.
Attribute Name |
Contents |
---|---|
grd_primary_axis |
The radius of the circle. Range: Any real number |
grd_type: grd_ellipse
GRD ellipse features represent closed elliptical arc features and may be either 2D or 3D. The coordinate on the feature contains the location of the center. Ellipse features may have the following special attributes associated with them.
Attribute Name |
Contents |
---|---|
grd_rotation |
The rotation of the ellipse, in degrees counterclockwise. Note: All ellipses must have a rotation that is a multiple of 90 degrees. If an invalid rotation is passed in to the GRD writer, the ellipse is written out as a polygon instead. Range: 0 .. 360.0 |
grd_primary_axis |
The radius of the longest axis of the ellipse. Range: Any real number |
grd_secondary_axis |
The radius of the shortest axis of the ellipse. Range: Any real number |
grd_type: grd_polygon
GRD polygon features represent closed polygonal features and may be either 2D or 3D. These features do not have any special attributes associated with them.
grd_type: grd_rectangle
GRD rectangle features represent closed polygonal features, containing only four points, that make up a polygon. These rectangles cannot have any rotation—their edges must be horizontal or vertical. These features may be either 2D or 3D, and do not have any special attributes associated with them.
grd_type: grd_text
GRD text features hold text information. A single 2D or 3D position is associated with the text block. Text features may have the following special attributes associated with them.
Attribute Name |
Contents |
---|---|
grd_width |
The width of the text string. Range: Any real number |
grd_height |
The height of the text string. Range: Any real number |
grd_rotation |
The angle of the string, in degrees counterclockwise from horizontal. Range: 0 .. 360.0 |
grd_italic |
Boolean flag indicating if the text is to be displayed in italic type. Range: True | False |
grd_bold |
Boolean flag indicating if the text is to be displayed in bold type. Range: True | False |
grd_font_name |
The name of the font used to display the text. Maximum size is 254 characters. |
grd_text_font_type |
The specific kind of type the text is to be displayed in. The values are associated with the following types: 0 = TrueType Font (default) 1 = NonTrueType Font 3 = Specific Font |
grd_text_string |
The text string of the vector. Maximum size is 254 characters. |