📄 isff.txt
字号:
Title: ISFF
Table of Contents
=================
Intergraph Standard File Formats (Element Structure)
Intergraph Standard File Formats (Element Structure)
====================================================
The Intergraph Standard File Formats (ISFF) are the file formats common to
MicroStation and Intergraph's Interactive Graphics Design System
(IGDS). ISFF is now available to the public. This enables Intergraph
customers and third-party developers to create custom applications for
MicroStation that read and write ISFF format without a license from
Intergaph.
Types of Files
Design File Header
Primitive and complex elements
Element Representation
Common Element Parameters
Level Symbology (Type 10)
Library Cell Header (Type 1)
Cell Header (Type 2)
Line Elements (Type 3)
Line String (Type 4), Shape (Type 6), Curve (Type 11), and B-spline
Pole Element (Type 21)
Text Node Header (Type 7)
Complex Chain Headers (Type 12) and Complex Shape Headers (Type 14)
Ellipse Elements (Type 15)
Arc Elements (Type 16)
Text Elements (Type 17)
3D Surface Header (Type 18) and 3D Solid Header (Type 19)
Point String Elements (Type 22)
Cone Elements (Type 23)
B-spline Elements (Type 21, 24, 25, 26, 27, 28)
Raster Header Element (Type 87)
Raster Data Elements (Type 88)
Group Data Elements (Type 5)
MicroStation Application Elements (Type 66)
Types of Files
--------------
ISFF consists of several types of binary files
* Design files are sequential, variable-length files with variable-length
records for the Design File Header, file set-up information, graphic
elements, and non-graphic data.
User-defined elements begin with the fourth element.
Design files are typically designated with the extension ".dgn."
* Cell libraries store cell definitions for placement in design files. A
cell library consists of a file header (type 5) element followed by
individual cell descriptions. Each cell is a complex element that
contains a cell library header (type 1) element and component elements.
Cell descriptions can be nested. Nested cells contain a type 2 header
and component elements. If the cell library already contains the nested
cell, its component elements are not repeated.
Cell libraries are typically designated with the extension ".cel.".
Design File Header
------------------
The first three elements of the design file are called the design file
header.
Type: Stores:
8. Digitizer setup Used only by IGDS; it is ignored by MicroStation.
9. Settings that are saved when FILEDESIGN is executed (File menu/Save
Settings). See the appendix "Terminal Control Block (TCB).
10. Level symbology The symbology (color, line style, and line weight) that elements on a
level display with in a view for which Level Symbology is on.
Primitive and complex elements
------------------------------
Primitive elements
Complex elements
Primitive elements
------------------
The primitive elements are lines, line strings, shapes, ellipses, arcs,
text, and cones.
Complex elements
----------------
A complex element is a set of elements that logically forms a single
entity.
Complex elements are stored in the design file as a header followed by the
component elements. Text nodes, complex chains, and complex shapes are
stored in the design file as shown in the illustration at right.
Other complex elements are cells, surfaces, solids, and B-splines. See the
sections about those elements for information about how their headers and
component elements are arranged in the design file.
The complex element header contains information about the entire set of
elements, including the number of component elements. Word 19 of the
header contains the total length in words of the component elements plus
the number of words following word 19 in the header.
The maximum combined length of the header and all component elements
cannot be greater than 65535 words.
Element Representation
----------------------
This appendix shows the formats for ISFF elements. Each figure shows the
components of the element, the member names for each structure, and the
word (1 word = 16 bits) offsets for each member. The figure represents the
element as it appears in the design file and its internal representation
on the VAX, PC (DOS), and Macintosh. This is the only figure that is
important to most programmers.
Note:
The in-memory format of elements on the Intergraph CLIPPER, Sun SPARC, and
Hewlett Packard HP700 differs slightly from the figures in this appendix.
Long integers always start on even word boundaries, and double-precision,
floating point values always start on four-word boundaries in this format.
Byte ordering
Floating-point values
Elements not described in this appendix
Byte ordering
-------------
Computers differ in their storage byte order, that is they differ in which
byte they consider to be the first of a longer piece such a short or long
integer.
Illustration:
(32-bit) integer is
address of:
(left-to-right) IBM RS6000
(right-to-left) Alpha
In design files:
* Short integers are stored with little-endian ordering.
* Long integers are stored with middle-endian byte ordering (as on the
PDP-11).
Floating-point values
---------------------
All floating-point variables are stored in the design file in VAX D-Float
format. MDL and MicroCSL automatically convert floating-point variables to
the native format of the CPU in use. Bits are labeled from the right,
0-63.
Sign :A
:A+2
:A+4
:A+6
Elements not described in this appendix
---------------------------------------
These element types are not described in this appendix. They are not
supported by IGDS and versions of MicroStation prior to Version 4.0. They
cannot be manipulated directly and must be accessed with MDL built-in
functions.
* 33. Dimension
* 34. Shared Cell Definition
* 35. Shared Cell Instance
* 36. Multi-line
All of these elements begin with the standard element header and display
header. Type 34 is a complex element in which the total length of the
definition is given in the word following the display header.
Common Element Parameters
-------------------------
The parameters that are common to one or more elements are explained here.
Element header
Point coordinates
Rotation angle (2D) and quaternion (3D)
Attribute linkage data
Element header
--------------
The first 18 words of an element in the design file are its fixed header --
containing the element type, level, words to follow, and range
information. The C declaration for this header is as follows
typedef struct
{
unsigned level:6 ; /* level element is on */
unsigned :1 ; /* reserved */
unsigned complex:1 ; /* component of complex elem.*/
unsigned type:7 ; /* type of element */
unsigned deleted:1 ; /* set if element is deleted */
unsigned short words ; /* words to follow in element */
unsigned long xlow ; /* element range - low */
unsigned long ylow ;
unsigned long zlow ;
unsigned long xhigh ; /* element range - high */
unsigned long yhigh ;
unsigned long zhigh ;
} Elm_hdr ;
In addition, the next several components of all displayable elements are
identical. This additional header is defined as follows:
typedef struct
{
unsigned short grphgrp ; /* graphic group number */
short attindx ; /* words between this and
attribute linkage */
union
{
short s ;
struct
{
unsigned class:4 ; /* class */
unsigned res:4 ; /* reserved by Intergraph */
unsigned l:1 ; /* locked */
unsigned n:1 ; /* new */
unsigned m:1 ; /* modified */
unsigned a:1 ; /* attributes present */
unsigned r:1 ; /* view independent */
unsigned p:1 ; /* planar */
unsigned s:1 ; /* 1=nonsnappable */
unsigned h:1 ; /* hole/solid (usually) */
} b ;
} props ;
union
{
short s ;
Symbology b ;
} symb ;
} Disp_hdr ;
Here, Symbology is defined as:
typedef struct
{
unsigned style:3 ; /* line style */
unsigned weight:5 ; /* line weight */
unsigned color:8 ; /* color */
} Symbology ; /* element symbology word 652 */
Element type and level
Words to follow
Range
Graphic group number
Index to attribute linkage
Properties indicator
Element symbology
Element type and level
----------------------
The first word in the header defines the element's type and level.
The fields in the first word are:
U clear if element is active; set if the element is deleted
Type number that denotes the element's type
C set if the element is part of a complex element; otherwise clear
R reserved (equals zero)
Level number that indicates the element's level (0-63)
Words to follow
---------------
Word 2 of the element header indicates the number of words in the element
excluding words 1 and 2; that is the word count to the next element in the
design file (commonly referred to as "words to follow" or "WTF").
For complex elements, this defines the length of the header element only
and does not include component elements.
Range
-----
Words 3-14 of the element header contain the six long (double precison)
integers that define the element's range -- its low and high x, y, and z
coordinates in absolute units of resolution (UOR).
All points in an element must be completely contained in the design plane.
Graphic group number
--------------------
Word 15 contains the element's graphic group number. If zero, the element
is not in a graphic group. If non-zero, the element is in a graphic group
with all other elements that have the same graphic group number.
Index to attribute linkage
--------------------------
Word 16 defines the number of words existing between (and excluding) word
16 and the first word of the attribute data. Attribute data is optional
and may or may not be present.
Properties indicator
--------------------
Word 17 descibes the element's properties
Bit Indicates:
H For closed element types (shape, complex shape, ellipse, cone, B-spline surface header, and
closed B-spline curve header), the H-bit indicates whether the element is a solid or a
hole. * 0 = Solid
* 1 = Hole
For a cell header (type 2), if the H-bit is:
* 0 = Header for a cell
* 1 = Header for an orphan cell (created by GROUP SELECTION or application)
For a line, if the H-bit is:
* 0 = Line segment
* 1 = Infinite-length line
For a point string element, if the H-bit is:
* 0 = Continuous
* 1 = Disjoint
The H-bit has no meaning in other elements.
S Whether the element is snappable.
* 0 = Snappable
* 1 = Not snappable
P If a surface is planar or non-planar.
* 0 = Planar
* 1 = non-planar
R Element orientation
* 0 = Oriented relative to design file
* 1 = Oriented relative to screen
A Whether attribute data is present
* 0 = Attribute data not present
* 1 = Attribute data present
M Whether the element has been graphically modified
* 0 = Not modified
* 1 = Has been modified
N Whether the element is new
* 0 = Not new
* 1 = New (set to 1 when the element is placed)
L Whether the element is locked.
* 0 = Not locked
* 1 = Locked
4-7 Reserved.
Class Represented as follows:
0. Primary; 1. Pattern component; 2. Construction element; 3. Dimension element; 4. Primary
rule element; 5. Linear patterned element; 6. Construction rule element.
Element symbology
-----------------
Word 18 defines the element's symbology (color, line style, and line
weight).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -