STEP | |
---|---|
Filename extension | .stp, .step, .stpnc, .p21, .210 |
Internet media type | model/step, model/step+xml, model/step+zip, model/step-xml+zip |
Magic number | ISO-10303-21 |
Developed by | ISO |
Initial release | 1994 |
Website | Specification |
STEP-file is a widely used [1] data exchange form of STEP. ISO 10303 can represent 3D objects in computer-aided design (CAD) and related information. A STEP-file is ASCII text with the format defined in ISO 10303-21 Clear Text Encoding of the Exchange Structure. [2]
ISO 10303-21 defines the encoding mechanism for representing data conforming to a particular schema in the EXPRESS data modeling language specified in ISO 10303-11. A STEP-File is also called p21-File and STEP Physical File. The file extensions .stp and .step indicate that the file contains data conforming to STEP application protocols while the extension .p21 should be used for all other purposes. [3]
The use of ISO 10303-21 is not limited to STEP. The Industry Foundation Classes and earlier CIMSteel Integration Standard (CIS/2) define an EXPRESS schema for building information modeling data and specify ISO 10303-21 as an exchange encoding.
This graph shows the entity instances and the references between them in a file representing a solid model of a cylinder.
Some details to take note of:
A typical example looks like this:
ISO-10303-21; HEADER; FILE_DESCRIPTION( /* description */ ('A minimal AP214 example with a single part'), /* implementation_level */ '2;1'); FILE_NAME( /* name */ 'demo', /* time_stamp */ '2003-12-27T11:57:53', /* author */ ('Lothar Klein'), /* organization */ ('LKSoft'), /* preprocessor_version */ ' ', /* originating_system */ 'IDA-STEP', /* authorization */ ' '); FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 2 1 1}')); ENDSEC; DATA; #10=ORGANIZATION('O0001','LKSoft','company'); #11=PRODUCT_DEFINITION_CONTEXT('part definition',#12,'manufacturing'); #12=APPLICATION_CONTEXT('mechanical design'); #13=APPLICATION_PROTOCOL_DEFINITION('','automotive_design',2003,#12); #14=PRODUCT_DEFINITION('0',$,#15,#11); #15=PRODUCT_DEFINITION_FORMATION('1',$,#16); #16=PRODUCT('A0001','Test Part 1','',(#18)); #17=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#16)); #18=PRODUCT_CONTEXT('',#12,''); #19=APPLIED_ORGANIZATION_ASSIGNMENT(#10,#20,(#16)); #20=ORGANIZATION_ROLE('id owner'); ENDSEC; END-ISO-10303-21;
As seen in the above example, the file is split into two sections following the initial keyword ISO-10303-21;:
The HEADER section has a fixed structure consisting of 3 to 6 groups in the given order. Except for the data fields time_stamp and FILE_SCHEMA all fields may contain empty strings.
The last three header groups are only valid in second edition files.
The DATA section contains application data according to one specific express schema. The encoding of this data follows some simple principles.
#1234
. The instance name must consist of a positive number (>0) and is typically smaller than 263. The instance name is only valid locally within the STEP-file. If the same content is exported again from a system the instance names may be different for the same instances. The instance name is also used to reference other entity instances through attribute values or aggregate members. The referenced instance may be defined before or after the current instance.#16=PRODUCT(...)
above.$
.*
in the position of the supertype attribute..TRUE.
.'...'
. For characters with a code greater than 126 a special encoding is used. The character sets as defined in ISO 8859 and 10646 are supported. Note that typical 8 (e.g. west European) or 16 (Unicode) bit character sets cannot directly be taken for STEP-file strings. They have to be decoded in a very special way.,
.Possibly the only advantage of STEP files is that they are widely adopted in many CAD software. On the other hand, its format, and specially the EXPRESS data modelling language has a few disadvantages:[ opinion ]