This page follows the Initial Graphics Exchange Specification, version 5.3 (US PRO/IPO-100, 23 September 1996; see Sources). Chapter 2 of that document defines the data form. The entities that fill the Directory Entry and Parameter Data sections are in the entity register.
Lines and sections
In the Fixed Format, which almost every file uses, a file is a series of 80-column lines from its first character. Columns 1 to 72 hold the line’s data, column 73 a letter that names the section, and columns 74 to 80 a sequence number that starts at 1 in each section and rises by 1 per line, right-justified with space or zero fill. The sections appear in this order:
| Letter | Section | Data columns | Content |
|---|---|---|---|
C | Flag | none | Compressed Format only: one line, columns 1 to 72 blank, C in column 73, sequence number 1 (the deprecated binary form also has a flag line) |
S | Start | 1–72 | Free text for people; at least one line, which may be blank apart from its sequence field |
G | Global | 1–72 | 26 delimited parameters about the file and its sender |
D | Directory Entry | 1–72 | Two lines of nine 8-column fields each for every entity |
P | Parameter Data | 1–64 (65 blank, 66–72 DE pointer) | Each entity’s values, delimited |
T | Terminate | 1–72 | One line of line counts |
Within a section, the data belonging to one entity is a record and may run over several lines. Completely blank lines (without a sequence number) may not appear before the Terminate line and no sequenced line may follow it. Blank lines may follow it, when the sending system pads the file to a block size, and a reader ignores everything after the Terminate line. A Start Section line may contain any characters except the control characters 00 to 1F and 7F.
Data types
Six data types appear in Global and Parameter Data fields.
| Type | Form | Default when the field is empty |
|---|---|---|
| Integer | Optional sign and digits. The magnitude may not exceed 2N−1 − 1, where N is Global parameter 7. Examples: 1, +3451, -2147483647 | 0 |
| Real | Optional sign, integer part, decimal point, fraction and exponent; either the integer part or the fraction may be omitted, and either the point or the exponent. The exponent letter is E (single precision, Global parameter 9) or D (double precision, parameter 10). Examples: 256.091, 1.36E1, -.43E2, 145.98763D4. Leading and trailing zeros do not imply accuracy | 0.0 |
| String | Hollerith: a non-zero character count, the letter H, then exactly that many characters (blanks, delimiters and record delimiters are ordinary characters inside it). No control characters. Examples: 3H123, 10HABC ., ; ABCD | NULL (empty) |
| Pointer | An integer from −9999999 to 9999999 whose absolute value is the sequence number of a Directory Entry (or, in the Directory Entry’s own field 2, of a Parameter Data line). Zero is the null pointer, and a negative value is allowed only where the field says so | 0, but only where the field defines that meaning |
| Language statement | Free text with no count and no H, used by the MACRO entity; its length comes from the Directory Entry’s parameter line count | none |
| Logical | 0 is FALSE and 1 is TRUE | FALSE |
A blank (empty) field is a defaulted field, except inside a string or language statement.
Leading blanks in numbers are ignored, trailing or embedded blanks are not allowed, and a
number may not contain a comma even when the delimiter has been changed or the sender’s
country writes decimals with a comma. A string or language statement may continue over lines:
the count and H stay on the first line, the text runs to the last data column
(72 in Global, 64 in Parameter Data) and carries on in column 1 of the next line.
Free-formatted data
The Global and Parameter Data sections are free-formatted. The parameter delimiter (Global parameter 1, default comma) ends a field and the record delimiter (parameter 2, default semicolon) ends the record. Two delimiters in a row, or a parameter delimiter followed by the record delimiter, mean an empty field. When a record delimiter comes early, every remaining required field takes its fixed or default value. The last data column of a line is not a delimiter, so a number must end at least one column earlier. A Parameter Data record may end before its two trailing pointer groups, because the counts in front of them default to zero.
The delimiters may not be control characters (00–1F, 7F), the space (20), the digits
(30–39), +, -, . (2B, 2D, 2E) or the letters
D, E and H (44, 45, 48). Only four combinations are
allowed:
| Form | Parameter delimiter | Record delimiter |
|---|---|---|
| 1 | comma (default) | semicolon (default) |
| 2 | given as 1Hα | given as 1Hβ |
| 3 | given as 1Hα | semicolon (parameter 2 empty) |
| 4 | comma (parameter 1 empty) | given as 1Hβ |
New delimiters take effect immediately, so the rest of the Global Section already uses them.
Field categories
Every field falls into one of these categories, and a reader treats an empty value accordingly.
| Category | Meaning |
|---|---|
| Required, fixed value | Present, with the one value the specification gives (for example the Directory Entry use flag of the Drawing entity) |
| Required, default | Present; a reader uses the value or the field’s default if empty, and infers nothing from a value that equals the default |
| Required, no default | Present, with a value that is always used; includes pointer fields where zero has no meaning |
| Optional, no default | May be empty; a reader may substitute a system value (for example the entity label) |
| Ignored | May hold a value of the right type, which readers ignore |
| Reserved | Empty; DE fields 16 and 17 |
In a fixed-width section a default is eight spaces. A numeric zero or a space-filled string
such as 4H is not a defaulted field.
Global Section
The Global Section is one delimited record of 26 parameters. Strings use the Hollerith form.
| No. | Type | Category | Meaning |
|---|---|---|---|
| 1 | String | Required, default | Parameter delimiter character; default , |
| 2 | String | Required, default | Record delimiter; default ; |
| 3 | String | Required, no default | Product identification from the sender |
| 4 | String | Required, no default | File name |
| 5 | String | Required, no default | Native system ID: the full vendor name, product name and version or release date of the system that made the native file |
| 6 | String | Required, no default | Preprocessor version (not the version of the specification; that is parameter 23) |
| 7 | Integer | Required, no default | Number of binary bits for integer representation on the sending system |
| 8 | Integer | Required, no default | Single-precision magnitude: the largest power of ten (38 for 32-bit IEEE) |
| 9 | Integer | Required, no default | Single-precision significance: decimal digits (6 for 32-bit IEEE) |
| 10 | Integer | Required, no default | Double-precision magnitude (308 for 64-bit IEEE) |
| 11 | Integer | Required, no default | Double-precision significance (15 for 64-bit IEEE) |
| 12 | String | Required, default | Product identification for the receiver; default is the value of parameter 3 |
| 13 | Real | Required, default | Model space scale, the ratio of model space to real-world space (0.125 means one model unit is eight real units); default 1.0 |
| 14 | Integer | Required, default | Units flag, see the table below; default 1 |
| 15 | String | Required, default | Units name; must agree with 14 unless 14 is 3, otherwise a reader ignores it |
| 16 | Integer | Required, default | Maximum number of line weight gradations, greater than zero; default 1 |
| 17 | Real | Required, no default | Width of the maximum line weight in units |
| 18 | String | Required, no default | Date and time of exchange file generation, 15HYYYYMMDD.HHNNSS or 13HYYMMDD.HHNNSS (two-digit years are 19YY) |
| 19 | Real | Required, no default | Minimum user-intended resolution: coordinates closer than this are coincident |
| 20 | Real | Required, default | Approximate maximum coordinate value after transformation, bounding a cube about the origin; 0.0 (default) means unspecified |
| 21 | String | Required, default | Name of the author; default NULL |
| 22 | String | Required, default | Author’s organisation; default NULL |
| 23 | Integer | Required, default | Version flag, see below; default 3 |
| 24 | Integer | Required, default | Drafting standard flag, see below; default 0 |
| 25 | String | Required, default | Date and time the model was created or last modified, in the format of 18; default NULL (unspecified) |
| 26 | String | Required, default | Application protocol, subset, Mil-spec or user-defined protocol identifier, as that protocol defines it; default NULL |
Units (parameters 14 and 15)
| Flag | Units | Name in parameter 15 |
|---|---|---|
| 1 | Inches (default) | 2HIN or 4HINCH |
| 2 | Millimetres | 2HMM |
| 3 | Named in parameter 15 | a name that conforms to MIL-STD-12 or IEEE 260 |
| 4 | Feet | 2HFT |
| 5 | Miles | 2HMI |
| 6 | Metres | 1HM |
| 7 | Kilometres | 2HKM |
| 8 | Mils (0.001 inch) | 3HMIL |
| 9 | Microns | 2HUM |
| 10 | Centimetres | 2HCM |
| 11 | Microinches | 3HUIN |
Version flag (parameter 23)
A reader that finds an unrecognised value below 1 assumes 3, and one above 11 assumes 11.
| Value | Version | Reference |
|---|---|---|
| 1 | 1.0 | NBS 1980 |
| 2 | ANSI Y14.26M-1981 | ANSI 1981 |
| 3 | 2.0 (default) | NBS 1983 |
| 4 | 3.0 | NBS 1986 |
| 5 | ASME/ANSI Y14.26M-1987 | ASME 1987 |
| 6 | 4.0 | NBS 1988 |
| 7 | ASME Y14.26M-1989 | ASME 1989 |
| 8 | 5.0 | NIST 1990 |
| 9 | 5.1 | US PRO 1991 |
| 10 | US PRO/IPO-100 IGES 5.2 | US PRO 1993 |
| 11 | 5.3 | the 1996 specification |
Appendix J of the specification gives the full citation for each reference.
Drafting standard flag (parameter 24)
| Code | Standard |
|---|---|
| 0 | None specified (default) |
| 1 | ISO, International Organization for Standardization |
| 2 | AFNOR, French Association for Standardization |
| 3 | ANSI, American National Standards Institute |
| 4 | BSI, British Standards Institute |
| 5 | CSA, Canadian Standards Association |
| 6 | DIN, German Institute for Standardization |
| 7 | JIS, Japanese Institute for Standardization |
Directory Entry Section
Every entity has one Directory Entry record: two lines, each of nine 8-column fields (columns 1 to 72), with values right-justified. Fields 1, 2, 10, 11, 14 and 20 may not be defaulted in the Fixed Format. Apart from fields 10, 16, 17, 18 and 20, every field is an integer or pointer. The order of the records in the section is arbitrary. Where a field offers either an attribute value or a pointer, a positive value is the attribute and a negated value is a pointer (its absolute value is the Directory Entry sequence number).
| Line | Field | Columns | Name | Meaning |
|---|---|---|---|---|
| 1 | 1 | 1–8 | Entity type number | The entity type; equal to the first value of the Parameter Data record |
| 1 | 2 | 9–16 | Parameter data | Sequence number of the first Parameter Data line, greater than zero and not above the Terminate count for P |
| 1 | 3 | 17–24 | Structure | A negated pointer to the definition entity that gives this entity’s schema, or zero. It has meaning only for the Macro instance, the Implementor-defined Associativity Instance (type 402, forms 5001–9999) and the Attribute Table Instance (type 422, forms 0 and 1). Non-negative values are ignored (before version 3.0 they held a version number) |
| 1 | 4 | 25–32 | Line font pattern | 0 none, 1 solid, 2 dashed, 3 phantom, 4 centreline, 5 dotted; or a negated pointer to a Line Font Definition (type 304). More patterns come from the Line Font Property (type 406, form 19) |
| 1 | 5 | 33–40 | Level | The level number, or a negated pointer to a Definition Levels Property (type 406, form 1) when the entity is on several levels |
| 1 | 6 | 41–48 | View | Zero when visible in all views with the same display; a pointer to a View entity (type 410) for one view; otherwise a pointer to a Views Visible Associativity (type 402, form 3, 4 or 19), with form 4 or 19 when the display differs between views |
| 1 | 7 | 49–56 | Transformation matrix | A pointer to a Transformation Matrix (type 124) or zero, which means the identity |
| 1 | 8 | 57–64 | Label display associativity | A pointer to a Label Display Associativity (type 402, form 5), or zero |
| 1 | 9 | 65–72 | Status number | Four two-digit values run together, see below |
| 1 | 10 | 73–80 | Section code and sequence number | D and the physical line number from the start of the section (odd) |
| 2 | 11 | 1–8 | Entity type number | The same as field 1 |
| 2 | 12 | 9–16 | Line weight number | 0 means the receiver’s default; otherwise the thickness is the number times Global parameter 17 divided by Global parameter 16 |
| 2 | 13 | 17–24 | Colour number | 0 none, 1 black, 2 red, 3 green, 4 blue, 5 yellow, 6 magenta, 7 cyan, 8 white; a negated pointer to a Colour Definition (type 314) when the exact shade matters |
| 2 | 14 | 25–32 | Parameter line count | Number of Parameter Data lines of the record, including trailing comment lines; greater than zero except for the Null entity (type 0) |
| 2 | 15 | 33–40 | Form number | The entity’s interpretation of its data; 0 by default. Each entity lists its own forms |
| 2 | 16 | 41–48 | Reserved | Empty |
| 2 | 17 | 49–56 | Reserved | Empty |
| 2 | 18 | 57–64 | Entity label | Up to eight alphanumeric characters, right-justified, or NULL |
| 2 | 19 | 65–72 | Entity subscript number | A one-to-eight digit unsigned number that qualifies the label |
| 2 | 20 | 73–80 | Section code and sequence number | D and the line number (even) |
Fields are numbered 1 to 20 across the two lines. Entity descriptions use
<n.a.> for a field with no meaning for that entity: it is empty or zero
and a reader ignores it.
Status number (field 9)
The field is eight digits with no spaces, made of four two-digit values in this order.
| Digits | Value | Meaning |
|---|---|---|
| 1–2 | 00 | Blank status: visible |
| 01 | Blanked (not displayed) | |
| 3–4 | 00 | Subordinate entity switch: independent, referenced by no other entity |
| 01 | Physically dependent: a child that cannot exist without its parent, positioned by the matrices of the chain of parents | |
| 02 | Logically dependent: exists alone but is referenced by grouping entities (for example a Group Associativity); a parent’s matrix does not move it | |
| 03 | Both: physically dependent on one parent and logically dependent on others (never both on the same parent) | |
| 5–6 | 00 | Entity use flag: geometry |
| 01 | Annotation, including geometry that builds annotation | |
| 02 | Definition, used only through entities that reference the definition (all of the 300 range) | |
| 03 | Other, such as structural features (roughly the 400 range, with exceptions) | |
| 04 | Logical or positional reference (Node, Connect Point, Point), and composite curves of two connect points used as connectors | |
| 05 | 2D parametric: positioned in XY parameter space with Z ignored and no length units; used to define curves on surfaces | |
| 06 | Construction geometry, not part of the product’s definition; children of such a parent are also 06 unless they are definitions (02) | |
| 7–8 | 00 | Hierarchy: the parent’s line font, view, level, blank status, line weight and colour apply to physically subordinate entities |
| 01 | None of them apply: children use their own | |
| 02 | Each attribute is set individually by a Hierarchy Property (type 406, form 10) |
When a parent is positioned in model space, the transformations apply in order: the entity’s own matrix, then the matrices of each parent in turn, any subfigure scale and position, and finally the view’s matrix, scale and drawing position. The specification’s worked example is Section 2.2.4.4.9.2.
Parameter Data Section
Each entity’s record is free-formatted, ends at column 64, has a space in column 65, the
sequence number of the entity’s first Directory Entry line in columns 66 to 72, the letter
P in column 73 and its own sequence number in columns 74 to 80. The first
value is always the entity type number followed by a parameter delimiter, even though the
entity tables do not show it. Text after the record delimiter is a comment; extra comment
lines keep the same Directory Entry pointer and count in Directory Entry field 14.
After an entity’s own parameters, two optional groups of pointers may follow, written before the record delimiter. If NV is the number of the last defined parameter:
| Index | Name | Type | Meaning |
|---|---|---|---|
| NV+1 | NA | Integer | Number of pointers to Associativity Instances (type 402), General Notes (type 212) or Text Display Templates (type 312) |
| NV+2 … | DE(1) … DE(NA) | Pointer | The Directory Entries of those entities |
| NV+NA+2 | NP | Integer | Number of pointers to Property (type 406) or Attribute Table Instance (type 422) entities |
| NV+NA+3 … | DE(1) … DE(NP) | Pointer | The Directory Entries of those entities |
Pointers to associativities are called back pointers and appear only when the associativity’s definition requires them. A pointer to a General Note gives an entity its associated text, and a pointer to a Text Display Template gives display parameters for the first string in the entity. Either group, or both, may be empty.
Terminate Section
One line, T with sequence number 1, made of ten fields of eight columns. Each
of the first four holds a section letter left-justified and the last sequence number used
in that section, right-justified; leading zeros are optional.
| Columns | Content |
|---|---|
| 1–8 | S and the last Start line number |
| 9–16 | G and the last Global line number |
| 17–24 | D and the last Directory Entry line number |
| 25–32 | P and the last Parameter Data line number |
| 33–72 | Not used |
| 73–80 | T and 1 |
S0000020G0000003D0000500P0000261 T0000001
Compressed Format
The Compressed Format is an alternative for large files that the specification says has
not been widely implemented. A file in it starts with one Flag line (C in
column 73, sequence number 1). The Start, Global and Terminate Sections are as in the Fixed
Format, and the Directory Entry and Parameter Data sections merge into a variable-length
Data section with no section letter.
- Each entity’s record starts with
Dand the unsigned sequence number of its Directory Entry, followed directly by zero or more field specifiers@n_value, where n is the Directory Entry field number and the value follows the underscore (the specification calls it an underscore, though its text shows a hyphen). There is no delimiter between specifiers, the group ends with the record delimiter, and it may continue on further lines but only between complete specifiers. - Fields 2, 10, 11 and 20 are never given. A field keeps its value from the previous entity until a new one is stated, so only the first entity has a complete set.
- The Parameter Data of the entity follows on a new line, as in the Fixed Format, on lines that end before column 65.
C
(Start Section lines as in the Fixed Format) S
(Global Section lines as in the Fixed Format) G
D1@1_100 ...more field specifiers...;
(parameter data of entity 1, ending with the record delimiter)
D3@ ...;
(parameter data of entity 3)
(Terminate Section as in the Fixed Format) T
Not on this page
- The deprecated Binary Format (Appendix H of the specification, “shall not be used to create new files”).
- Appendix A’s part-file examples and Appendix E’s ASCII form conversion utility.
Sources
- Initial Graphics Exchange Specification, IGES 5.3 – U.S. Product Data Association (IGES/PDES Organization), 23 September 1996; the version read here is the copy US PRO published as a PDF, kept by the Internet Archive. Sections 2.1 to 2.3