Getting Started for STEP Implementers
Estimated Time: 10 minutes
This guide is a super-intro for implementers who have CAD experience but are new to the STEP standard. It aims to help you grasp the basics of STEP quickly.
🎯 What You'll Learn in 10 Minutes
- What STEP is (from an implementer's perspective)
- First step: Reading a STEP file
- STEP File Basics: Understanding syntax and structure fundamentals
- Recommended tools and resources
- What to read next
1. What is STEP? (Implementer's Perspective)
History & Background
- Who created it: Developed by ISO TC 184/SC 4 (Industrial data).
- Historical context: Development started in 1984 as a successor to IGES (Initial Graphics Exchange Specification), aiming to overcome its limitations in data consistency and completeness.
- Why it was created: To provide a single, vendor-neutral, and computer-interpretable international standard that covers the entire life cycle of a product, from design to manufacturing and disposal. The first version was published in 1994.
Core Mental Model
Before diving into the syntax, it is helpful to understand the relationship between the file structure and the data objects.
Core Properties
STEP (Standard for the Exchange of Product model data, ISO 10303) is:
- A text-based CAD data exchange format.
- A way to represent 3D geometry using B-rep (Boundary Representation).
- Capable of storing not just geometry, but also management information (Products, Assemblies) and PMI (Product and Manufacturing Information/Tolerances).
Why Choose STEP? (Strengths & Weaknesses)
✅ Strengths
- International Standard: Widely supported by all major CAD vendors (ISO 10303).
- High Precision: Uses B-rep (mathematically exact formulas) instead of mesh approximation.
- Rich Data: Supports assemblies, colors, layers, and semantic PMI (AP242).
- Long-term Archiving: Supported by LOTAR for 50+ year data preservation.
❌ Weaknesses
- Large File Size: Being a text-based (ASCII) format, files can be significantly larger than proprietary binary formats.
- Lack of Design History: Does not preserve the "feature tree" or parametric constraints from the source CAD (e.g., "Extrude 10mm").
- Implementation Complexity: The standard is massive (hundreds of parts), making full implementation difficult.
TIP
Alternative formats? For cases where you need both high-fidelity visualization and exact geometry (B-rep) but don't want to use a raw STEP file, 3D PDF (PRC format) is a common alternative. See the Format Comparison for details.
What is the Part 21 Format?
Part 21 is the standard for saving STEP data as a text file.
Official Name and Origins
- Official Name: ISO 10303-21 "Clear text encoding of the exchange structure"
- Established by: ISO (International Organization for Standardization)
- First Published: 1994
- Latest Version: ISO 10303-21:2016
Why "Part 21"?
The STEP standard (ISO 10303) is a massive collection of hundreds of "parts":
Relationship Map of Major Parts
List of Major Parts
Parts 1-20s: Fundamentals & Shared Specifications
- Part 11: EXPRESS Language (Data modeling language)
- Part 21: Clear text encoding (ASCII/Clear text) ← Most Important!
- Part 28: XML representation
Parts 40-50s: Integrated Resources
- Part 41: Fundamentals of product description and support
- Part 42: Geometric and topological representation
- Part 43: Representation structures
- Part 44: Product structure configuration
- Part 45: Materials and others
Parts 100s: Integrated Application Resources
- Part 101: Draughting
- Part 104: Finite element analysis
- Part 105: Kinematics
Parts 200s: Application Protocols (AP) - Most used by implementers
- Part 203: AP203 - Configuration controlled 3D design
- Part 214: AP214 - Core data for automotive design
- Part 238: AP238 - Application protocol for computer controlled controllers
- Part 242: AP242 - Managed model-based 3D engineering (Latest & Most Important)
Parts 500s+: Abstract Test Suites, etc.
Essential Parts for Implementers
In practice, only these five are essential:
- Part 21 (Text format) ← Reading and writing files
- Part 11 (EXPRESS) ← Understanding the schema
- Part 203, 214, 242 (APs) ← Deciding which standard to use
Part 21 simply means the "21st part" of the standard, defining the encoding method (how data is saved to a file).
Relationship with Other Formats
| Standard | File Format | Characteristics | CAD Support |
|---|---|---|---|
| Part 21 | .stp, .step (ASCII) | Human-readable, most common | ✅ Almost all CAD |
| Part 28 | .stpx, .stpZ (XML) | XML-friendly, redundant | ❌ Very limited |
| - | (Binary Format) | No official binary format | - |
IMPORTANT
CAD Support Status
- Part 21: Supported by almost all CAD software including SolidWorks, CATIA, NX, Creo, Inventor, and Fusion360.
- Part 28: Only supported by specific tools. Major CAD software often does not support it.
- ✅ Supported: Siemens NX, Kubotek Kosmos, STEP Tools
- ❌ Not Supported: SolidWorks, Creo, Inventor, Fusion360, FreeCAD
- In professional practice, Part 21 (
.step) is the standard.
Detail: Part 21 vs Part 28 Comparison
Note: Over 99% of STEP files are in Part 21 format. Part 28 is mainly for academic or research purposes and is rarely used in actual CAD data exchange.
Basic Structure of Part 21 Format
The most common STEP files (.stp / .step) use the Part 21 format and have the following structure:
ISO-10303-21; ← Part 21 format declaration
HEADER; ← File metadata
FILE_DESCRIPTION(...);
FILE_NAME(...);
FILE_SCHEMA(...); ← AP version (Crucial!)
ENDSEC;
DATA; ← Actual data
#10 = PRODUCT(...); ← Entity instances
#20 = PRODUCT_DEFINITION_FORMATION(...);
...
ENDSEC;
END-ISO-10303-21;Three Key Concepts
① Entity
The "type" of data. Equivalent to a "class" in object-oriented programming.
- Examples:
PRODUCT,SHAPE_REPRESENTATION,ADVANCED_FACE - Always written in uppercase.
② Instance
Concrete data for an entity. Identified by #number.
#10 = PRODUCT('Part_A', 'Part_A', 'Description', (#20));#10= Instance IDPRODUCT= Entity type'Part_A', ...= Attribute values
③ Reference
Referencing other instances using their #number.
#10 = PRODUCT(..., (#20)); ← References #20
#20 = PRODUCT_CONTEXT(...);Parsing Tips:
- Instance IDs start from 1 and are unique within the file.
- Forward references are allowed (an ID can be referenced before it is defined).
- Using a hash map (dictionary) is efficient for resolving references.
2. First Step: Reading a STEP file
Step 1: Open with a Text Editor
Since STEP files are plain text, you can open them with Notepad or VS Code.
- Prepare any
.stepfile. - Open it in your text editor.
- Inspect the
HEADERsection.
Step 2: Identify the AP Version
Check the FILE_SCHEMA in the HEADER section:
FILE_SCHEMA(('AP214_AUTOMOTIVE_DESIGN { ... }'));→ This is an AP214 file.
FILE_SCHEMA(('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF { ... }'));→ This is an AP242 file.
Why is this important?
- Different APs use different entities.
- Parsers need to load the schema corresponding to the AP.
Step 3: Find the PRODUCT Entity
Search for PRODUCT( in the DATA section:
#10 = PRODUCT('Part_A','Part_A','Simple part',(#20));This is the top-level information for the part.
Following the Related Entities:
PRODUCT (#10)
↓ (via PRODUCT_DEFINITION_FORMATION)
PRODUCT_DEFINITION (#50)
↓ (via PRODUCT_DEFINITION_SHAPE)
SHAPE_REPRESENTATION (#90)
↓
REPRESENTATION_ITEM (#100-#500) ← Geometry data is hereVisual Traversal Path:
Traversal Steps:
- Start with
PRODUCT(#10) - the top-level part information - Follow
PRODUCT_DEFINITION_FORMATIONto manage versions - Follow
PRODUCT_DEFINITIONto get design context - Follow
PRODUCT_DEFINITION_SHAPEas the bridge to geometry - Follow
SHAPE_REPRESENTATIONto reach the geometry container - Extract
REPRESENTATION_ITEMinstances (faces, edges, vertices)
See the Data Model Map for details.
Step 4: How to Reach Geometry Data (Overview)
In an actual implementation:
Pseudocode (Python-style):
# 1. Get the PRODUCT instance
product = find_entity(step_file, 'PRODUCT')
# 2. Follow to PRODUCT_DEFINITION
product_def = traverse(product, 'PRODUCT_DEFINITION')
# 3. Get the SHAPE_REPRESENTATION
shape_rep = traverse(product_def, 'SHAPE_REPRESENTATION')
# 4. Get geometry elements (like FACES)
faces = filter_items(shape_rep.items, 'ADVANCED_FACE')Parser Processing Flow:
Why Two-Pass Processing?
- Pass 1: Build instance map (all
#ID = ENTITY(...)entries) - Pass 2: Resolve references (replace
#IDwith actual instance objects) - Forward references require this approach - you cannot resolve references until all instances are parsed.
See Data Model Map for detailed implementation examples.
4. Recommended Tools
STEP Viewers (Free)
| Tool | Features | URL |
|---|---|---|
| FreeCAD | Open-source CAD. Can read and edit STEP. | https://www.freecad.org/ |
| OpenCascade | CAD library. C++/Python. | https://www.opencascade.com/ |
| 3D-Tool Free Viewer | Lightweight viewer for Windows. | https://www.3d-tool.com/ |
Validators
- STEP Tools (Paid): High-performance commercial validator.
- CAx-IF Recommended Test Cases: https://www.cax-if.org/
Parser Libraries
| Language | Libraries / Tools |
|---|---|
| Python | ifcopenshell (for IFC but useful reference), pythonOCC (OpenCascade wrapper) |
| C++ | OpenCascade, STEP Tools SDK |
| JavaScript/TypeScript | Mostly custom implementations (Part 21 parsers are relatively simple). |
5. What to Read Next
After understanding the basics, proceed in this order:
① Deepen Your Understanding
- STEP File Basics - Syntax and structure fundamentals.
- Glossary - Memorize the Top 5 important terms.
- FAQ - Resolve common questions.
② Select an AP
③ Start Implementation
- STEP File Walkthrough - Understand real files line-by-line.
- Data Model Map - Entity hierarchy.
- Common Pitfalls - Implementation warnings.
💡 Pre-Implementation Checklist
Before you start coding, ensure you:
- [ ] Understand the basic structure (HEADER + DATA) of a STEP file.
- [ ] Grasp the concepts of Entity, Instance, and Reference.
- [ ] Chose the appropriate AP for your project.
- [ ] Understand the syntax of Part 21 (basic parsing methods).
- [ ] Obtained sample STEP files for testing.
- [ ] Set up a STEP viewer to open actual files.
📚 Further Learning
Official Resources
- ISO 10303 Standards: Official specifications (Paid).
- CAx-IF Recommended Practices: Implementation guidelines (Free).
Communities
- CAx-IF: https://www.cax-if.org/
- STEP modularization: https://www.stepmod.org/
Recommended Learning Path
📚 Next Steps
- FAQ - Resolve common questions.
- Which AP should I use? - Select the AP for your use case.