STEP(5)
💖 NAME 💖
STEP(5) — ISO 10303 Standard for the Exchange of Product model data 🌈 and yes bestie, this is the BRL-CAD Format Documentation page for it — buckle up, it's giving standards-body lore.
🌸 BACKGROUND 🌸
Okay so picture it: 1984, and the International Organization for Standardization (ISO) starts working to create a standard that lets product data get exchanged electronically between computer-based product life-cycle systems. The scope was intentionally way broader than just geometry information, and the resulting standard (ISO 10303: Industrial automation systems and integration — Product data representation and exchange) is extremely large. So large that it's subdivided into parts, and each part gets referred to individually as ISO 10303-xxx where xxx is the part number. Because the scope is so huge, there's a numbering convention for more focused sub-scopes, so finding specific types of information is simpler:
🎀 Table 1. ISO 10303 Part Numbering Scopes 🎀
The columns are Series and Scope Of Series, and here's the whole lineup, no cap:
00x— Overview, fundamental principles01x— Definitional resources02x— Implementation methods03x— Validation of translators for standard conformance04x— Integrated Generic Resources (basic building blocks)1xx— Integrated Application Resources (higher level than04x)2xx— Application Protocols5xx— Application Interpreted Constructs - reusable components of Application Protocols
The lowest level parts that define STEP in a practical sense are ISO 10303-011 ⟨http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38047⟩, ISO 10303-21 ⟨http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33713⟩, and ISO 10303-022 ⟨http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=25097⟩. 10303-011 defines the EXPRESS language, which is in turn the language in which application protocol schemas are written. 10303-21 defines a clear text encoding of the STEP exchange structure - files using this schema are referred to as "STEP" or "Part 21" files. 10303-022 defines a Standard Data Access Interface (SDAI) which is used to automatically generate practical computer code from the EXPRESS schema protocol descriptions. Collectively, these define the "container" aspects of the STEP file format and a method to access the information from the file. (This is similar to using XML with a schema file to store information, and newer schemas are also available in an XML form in addition to EXPRESS.)
A number of other ⟨https://en.wikipedia.org/wiki/List_of_STEP_%28ISO_10303%29_parts#AIC_-_Application_interpreted_constructs⟩ low level parts and higher level Application Interpreted Constructs (AICs) form the foundation on which the more complete "high level" parts are defined. This separation is performed mainly to allow maximal sharing and compatibility between different high level parts that need the same lower level foundations.
Within that context, the primary components of interest for practical data import and export are the Application Protocols (AP) that focus on shape models and assembly structure (among other things.) The first such protocol was AP203 - "Configuration-controlled design". As experience using the standard in real world applications accumulated, new revisions and new application protocols were developed. Today, the following protocols exist:
🎀 Table 2. Application Protocols relating to Shape Modeling and Assembly Structure
Okay bestie, this is the part where it gets spicy — it's a whole table of application protocols and ngl it's a lot, so I'm laying it out as a list so your eyes don't fall out. Same facts, same links, promise. 💅
AP203— Configuration controlled 3D designs of mechanical parts and assemblies ⟨https://www.iso.org/standard/20597.html⟩- Notes: Most recent version is
10303-203:1994with additions and corrections as follows: the original document was subsequently revised by one amendment10303-203:1994/Amd 1:2000⟨https://www.iso.org/standard/34177.html⟩ and three corrections:10303-203:1994/Cor 1:1996⟨https://www.iso.org/standard/26904.html⟩,10303-203:1994/Cor 2:1998⟨https://www.iso.org/standard/30943.html⟩, and10303-203:1994/Cor 3:2004⟨https://www.iso.org/standard/40190.html⟩.10303-203:2005⟨https://www.iso.org/standard/39522.html⟩ is considered a revision to this standard.
- Notes: Most recent version is
AP203e2— Configuration controlled 3D designs of mechanical parts and assemblies ⟨https://www.iso.org/standard/44305.html⟩- Notes: Most recent version is
10303-203:2011. Revises10303-203:2005⟨https://www.iso.org/standard/39522.html⟩, which is listed as a modular version that is harmonized with ISO 10303-214.10303-242:2014⟨https://www.iso.org/standard/57620.html⟩ is considered a revision to this standard.
- Notes: Most recent version is
AP214— Core data for automotive mechanical design processes ⟨https://www.iso.org/standard/43669.html⟩- Notes: Most recent version is
10303-214:2010(a.k.a AP214e3). Two earlier versions exist:10303-214:2003⟨https://www.iso.org/standard/38727.html⟩ and10303-214:2001⟨https://www.iso.org/standard/23643.html⟩.10303-242:2014⟨https://www.iso.org/standard/57620.html⟩ is considered a revision to this standard.
- Notes: Most recent version is
AP242— Managed model-based 3D engineering ⟨https://www.iso.org/standard/57620.html⟩- Notes: Most recent version is
10303-242:2014. This standard is intended to consolidate and replace AP203e2 and AP214. One correction has been published:10303-242:2014/Cor 1:2016⟨https://www.iso.org/standard/72059.html⟩.
- Notes: Most recent version is
So here's the tea on AP203e2: it's sufficiently different from AP203 that, practically speaking, it merits being called out as its own distinct protocol. But in the nomenclature of the ISO standards it is still considered a revision to AP203. The way naming conventions work is honestly giving bureaucratic chaos but okay. 🙈
These protocols are the portion of ISO 10303 that address the problem domain previously handled by the Initial Graphics Exchange Specification (IGES(5)). So like, if you're in a computer aided design context where transfer of "STEP files" is being discussed, those files will most likely correspond to one of the previous protocols. Iconic behavior fr fr. 🔥
TODO - Determine what MIM, AIM and AAM are and document them...
Not me leaving the TODO in, but it's literally in the page so it stays, bestie. Transparency is the vibe. 💀
🦋 SCHEMAS AND IMPLEMENTATION RESOURCES
To obtain the latest schema files (which, unlike the ISO standards themselves, are freely available — slay), check the STEP Module Repository Project ⟨http://stepmod.sourceforge.net/⟩ — in particular, the modules directory ⟨http://stepmod.cvs.sourceforge.net/viewvc/stepmod/stepmod/data/modules/⟩. Go get 'em. ✨
The standards define the structure of the schemas, but in general when it comes to the nuts and bolts of implementing a practical importer and exporter, more resources are needed. Below are links to some implementation resources:
- PDES, Inc. Industry consortium Recommended Practices for AP203 ⟨http://www.oasis-open.org/committees/download.php/11728/recprac8.pdf⟩, April 1998
- PDM Implementer Forum, Usage Guide for the STEP PDM Schema V1.2 Release 4.3 ⟨http://www.cax-if.org/documents/pdmug_release4_3.pdf⟩, January 2002.
- CAx Implementer Forum Recommended Practices:
https://www.cax-if.org/joint_testing_info.html#recpracs
🌸 SEE ALSO
Pratt, Michael J.; Introduction to ISO 10303 - the STEP Standard for Product Data Exchange ⟨http://www.mel.nist.gov/msidlibrary/doc/jcise1.pdf⟩; NIST; 2001.
👑 AUTHOR
Clifford Yapp
💖 COPYRIGHT
Copyright (c) 2015-2026 by the United States Government as represented by U.S. Army Research Laboratory.
🐛 BUG REPORTS 🐛
Okay bestie, this is the part where you tell us when we got something wrong 💅
Spotted an inaccuracy? A vibe that's off? Something in this page that just does not math? Don't sit on it — submit your report via electronic mail to:
devs@brlcad.org
That's it. That's the whole section. Short, sweet, and honestly iconic of us 🎀
Ngl, "inaccuracies" really does cover a lot of ground here — if a detail on this page lied to you, that counts. Go on, hit send 🫶
And that's the whole STEP(5) page, start to finish — you made it 🦋✨ The footer's got the source and the date: BRL-CAD, section 5, dated per whenever your copy of the man pages was built. Go be the main character of your own STEP file, iykyk 💖🌸
📦 where this page comes from
- nixpkgs unstable: brlcad 7.44.0
- 💖 girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms