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_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_cell_insertion_x igds_cell_insertion_y igds_cell_insertion_z |
Stores cell insertion point Range: Any real number Default: No default |
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_num_members |
Stores a cell’s total number of members. Range: Any real numbers > 0 Default: No default |
igds_cell_num_members |
Stores a cell’s total number of members. Range: Any real numbers > 0 Default: No default |
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 |
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_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. |
igds_cell_size_y |
This is the difference of minY and maxY stored in ground units. |
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_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
|
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 |
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_text_string{#} |
When reading only, this contains the text string of the #th text element in the cell. Range: Any string |
igds_unnamedcell_num_of_elements |
Stores number of elements of an unnamed cell (group) Range: Any real numbers > 0 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. |