STEP-File is a widely used data exchange form of STEP. ISO 10303 can represent 3D objects in Computer-aided design (CAD) and related information. Due to its ASCII structure, a STEP-file is easy to read, with typically one instance per line. The format of a STEP-File is defined in ISO 10303-21 Clear Text Encoding of the Exchange Structure. 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. 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. History Some details to take note of: The first edition, ISO 10303-21:1994, had some bugs, which were corrected by a Technical Corrigendum. Therefore, it is recommended that users study the second edition instead (see below). The second edition, ISO 10303-21:2002, included the corrigendum and extensions for several data sections. The third edition, ISO 10303-21:2016, added anchor, reference and signature sections to support external references, support for compressed exchange structures in a ZIP-based archive, digital signatures, and UTF-8 character encoding. Part 21 defined two conformance classes. They differ only in how to encode complex entity instances. Conformance class 1 is always used enforce the so-called internal mapping, which is more compact. Conformance class 2, which is not used in practice, always enforces the external mapping. In theory this would allow better AP interoperability, since a postprocessor may know how to handle some supertypes, but may not know the specified subtypes. The 1st edition of part 21 enforces the use of so-called SHORT NAMES, which are optional in the 2nd edition. In practice, however, SHORT NAMES are rarely used. The 2nd edition allows multiple data sections to be used. In practice, however, most implementations only use a single data section (1st edition encoding). ISO 10303-21 Building blocks Example 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'),