Cells

igds_type: igds_cell

Cells correspond to IGDS element type 2. The FME feature used to hold a cell element does not contain the complete set of elements which make up the cell’s definition. Instead, FME features representing IGDS cells contain only the cell’s name, as well as rotation and scaling parameters. The IGDS reader skips all elements that define the cell (extracting only the text strings from any text elements in the cell), and the IGDS writer extracts the cell description from the supplied cell library to be output. Cell features are point features and have only a single coordinate. Writing of named cells is not currently supported by the V8 writer. However, the V8 writer can successfully handle unnamed cells (groups).

The IGDS reader may be set to expand cells. If the Expand Named Cells parameter is set to Yes, then each member element of the cell is read and output. However, the cell insertion point itself is not output. In addition, the cell members are assigned a unique cell sequence number in the igds_cell_sequence_number. This number can be used to later regroup the cell components if that is required.

If the Expand Named Cells parameter is set to No, then only the cell insertion point is output.

Both graphic and point cells are supported. Graphic cells use the level from the seed file if it is found; otherwise, like color and style information, it will be taken from the cell library, and must always have a feature type of 0. Point cells use the level, color, and style information provided in the mapping file. Note that for point cells, when cell header is assigned igds_color then this color is assigned as fill_color to all of its members capable of having fill_color i.e. shapes etc. If the cell header had igds_fill_color then it gets ignored.

Both V7 and V8 can write cells. V8 can also preserve the cell structure. For example, if the cell had any nested cells, complex chains or complex shapes, then the whole nesting is preserved.

Cell instances have the following attributes:

Attribute Name

Contents

igds_cell_name

The name of the cell. Corresponds to the name of the cell in a cell library.

Range: Character String

Default: No default

igds_cell_x_scale

igds_cell_y_scale

igds_cell_z_scale

The scaling factors to apply to the cell.

This value may be overridden by the igds_cell_size attribute. Similarly, these factors will not be used to calculate the cell header scale if the igds_cell2DTMat* or igds_cell3DTMat* attributes are present.

Range: Any real number > 0

Default: 1

igds_cell_size

The size in ground units of the maximum span of the cell. If this is specified, the settings for igds_cell_x_scale, igds_cell_y_scale, and igds_cell_z_scale are ignored.

If it is not specified, then the scaling factors described above are used. This attribute is not assigned any value by the reader.

Range: Any real numbers > 0

Default: No default

igds_rotation

The rotation of the entire cell. The rotation is measured in degrees counterclockwise up from horizontal.

Range: -360.0..360.0

Default: 0

Reprojectable: Yes

igds_sharedcell_description

(applicable only to Shared Cells)

The description of the cell. (Supported for version 8 DGN files only.)

Range: Character String

Default: No default

igds_cell_num_members

Stores a cell’s total number of members.

Range: Any real numbers > 0

Default: No default

igds_text_string{#}

When reading only, this contains the text string of the #th text element in the cell.

Range: Any string

igds_cell_sequence_number

When reading only with the Expand Named Cells parameter set to Yes, this contains a unique number that can be used to regroup a cell with its component elements.

igds_cell_size_x

This is the difference of minX and maxX stored in ground units.

Note: If igds_cell_size_x and igds_cell_size_y are both specified, then igds_cell_size_x_scale, igds_cell_size_y_scale and igds_cell_size_z_scale values are ignored.

Reprojectable: Yes

igds_cell_size_y

This is the difference of minY and maxY stored in ground units.

Reprojectable: Yes

igds_cell_num_members

Stores a cell’s total number of members.

Range: Any real numbers > 0

Default: No default

igds_unnamedcell_num_of_elements

Stores number of elements of an unnamed cell (group)

Range: Any real numbers > 0

Default: No default

igds_cell_insertion_x

igds_cell_insertion_y

igds_cell_insertion_z

Stores cell insertion point

Range: Any real number

Default: No default

igds_cell_element_class

igds_cell_element_style

igds_cell_element_color

igds_cell_element_weight

igds_cell_element_level

igds_cell_element_level_name

Stores some standard properties of the first element of a graphic cell, when reading.

These are only set if the cell is not set to be expanded into component elements, since equivalent properties can be found as standard properties of each of those elements in that case.

Default: No default

igds_cell2DTMat11

igds_cell2DTMat12

igds_cell2DTMat21

igds_cell2DTMat22

Cell’s 2D matrix containing rotation and scale information.

 

If this is specified, the settings for igds_cell_x_scale, igds_cell_y_scale, and igds_cell_z_scale are ignored for the purpose of setting the cell header scale.

 

Default: No default

igds_cell3DTMat11

igds_cell3DTMat12

igds_cell3DTMat13

igds_cell3DTMat21

igds_cell3DTMat22

igds_cell3DTMat23

igds_cell3DTMat31

igds_cell3DTMat32

igds_cell3DTMat33

Cell’s 3D matrix containing rotation and scale information.

 

If this is specified, the settings for igds_cell_x_scale, igds_cell_y_scale, and igds_cell_z_scale are ignored.

 

Default: No default

 

The IGDS reader also supports orphan or unnamed cells and is controlled by the parameter Expand Unnamed Cells. A named/unnamed cell can have further nested named/unnamed cells. The way the IGDS reader treats them, depending on their respective parameter settings, is explained below:

Cell Parameter and Setting Description
Named cell (root) nested named cell

Expand Named Cells (Yes)

The cell insertion point is not stored. Members of root and nested cells are stored as independent features.

Expand Named Cells (No)

Only the root cell’s insertion point is stored.

Named cells (root) nested unnamed cells

Expand Named Cells (Yes)

and

Expand Unnamed Cells (Yes)

Neither of the two cells is preserved. All members of both cells are output as independent features. No donuts are formed in case the unnamed cell contained overlapping polygons.

Expand Named Cells (Yes)

and

Expand Unnamed Cells (No)

Neither of the two cells is preserved. All members of both cells are output as independent features. No donuts are formed in case the unnamed cell contained overlapping polygons.

Expand Named Cells (No)

and

Expand Unnamed Cells (Yes)

Only the root cell is output. Nested unnamed cells are ignored.

Expand Named Cells (No)

and

Expand Unnamed Cells (No)

Only the root cell is output. Nested unnamed cells are ignored.
Unnamed cells (root) nested unnamed cells Expand Unnamed Cells (Yes) The insertion point of the root cell is not preserved. No donuts are formed if existed. All elements of the root and the nested cells are given.
Expand Unnamed Cells (No) Make donuts of all members of the root and nested cells.
Unnamed cells (root) nested named cells

Expand Unnamed Cells (Yes)

and

Expand Named Cells (Yes)

Neither of the cells is preserved. No donuts are formed. All elements of both cells are output as independent features.

Expand Unnamed Cells (Yes)

and

Expand Named Cells (No):

Only elements of the root unnamed cell are output. Nested cells are preserved and output as points.

Expand Unnamed Cells (No)

and

Expand Named Cells (Yes)

All elements of nested named cells are output. Donuts are formed. If both cells have donuts then an aggregate of donuts is formed.

Expand Unnamed Cells (No)

and

Expand Named Cells (No)

The insertion point of the root unnamed cell is preserved. Donuts are formed from the root cell only. The nested cell is ignored and so are its members.