📄 isff.txt
字号:
Color Number (0-255) that indicates the element's color
Weight Number (0-31) that indicates line weight
Style The line style is represented as follows:
* 0. Solid (SOL)
* 1. Dotted (DOT)
* 2. Medium dashed (MEDD)
* 3. Long-dashed (LNGD)
* 4. Dot-dashed (DOTD)
* 5. Short-dashed (SHD)
* 6. Dash double-dot (DADD)
* 7. Long dash-short dash (LDSD)
Point coordinates
-----------------
MicroStation is based on a 32-bit integer design plane. Point coordinates
are specified as two or three long integers (for 2D and 3D design files,
respectively). Coordinate definitions are assigned by the following C
structures
2D
typedef struct
{
long x ;
long y ;
} Point2d ;
3D
typedef struct
{
long x ;
long y ;
long z ;
} Point3d ;
Sometimes a point that is not within the design plane needs to be
specified. For example, the center point for an arc may be far from the
design plane, although the design plane must completely contain the arc.
In these cases, points are specified as two or three double-precision
(64-bit), floating point values:
2D
typedef struct
{
double x ;
double y ;
} Dpoint2d ;
3D
typedef struct
{
double x ;
double y ;
double z ;
} Dpoint3d ;
Rotation angle (2D) and quaternion (3D)
---------------------------------------
In 2D design files, rotation is represented by a value, angle, that is
counterclockwise from the X-axis. Angle is a long integer with the
lower-order bit equal to .01 seconds. The conversion from angle to degrees
is expressed as follows
* Degrees = Angle/360000
In 3D design files, an element's orientation is represented by the
transformation matrix to design file coordinates. These transformations
are stored in a compressed format called quaternions. Quaternions store a
3x3 ortho-normal transformation matrix as four values rather than nine.
The mdlRMatrix_toQuat function (MDL) and the trans_to_quat routine
(MicroCSL) generate a quaternion from a transformation matrix. The
mdlRMatrix_fromQuat function (MDL) and the quat_to_trans routine
(MicroCSL) generate a transformation matrix from a quaternion. See the
documentation for these functions for details.
Attribute linkage data
----------------------
Any element can optionally contain auxiliary data commonly referred to as
attribute data or attribute linkage data. This data can consist of a link
to an associated database or any other information that pertains to the
element.
Attribute data that is not associated with DMRS or a
MicroStation-supported database such as Oracle is referred to as a user
linkage. A user linkage can co-exist with a database linkage or other user
linkages. MicroStation does not attempt to interpret user linkages; these
linkages are, however, maintained when MicroStation modifies an element.
When an element with a user linkage is copied, the linkage is also copied.
Therefore, multiple linkages can occur.
The format of user linkages is described below. As with other linkages,
when user linkages are present, the A-bit must be set in the properties
word. Individual user linkages cannot exceed 256 words. Multiple user
linkages can be attached to an element. The combined length of an element
and its linkages must not be greater than 768 words. Considering
worst-case element lengths, the length of the linkage area should not
exceed 140 words.
User linkages consist of a header word, a user ID word, and user-defined
data. The
U-bit in the linkage header is set to indicate that the linkage is a user
linkage. The ID word should be unique to the software package to which the
linkage applies.
Level Symbology (Type 10)
-------------------------
Stores the symbology (color, line style, and line weight) that elements on
a level display with in a view for which Level Symbology is on.
The values of the range are zero.
If the high bit in the next-to-last word of the range is set, then the low
three bits are flags for selectively using the three components of the
level symobology words.
* If bit 0 is clear, then use style (line code).
* If bit 1 is set, then use line weight.
* If bit 2 is set, then use color.
If the high bit in the next-to-last word of the range is clear, the color,
line weight, and line style are used.
The format of each level symbology word is the same as that for Element
symbology.
Library Cell Header (Type 1)
----------------------------
Library cell header elements contain information needed to create a cell in
a design file. They are found only in cell libraries.
The celltype member indicates the following types of cells:
0. Graphic cell
1. Command menu cell
2. Cursor button menu cell
3. Function key menu cell (not supported by MicroStation)
4. Matrix menu cell
5. Tutorial cell
6. Voice menu cell (not supported by MicroStation)
The C definition is as follows:
typedef struct
{
Elm_hdr ehdr ; /* element header */
short celltype ; /* cell type */
short attindx ; /* attribute linkage */
long name ; /* Radix-50 cell name */
unsigned short numwords ; /* # of words in description */
short properties ; /* properties */
short dispsymb ; /* display symbology */
short class ; /* cell class (always 0) */
short levels[4] ; /* levels used in cell */
short descrip[9] ; /* cell description */
} Cell_Lib_Hdr ;
Cell descriptions in cell libraries
Cell descriptions in cell libraries
-----------------------------------
Each cell description in a cell library is a complex element that contains
a library cell header (type 1) followed by component graphic elements.
A cell definition can be nested -- included in another cell. A nested cell
definition is stored as a cell header (type 2) that points to a library
cell header (type 1). The component elements of a nested cell are not
repeated.
When the user places a cell in the design file in IGDS and versions of
MicroStation prior to Version 4.0, or as an unshared cell in MicroStation
Version 4.0 or later versions, it is placed as a cell header (type 2)
followed by its component elements. Each nested cell definition is placed
with its cell header (type 2) followed by its component elements.
In MicroStation Version 4.0 or later versions, when the user places the
cell in the design file as a shared cell:
* If there is no shared cell definition element for that cell in the
design file, one is created.
* If there is a shared cell definition element for that cell in the
design file, a shared cell instance element is placed in the design.
* If the cell contains a nested cell and the nested cell is not defined
as a shared cell in the design file, a shared cell definition element
is created for the nested cell. If the cell contains a nested cell and
a shared cell definition is in the design file, a shared cell instance
element is created.
Note:
Shared cell definition and shared cell instance elements are not described
in this appendix. They cannot be manipulated directly and must be accessed
with MDL built-in functions.
Cell Header (Type 2)
--------------------
A cell header element begins
* A nested cell definition in a cell library.
* A cell placed in a design file in IGDS and versions of MicroStation
prior to version 4.0.
* An unshared cell placed in a design file in MicroStation Version 4.0
and later versions.
2D:
typdef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
unsigned short totlength ; /* total length of cell */
long name ; /* Radix 50 name */
short class ; /* class bit map */
short levels[4] ; /* levels used in cell */
Point2d rnglow ; /* range block low */
Point2d rnghigh ; /* range block high */
Trans2d trans ; /* transformation matrix */
Point2d origin ; /* cell origin */
} Cell_2d;
3D:
typedef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
unsigned short totlength ; /* total length of cell */
long name ; /* Radix 50 name */
short class ; /* class bit map */
short levels[4] ; /* levels used in cell */
Point3d rnglow ; /* range block low */
Point3d rnghigh ; /* range block high */
Trans3d trans ; /* transformation matrix */
Point3d origin ; /* cell origin */
} Cell_3d;
Each cell header contains an origin (in design file coordinates) and a
transformation matrix that describe all manipulations (rotation and
scaling) from the cell library definition to the current design file
orientation. The transformation matrix is a 2x2 or 3x3 matrix stored as a
long integer with the lower-order bit equal to 4.6566E-6 (10,000231).
Note:
Shared cells are stored in the design file as shared cell definition and
shared cell instance elements. These elements are not described in this
appendix. They cannot be manipulated directly and must be accessed with
MDL built-in functions.
.
Offset Offset
cell_3d.totlength
cell_3d.name
cell_3d.class
cell_3d.levels
cell_3d.rnglow
cell_3d.rnghigh
cell_3d.trans
Linkage
cell_3d.origin
Linkage
Line Elements (Type 3)
----------------------
Line elements consist of the header information and design plane
coordinates of the line endpoints.
2D:
typedef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
Point2d start ; /* starting point */
Point2d end ; /* ending point */
} Line_2d;
3D:
typedef struct
{
Elm_hdr ehdr ; /* element header */
Disp_hdr dhdr ; /* display header */
Point3d start ; /* starting point */
Point3d end ; /* ending point */
} Line_3d;
Offset Offset
line_3d.start
line_3d.end
Linkage
Linkage
Line String (Type 4), Shape (Type 6), Curve (Type 11), and B-spline Pole
Element (Type 21)
---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -