/STEP-file-parser

Basic parser for reading ISO 10303-21 STEP files. Can be extended to other formats by swapping the EXPRESS schema

Primary LanguageC#MIT LicenseMIT

Parser for reading ISO 10303-21 STEP files.

I needed to extract certain geometric elements from STEP files, so I put together this very basic module to handle the parsing phase of the process. This can be easily extended to other ISO 10303 formats by swapping the EXPRESS schema

Various express schemas are avaliable here: https://github.com/stepcode/stepcode/tree/develop/data

Sample output of tree after parsing:

1 APPLICATION_PROTOCOL_DEFINITION
└──2 APPLICATION_CONTEXT
3 SHAPE_DEFINITION_REPRESENTATION
├──4 PRODUCT_DEFINITION_SHAPE
│  └──5 PRODUCT_DEFINITION
│     ├──6 PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE
│     │  └──7 PRODUCT
│     │     └──8 MECHANICAL_CONTEXT
│     │        └──2 APPLICATION_CONTEXT
│     └──9 DESIGN_CONTEXT
│        └──2 APPLICATION_CONTEXT
└──10 ADVANCED_BREP_SHAPE_REPRESENTATION
   ├──11 AXIS2_PLACEMENT_3D
   │  ├──12 CARTESIAN_POINT
   │  ├──13 DIRECTION
   │  └──14 DIRECTION
   ├──15 MANIFOLD_SOLID_BREP
   │  └──16 CLOSED_SHELL
   │     ├──17 ADVANCED_FACE
   │     │  ├──18 FACE_BOUND
   │     │  │  └──19 EDGE_LOOP
   │     │  │     ├──20 ORIENTED_EDGE
   │     │  │     │  └──21 EDGE_CURVE
   │     │  │     │     ├──22 VERTEX_POINT
   │     │  │     │     │  └──23 CARTESIAN_POINT
   │     │  │     │     ├──24 VERTEX_POINT
   │     │  │     │     │  └──25 CARTESIAN_POINT
   │     │  │     │     └──26 SURFACE_CURVE
   │     │  │     │        ├──27 LINE
   │     │  │     │        │  ├──28 CARTESIAN_POINT
   │     │  │     │        │  └──29 VECTOR
   │     │  │     │        │     └──30 DIRECTION
   │     │  │     │        ├──31 PCURVE
   │     │  │     │        │  ├──32 PLANE
   │     │  │     │        │  │  └──33 AXIS2_PLACEMENT_3D
   │     │  │     │        │  │     ├──34 CARTESIAN_POINT
   │     │  │     │        │  │     ├──35 DIRECTION
   │     │  │     │        │  │     └──36 DIRECTION
   │     │  │     │        │  └──37 DEFINITIONAL_REPRESENTATION
   │     │  │     │        │     ├──38 LINE
   │     │  │     │        │     │  ├──39 CARTESIAN_POINT
   │     │  │     │        │     │  └──40 VECTOR
   │     │  │     │        │     │     └──41 DIRECTION
   │     │  │     │        │     └──42 COMPLEX