CAD Exchanger SDK
STEP Converter

Overview

STEP_Reader can read and STEP_Writer can write files compliant with STEP AP203 and AP214.

Scope

Mapping

Import Mapping

Below tables shows how STEP entities are mapped into CAD Exchanger entities after import.

Product Structure

STEP Entity CAD Exchanger Entity Note
product_definition One of:
next_assembly_usage_occurrence ModelData_Instance
item_defined_transformation ModelData_Transformation
advanced_brep_shape_representation ModelData_BRepRepresentation
faceted_brep_shape_representation ModelData_PolyRepresentation Supported only in version 2 of reader

Topology

STEP Entity CAD Exchanger Entity Note
manifold_solid_brep ModelData_Body
with type equal to ModelData_BT_Solid
brep_with_voids Each void is mapped to inner ModelData_Shell
shell_based_surface_model ModelData_Body
with type equal to ModelData_BT_Sheet
face_based_surface_model
edge_based_wireframe_model ModelData_Body
with type equal to ModelData_BT_Wireframe
geometric_curve_set
geometric_set ModelData_BodyList Geometric entities are grouped by type (surfaces with surfaces, curves with curves, etc.) and form a list of homogeneous bodies (e.g., one sheet body and one wireframe body)
closed_shell ModelData_Shell
oriented_closed_shell
open_shell
advanced_face ModelData_Face
face_surface
curve_bounded_surface
face_bound ModelData_Wire
face_outer_bound
edge_loop
connected_edge_set
composite_curve Each segment is mapped to ModelData_Edge.
boundary_curve
outer_boundary_curve
edge_curve ModelData_Edge
oriented_edge
vertex_point ModelData_Vertex

Geometry

STEP Entity CAD Exchanger Entity
Surfaces
b_spline_surface_with_knots ModelData_BSplineSurface
rational_b_spline_surface
uniform_curve
quasi_uniform_curve
conical_surface ModelData_ConicalSurface
cylindrical_surface ModelData_CylindricalSurface
offset_surface ModelData_OffsetSurface
plane ModelData_Plane
rectangular_trimmed_surface ModelData_RectangularTrimmedSurface
spherical_surface ModelData_SphericalSurface
surface_of_linear_extrusion ModelData_SurfaceOfLinearExtrusion
surface_of_revolution ModelData_SurfaceOfRevolution
toroidal_surface ModelData_ToroidalSurface
Curves
b_spline_curve_with_knots ModelData_BSplineCurve
ModelData_BSplineCurve2d
rational_b_spline_curve
uniform_curve
quasi_uniform_curve
circle ModelData_Circle
ModelData_Circle2d
ellipse ModelData_Ellipse
ModelData_Ellipse2d
hyperbola ModelData_Hyperbola
ModelData_Hyperbola2d
line ModelData_Line
ModelData_Line2d
offset_curve ModelData_OffsetCurve
ModelData_OffsetCurve2d
parabola ModelData_Parabola
ModelData_Parabola2d
trimmed_curve ModelData_TrimmedCurve
ModelData_TrimmedCurve2d

Polygonal

STEP Entity CAD Exchanger Entity
faceted_brep ModelData_IndexedTriangleSet

Parameters

Importer Parameters

Import parameters are controlled by STEP_ReaderParameters.

Parameter Default value Description
Version() V2 Specifies the version of STEP reader.
  • V1 is the old, which lacks some SDK features.
  • V2 is the new, which uses all available SDK features.
PreferredBRepRepresentationType() Auto Specifies the preferred B-Rep shape representation type, which should be imported.
  • Auto - the most appropriate representation is chosen automatically.
  • All - all representations are imported. This includes the main representation and all connected to it via relationships.
  • AdvancedBRep - prefer ADVANCED_BREP_SHAPE_REPRESENTATION, which stores solid bodies.
  • ManifoldSurface - prefer MANIFOLD_SURFACE_SHAPE_REPRESENTATION, which stores sheet bodies with shells.
  • NonManifoldSurface - prefer NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION, which stores sheet bodies with faces.
  • EdgeBasedWireframe - prefer EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION, which stores wireframe bodies.
In case the preferred representation cannot be found, the first appropriate is imported.

Exporter Parameters

Export parameters are controlled by STEP_WriterParameters.

Parameter Default value Description
Version() V2 Specifies the version of STEP writer.
  • V1 is the old, discontinued version.
  • V2 is the new, currently maintained version.
WriteBRepRepresentation() true

See Base_WriterParameters::WriteBRepRepresentation().

WritePolyRepresentation() false

See Base_WriterParameters::WritePolyRepresentation().

If more than one polygonal representations is present in model, which of them should be written is controlled by PreferredLOD().

Note
If some part(s) in the model contain only polygonal representations (e.g., loaded from STL file), they will be converted regardless of this parameter.
PreferredLOD() ModelData_RM_Medium

See Base_WriterParameters::PreferredLOD().

If combination of flags is used (i.e. ModelData_RM_Poly), then all respective representations are written.

LengthUnit() Base_LU_Millimeters See Base_WriterParameters::LengthUnit().
Author() "Unspecified" See Base_WriterParameters::Author().
Organization() "Unspecified" See Base_WriterParameters::Organization().
PreferredBRepRepresentationType() Auto Specifies, which BRep shape representation type is preferred.
  • Auto - representation type is chosen based on the type of bodies.
  • AdvancedBRep - prefer ADVANCED_BREP_SHAPE_REPRESENTATION, where bodies type is MANIFOLD_SOLID_BREP
  • ManifoldSurface - prefer MANIFOLD_SURFACE_SHAPE_REPRESENTATION, where bodies type is SHELL_BASED_SURFACE_MODEL
  • NonManifoldSurface - prefer NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION, where bodies type is FACE_BASED_SURFACE_MODEL
  • EdgeBasedWireframe - prefer EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION, where bodies type is EDGE_BASED_WIREFRAME_MODEL
If chosen representation type is not suitable for particular body, the best appropriate is used automatically.
ExternalReferencesMode() Monolithic Specifies whether external references sould be used to create resulting STEP file.
  • Monolithic - no external references, single file with the whole model created.
  • PerPart - every part is written to it's own STEP file; product structure is stored in single "master" file.
  • PerAssembly - assemblies and parts are written to their own STEP files; "master" file contains only roots of product structure.

Details

Reader Versions

Below is a summary table containing differences between V1 and V2 versions of STEP reader.

Feature Version 1 Version 2
Improved performance on multi-core systems
Polygonal representations support
Multi-body parts support

Known Limitations

Import

  • Colors and names for polygonal entities are not supported.