The Bentley® MicroStation Design Reader/Writer allows FME to access files used by the MicroStation and Intergraph Interactive Graphics Design System (IGDS).
Intergraph made public the specification for this file format, which they call the Intergraph Standard File Format (ISFF)1Throughout this chapter, the terms IGDS file and Design file are used interchangeably to refer to the ISFF format.. This chapter assumes familiarity with this format.
Design files consist of a header, followed by a series of elements. The header contains global information including the transformation equation from design units to user coordinates, as well as the dimension of the elements in the file. Each element contains standard display information, such as its color, level, class, and style, as well as a number of attributes specific to its element type. For example, a text element has fields for font, size, and the text string in addition to the standard display attributes.
Tip: The IGDS reader and writer modules support both two- and three-dimensional Design files and cell libraries.
Individual design file elements must be less than a system-imposed maximum number of bytes. Complex elements solve this problem by physically grouping individual elements together into an object that will be manipulated as a whole. The FME transparently handles such complex elements as single FME features. This situation occurs when text elements are grouped together into a single complex element headed up by a text node, and when linear or polygonal features have more than 101 vertices (Microstation V7) or 5000 vertices (Microstation V8). Cells are complex elements used as symbols, and are treated as atomic entities by the FME.
Each IGDS file element may have one or more attribute linkages associated with it. The IGDS reader and writer support both user data and database linkages. (Note that the DGN V8 reader supports the interpretation of FRAMME linkages, but the writer does not.) The linkage values may be used to join elements with attributes stored in relational tables through the use of the Joiner or FeatureMerger Workbench transformers. Linkages may also be used to specify fill information for fillable IGDS area geometries such as Shape elements, and other application-specific data. (Note, however, that the igds_fill_color attribute will override any solid fill color linkage specification if both are present.)
Because Design files support three interpretations of units, the IGDS reader and writer must be told how to interpret the feature coordinate units and how they will be converted to and from Units of Resolution (UORs). The feature coordinate units may be interpreted as Master Units, SubUnits, or as raw UORs, depending on the setting of IGDS_UNITS in the mapping file. These units are all relative to working coordinates. See the DGN V8 ASSUME_MATCHING_UNITS Reader Directive for further details on DGN V8 reading.
In contrast, when writing to DGN V8 files, the writer ignores these settings from the mapping file and adopts the settings as read from the seed file chosen. This means that if you want to do something special with the working units, you have to do that in the V8 seed file.
The IGDS reader and writer use symbolic names for the IGDS element types rather than the IGDS numeric values. This greatly simplifies element type specification.
The following table maps the supported IGDS element types to their corresponding FME feature igds_type
attribute value that is used by the IGDS reader and writer. Subsequent subsections describe the handling of each of these element types in detail.
Note: Some element types may map to multiple igds_type values, depending on their form or simplicity. For example, a Line may map to an igds_point if it contains only one unique point.
IGDS Element Type |
FME igds_type |
---|---|
2, Cell header |
igds_cell |
3, Line 4, Line string 12, Complex string |
igds_point |
3, Line 4, Line string 11, Curve 12, Complex string 27, B-Spline curve 33, Dimension 36, Multi-line |
igds_line |
6, Shape 14, Complex shape |
igds_shape |
7, Text node |
igds_text_node |
11, Curve 12, Complex string |
igds_curve |
12, Complex string |
igds_complex_string |
14, Complex shape |
igds_complex_shape |
15, Ellipse |
igds_ellipse |
16, Arc |
igds_arc |
17, Text 37, Tag attribute |
igds_text |
7, Text node 17, Text |
igds_multi_text |
2, Cell header |
igds_solid |
35, Shared cell header |
igds_shared_cell |
19, Solid (V8 only) 23, Cone |
igds_3d_solid |
100, Reference attachment (V8 only) | igds_xref |
39, DgnStore header (V8 only) | igds_xfmstore |
Design files can store custom data as elements and linkage attributes. One such case is the XML-based Feature Modeling (XFM) data associated with the Bentley Map application. The XFM data in design files represent an instance of XFM feature and property information as a part of a Bentley Map project. The Bentley Map project defines a schema for XFM features, and the properties of those features, as well as the domains for those properties among other things. The DGN V8 Reader/Writer has been enhanced to support reading and writing of XFM data stored in Design files. Care should be taken that transformation of XFM data does not violate the overall coherency with the Bentley Map project.
Note that XFM features handled by the DGN V8 Reader/Writer represent a normalized form of XFM features. See the Bentley Map XFM Design format for an alternative object representation.
The value for the Reader Dataset is the file name of the IGDS file to be read. For example:
/usr/data/dgn/92b034.dgn
The value for the Writer Dataset is the file name of the output IGDS file.
Bentley MicroStation Design (V7) Reader Parameters
Bentley MicroStation Design (V7) Writer Parameters
Bentley MicroStation Design (V8) Reader Parameters
Bentley MicroStation Design (V8) Writer Parameters