STEP Reader
| Standard for the Exchange of Product Data (STEP) | |
| File Extension: STEP STP STPZ | STEP STP STPZ |
| Supported Versions | AP 203 Ed1, Ed2 - AP 214 - AP 242 Ed1, Ed2, Ed3 |
| Platforms | ![]() |
| Tessellation | Supported (Computed) |
| B-rep | Supported |
| PMI | Supported |
STEP (Standard for the Exchange of Product Data) is a widely-used ISO standard file format for representing 3D product data. It is commonly employed in industries such as manufacturing, engineering, and aerospace for exchanging 3D models between different CAD systems. The STEP format supports detailed and accurate representations of 3D objects, including geometry, topology, and product manufacturing information (PMI). This makes it ideal for applications requiring interoperability, data exchange, and long-term archiving of product information.
Our STEP reader provides full access in reading and writing to the assembly, B-rep and PMI.
STEP uses Application Protocols (AP) as versions, which can be seen as specific subsets of the STEP standard.
How to Read from STEP
Our STEP reader supports the following Application Protocols (AP) of the standard:
- AP 203 Ed1 and Ed2
- AP 214
- AP 242 Ed1, Ed2 and Ed3
To load a STEP file, use A3DAsmModelFileLoadFromFile().
The A3DParamsLoadData structure is used to customize general loading behavior.
Additionally, the A3DRWParamsStepData structure can be used to specifiy load options specific to STEP files.
This structure is available as a field of A3DParamsLoadData:
A3DAsmModelFile* pModelFile = 0;
A3DRWParamsLoadData sReadParam;
A3D_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
sReadParam.m_sGeneral.m_bReadSolids = A3D_TRUE;
// Configuration specific to Step
sReadParam.m_sSpecifics.m_sStep.m_bPreferProductName = A3D_TRUE;
// ... set other A3DRWParamsLoadData fields as necessary
A3DAsmModelFileLoadFromFile("path/to/file.stp", &sReadParam, &pModelFile);
See Simple Load and Export for more about loading model files.
Tessellation
The tessellation data for this format is generated by the HOOPS Exchange tessellation engine.
B-rep
We provide full support for the B-rep model defined in a STEP file. Evaluators are provided to allow you to directly query these geometries.
The specific surfaces supported by STEP are:
BEZIER_SURFACEBOUNDED_SURFACEB_SPLINE_SURFACE_WITH_KNOTSB_SPLINE_SURFACECONICAL_SURFACECURVE_BOUNDED_SURFACECYLINDRICAL_SURFACEDEGENERATE_TOROIDAL_SURFACEOFFSET_SURFACEQUASI_UNIFORM_SURFACERATIONAL_B_SPLINE_SURFACERECTANGULAR_TRIMMED_SURFACESPHERICAL_SURFACESURFACE_OF_LINEAR_EXTRUSIONSURFACE_OF_REVOLUTIONTOROIDAL_SURFACEUNIFORM_SURFACE
The specific curves supported by STEP are:
BEZIER_CURVEB_SPLINE_CURVE_WITH_KNOTSB_SPLINE_CURVEQUASI_UNIFORM_CURVEUNIFORM_CURVECIRCLECOMPOSITE_CURVEELLIPSEHYPERBOLAPARABOLAINTERSECTION_CURVEPOLYLINERATIONAL_B_SPLINE_CURVESURFACE_CURVE
PMI
We provide support for the graphical representation of PMI which includes a link back to the referenced entity. The specific PMI supported includes:
Datum TargetDatumDimension (angular)Dimension (curve)Dimension (diameter)Dimension (general)Dimension (linear)Dimension (ordinate)Dimension (radial)Feature control frameLabelNoteRoughnessWeld
Assembly
In addition to full support of the assembly tree our STEP reader will also honor external file references including those that point to other non-STEP files.
Views
HOOPS Exchange provides support for the SAVED VIEWS concept in STEP. We specifically support the following SAVED VIEW concepts:
CAMERA_MODEL_D3_MULTI_CLIPPINGCAMERA_MODEL_D3DRAUGTHING_MODEL
Other Features
Our STEP reader provides support for both user defined and validation properties defined at a part level. Also, support for compressed STEP files is included.
Our STEP reader includes a built-in healing algorithm. However, in the interest of performance, it is not enabled by default.
For shell based surface models, each body is put into a separate B-rep entity. This can be toggled using the m_bSplitSHELL_BASED_SURFACE_MODEL flag.

Supported (Computed)