Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

STEP-file, ISO 10303-21

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name STEP-file, ISO 10303-21 -- Industrial automation systems and integration -- Product data representation and exchange -- Part 21: Implementation methods: Clear text encoding of the exchange structure

ISO 10303-21 specifies an exchange format, often known as a STEP-file, that allows product data conforming to a schema in the EXPRESS data modeling language (ISO 10303-11) to be transferred among computer systems. The content of a STEP-file is termed an "exchange structure." See Notes below for more on the relationship between ISO 10303-21 (STEP-file) and ISO 10303-11 (EXPRESS). This description covers the 1994-6, 2002, and 2016 versions of ISO 10303-21.

The plain text format for a STEP-file has the following characteristics:

  • it consists of a sequence of records (lines of characters)
  • the character set for the exchange structure is defined as the code points U+0020 to U+007E and U+0080 to U+10FFFF of ISO 10646 (Unicode). The first range includes: digits, upper and lower case "latin" letters, and common special characters (roughly equivalent to ASCII). The 2016 version of ISO 10303 extended the permitted "alphabet" to include "high" codepoints U+0080 to U+10FFFF, using UTF-8 encoding. For compatibility with the 2002 version, high codepoint characters can be encoded/escaped within "control directives" (/X2/, /X4/, and /X0/)
  • the first characters in the first record are "ISO-10303-21;"
  • in STEP-files conforming to the 2002 version of ISO 10303-21, the last record contains "END-ISO-10303-21;" as a terminator. A STEP-file conforming to the 2016 version may have one or more digital signatures following the "END-ISO-10303-21;" terminator
  • text between "/*" and "*/" is a comment
  • print control directives "\N\" or "\F\" can be included to indicate line-breaks or page-breaks respectively for use when printing the exchange structure.

The STEP-file is divided into sections. Section labels are reserved terms (termed "special tokens" in the specification) and sections must be in the order shown below. All sections end with a record "ENDSEC;". Many STEP-file instances have only two sections, the mandatory HEADER section and a single DATA section.

  • HEADER; Mandatory, non-repeatable section. Must contain one instance of each of the following entities: file_description, file_name, and file_schema, and they shall appear in that order. Optional entities include schema_population, file_population, section_language, and section_context.
  • ANCHOR; Optional, non-repeatable section. Introduced in 2016 version. The anchor section defines external names for instances in the exchange structure so that they can be referenced. Anchors can be associated with entities, values, and other items in the exchange structure. If an anchor name is associated with an item in the REFERENCE section, the anchor is associated with an item in a different exchange structure.
  • REFERENCE; Optional, non-repeatable section. Introduced in 2016 version. Each entry in the reference section shall associate an entity instance name (e.g., #10) or value instance name (e.g., @70) with an entity or a value, which may be in an external file identified by a URI. The declared references can be used in the DATA sections of the exchange structure.
  • DATA; Optional, repeatable section. The DATA sections contain the core content of the model instance. If an exchange structure contains more than one DATA section, each "DATA" keyword shall be followed by a parenthesized list containing a name for this DATA section and a single schema name that governs the content of this section. Following these parameters come a sequence of entity instances, with each entity having a unique name in the form of "#" followed by a sequence of digits. The entities correspond to Entities and Types in the governing EXPRESS schema. So-called "user-defined" entities (i.e., entities not derived directly from the EXPRESS schema) are permitted but discouraged in the 2016 version of ISO 10303-21, which recommends (in clause 11.3) the creation of an additional EXPRESS schema and a separate DATA section.
  • SIGNATURE; Optional, repeatable section. Introduced in 2016 version. Holds a digital signature to permit verification that the file content before the SIGNATURE section has not been corrupted and to validate the credentials of the signer. Follows the "END-ISO-10303-21;" terminator.

Also described in ISO 10303-21 is a mechanism for a multi-file exchange structure to be compressed and packaged using ZIP. The ZIP configuration must correspond to PKZIP 2.04g, which limits compression to the Deflate algorithm. Such a ZIP file must have a file named ISO10303.p21 which serves as the "root" of the archive and contains at least the Header of the STEP-file. The special file name ISO-10303.p21 denotes the root of a multi-file exchange structure whether stored in a ZIP archive or a directory hierarchy. This format description, apart from this paragraph, does not cover the ZIP-based variant specified in ISO 10303-21.

Production phase Typically used as a middle-state format for exchange between systems operated by different parties involved in building or manufacturing activities. May also be used as an archival format for architectural or engineering designs.
Relationship to other formats
    Has subtype IFC-SPF, Industry Foundation Classes (IFC), Clear Text Family. The specification for IFC4, published in 2013, includes an undated normative reference to ISO 10303-21, indicating that the latest version of STEP-21 applies.
    Equivalent to STEP-XML, ISO 10303-28, Industrial automation systems and integration — Product data representation and exchange — Part 28: Implementation methods: XML representations of EXPRESS schemas and data, using XML schemas. STEP-XML is not described separately at this site at this time. The equivalence of the clear text and XML exchange structures may not always be exact, since the lists of EXPRESS concepts not mapped to the exchange structure, although largely the same, are not identical for ISO 10303-21 (clause 12) and ISO 10303-28 (clause 6.2). Comments welcome.
    Defined via EXPRESS, EXPRESS data modeling language, ISO 10303-11

Local use Explanation of format description terms

LC experience or existing holdings  
LC preference  

Sustainability factors Explanation of format description terms


International standard, developed and maintained by the ISO technical committee TC 184, Automation systems and integration, sub-committee SC 4, Industrial data.


ISO 10303-21:2016. Industrial automation systems and integration -- Product data representation and exchange -- Part 21: Implementation methods: Clear text encoding of the exchange structure.


The primary use for STEP-files is as exchange structures for content complying with other parts of the STEP standard, ISO 10303, particularly for so-called application protocols, as defined in parts 2xx of ISO 10303. Each protocol defines a data exchange standard for a defined family of products at a defined stage in its life cycle. See FAQ: Questions about STEP application protocols and Coverage of STEP Application Protocols (AP). The clear text STEP-file (ISO 10303-21) is more frequently used than the XML-based format specified in ISO 10303-28. As of early 2017, it appears that the 1996 and 2002 versions of the STEP-file format are more widely used and supported than the new 2016 version. Comments welcome.

The 2016 version of ISO 10303-21 introduces many new features. The compilers of this resource have not been able to ascertain which applications or toolkits support the extensions or whether there are EXPRESS schemas in widespread use that require the new STEP-file version. Comments welcome.

In addition, other standards that have used EXPRESS for data modeling expect the use of STEP-files for data exchange. These include the standards for Industry Foundation Classes (IFC-SPF, ISO 16739) and Parts Library (PLIB, ISO 13584). According to NIST description of its STEP File Analyzer software, "STEP is also used for the long-term archiving and retrieval of product data (LOTAR)." LOTAR is developing, testing, publishing and maintaining standards for long-term archiving of digital data, such as 3D CAD and product data management (PDM) data. Part 3 of the 2006 LOTAR standards refers to Part 21 of STEP (ISO 10303). VDA 4958 -- Long term archiving (LTA) of digital product data which are not based on technical drawings: Part 3: Data model lists the STEP-file as one of two implementations available in Clause 7.2, page 64.

Software that supports viewing, editing, reading, and writing STEP-files in general includes: STEPcode is an open source collection of open source libraries, tools, and resources, with roots in the NIST STEP Class Library (SCL) which was developed between ~1987 and 1998; STEP Tools Software, which provides open source projects and libraries that are free for personal use; JSDAI (Java Standard Data Access Interface) is a Java API that supports reading, writing and runtime manipulation of object oriented data defined by an EXPRESS based data model, including reading and writing STEP-files; STEP viewers as listed by PDES, Inc.;, a free online viewer; STEP File Analyzer from NIST; IDA-STEP, with components for viewing and editing including a free "basic" viewer.

Other products using or supporting STEP-files have a focus on a particular domain or particular STEP Application Protocols. For example, the STEP file FAQ from PCB-3D lists software that can read or write STEP-files, with a focus on design and manufacture of electronics and printed circuit boards. See Notes below for discussion of some Application Protocols (APs) supported in important industries. Software aimed at those industries is likely to support STEP-files, but often only for the particular APs.

CAD conversion tools that can handle STEP-files include: CrossCAD Ware from Datakit and HOOPS Exchange from TechSoft 3D.

    Licensing and patents

No licensing or patent issues.


STEP-file is a plain text format. Document files are easily viewed with basic text editing tools. However, entity names in the file consist of digits (preceded by "#") rather than using human-readable tags and parent-child relationships between entities are not obvious. To understand the content, a viewer that can relate the STEP-file to its schema(s) is more effective.

Self-documentation This format is designed to represent models specified in the EXPRESS language defined in ISO 10303-11 and a file will include the technical and structural metadata required to ingest the instance into a system that supports such models in general or instances of a specific model. Such models may incorporate elements and structures for descriptive and contextual metadata.
External dependencies Software that can relate a STEP-file instance to its EXPRESS schema is essential for full validation and interpretation.
Technical protection considerations This format does not support encryption or digital rights management. Digital signatures can be included to verify content and validate the credentials of the signer.

Quality and functionality factors Explanation of format description terms

Normal rendering A "document" in the STEP-file format is not a general text document. It is a plain text file using a defined special-purpose syntax.
Functionality beyond normal rendering The function of a document in the STEP-file format language is to be a clear text exchange format for an instance of a data structure conforming to a given data model defined in the EXPRESS data modeling language. The intended area of application is the representation of product manufacturing information for the purpose of exchange among computer systems.
Support for CAD/CAM/CAE This format has been specifically developed as an exchange format for structured data applicable to design, manufacturing, and engineering of products, where "product" is very broadly interpreted. The EXPRESS data modeling language, which is used to define the schemas of which STEP-file documents are instances, is rich in data types and structures that can be used to support CAD/CAM/CAE. The STEP standard includes many parts that are "application protocols" for specialized areas of CAD/CAM/CAE, for example, AP 203 for Configuration Controlled Design. Sample STEP-files are available at LaserDesign Filetype: .stp and Sample step files from StepCode.

File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension stp
All three extensions listed in Annex L of the STEP-file specification has the following recommendations for file extensions: .stp and .step for files according to the ISO 10303 Application Protocols; .p21 for general use including those described by ISO 10303, ISO 13584 and ISO 15926.
Magic numbers ASCII: ISO-10303-21;
Hex: 49534F2D31303330332D32313B
From PRONOM [].
Pronom PUID fmt/698
Wikidata Title ID Q3509055

Notes Explanation of format description terms


Relationship between ISO 10303-21 and ISO 10303-11: The EXPRESS data modeling language (specified in ISO 10303-11) is used to define schemas, and constraints on the entities in those schemas, to represent the data model for the design and characteristics of a "product." A product might be a single component or an entire building structure. Given an EXPRESS model for a product, ISO 10303-21 defines an encoding and file format (the plain text STEP-file) for an instance conforming to that model. The instance is known as an "exchange structure."

Conformance classes for STEP-file exchange structures: Conformance levels and classes are described in clause 4.3 of the STEP Part 21 specification from 2016. Syntactical conformance classes apply to instances and are indicated in the implementation_level attribute of the file_description entity in the Header section. Three conformance classes are defined:

  • CC1 is compatible with implementations based on the 2002 version. Character set is extended from ASCII to UTF-8. Digital signatures can be added and an Anchor section enables references into the data from outside, using UUIDs. Implementations based on the 2002 specification can ignore these sections.
  • CC2 requires a pre-processor because it permits a Reference section with references to external resources and the use of ZIP to compress the exchange structure.
  • CC3 supports advanced features for intelligent manufacturing through inclusion of ECMAscript (aka JavaScript). Also allows constants and values from the EXPRESS schema to be referred to in Data sections. Requires access to the schema for full use.

STEP Application Protocols (APs): Many parts of the STEP standard define "application protocols" for product data for a particular domain. Associated with APs are EXPRESS schemas. Software applications aimed at the particular domain may read and write STEP-files, but only those that correspond to the EXPRESS schemas associated with particular APs. APs supported widely to date include: AP203, Configuration Controlled Design, developed by PDES, Inc. and primarily supported by the aerospace and defense industry -- see 1998 guidelines for AP203; and AP214, maintained by ProSTEP iViP and SASIG and used primarily in the automotive industry. Both the APs are used in the supply chains of several industry sectors and hence are supported by main CAD/CAM/CAE applications. AP242, Managed Model Based 3D Engineering, has been developed to combine and extend AP203 and AP214, and was published in 2014. The STEP protocols AP203 and AP214 from Datakit provides some useful history. A second edition of AP242 is under development and in early 2017 is in CD (committee draft) stage in ISO. See STEP AP 242 edition 2 project website.


The original Part 21 specification was issued in 1994, followed shortly by a technical corrigendum in 1996. It permitted a single Data section. The second edition, published in 2002, added support for multiple Data sections in a file and additional contextual metadata in the Header. Files conforming to the 1996 edition also conform to the 2002 edition.

Changes in the 2002 edition included:

  • New clauses 8.2.6, 8.2.7, and 8.2.8 to add file_population, section_language, and section_context to the Header section.
  • Extended clause 11.1 and Annex E to allow for multiple data sections.

ISO 10303-21:2016 is the third edition of the standard. All instances encoded following the 2002 version also conform to the 2016 version. Changes in the 2016 version include:

  • Anchor and Reference sections allow entities and values to be defined in external files. As expressed in a STEP Tools blog post for New Year's Day 2017, this new feature of Part 21 opens "new possibilities for links between engineering models just like links between web pages."
  • For multi-file instances, a schema_population entity identifies external exchange structure files to be integrated into the model and their associated schemas.
  • Strings may be in UTF-8 rather than ASCII.
  • The exchange structure can be compressed and stored in an archive using ZIP (limited to PKZIP 2.0g compatibility, i.e., using Deflate compression)
  • The exchange structure can be given one or more digital signatures to verify its contents and validate the credentials of the signer
  • The exchange structure can reference values and instances defined in its EXPRESS schema
  • The exchange structure can include ECMAScript

Format specifications Explanation of format description terms

Useful references


Last Updated: Monday, 27-Feb-2017 09:55:22 EST