NISTIR 8122

STEP File Analyzer User’s Guide

(Version 3) 

Robert R. Lipman

This publication is available free of charge from:

http://dx.doi.org/10.6028/NIST.IR.8122
NISTIR 8122

STEP File Analyzer User’s Guide

(Version 3)

Robert R. Lipman

Systems Integration Division

Engineering Laboratory

This publication is available free of charge from:

http://dx.doi.org/10.6028/NIST.IR.8122

April 2016

U.S. Department of Commerce 

Penny Pritzker, Secretary

National Institute of Standards and Technology 

Willie E. May, Under Secretary of Commerce for Standards and Technology and Director 
 i

PREFACE

This guide describes how to use the STEP File Analyzer, a software tool that analyzes and generates a 

spreadsheet from a STEP (STandard for the Exchange of Product model data) file. The spreadsheets

simplify inspecting information in the STEP file at an entity and attribute level. STEP files can also be 

checked for conformance to recommended practices for Product and Manufacturing Information (PMI)

representation, PMI presentation, and validation properties. 

More information about the STEP File Analyzer and sample spreadsheets can be found at 

http://www.nist.gov/el/msid/infotest/step-file-analyzer.cfm.

The STEP File Analyzer is developed as part of the Digital Thread for Smart Manufacturing project in the 

Engineering Laboratory’s Smart Manufacturing Operations Planning and Control Program (SMOPAC). 

The software was first released in 2012. This guide is based on version 1.60 of the software.

DISCLAIMERS

The STEP File Analyzer might not be up-to-date with the most recent recommended practices specified 

by the CAx Implementor’s Forum. The software might also not check STEP files for conformance to 

every aspect of a recommended practice.

Any mention of commercial products in the STEP File Analyzer and this user’s guide is for information 

purposes only; it does not imply recommendation or endorsement by NIST. For any of the web links in 

the software and this user’s guide, NIST does not necessarily endorse the views expressed, or concur with 

the facts presented on those web sites.

This software was developed at the National Institute of Standards and Technology by employees of the 

Federal Government in the course of their official duties. Pursuant to Title 17 Section 105 of the United 

States Code this software is not subject to copyright protection and is in the public domain. This software 

is an experimental system. NIST assumes no responsibility whatsoever for its use by other parties, and 

makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic.

 

This software can be redistributed and/or modified freely provided that any derivative works bear some 

notice that they are derived from it, and any modified versions bear some notice that they have been 

modified. We would appreciate acknowledgement if the software is used. 

ACKNOWLEDGEMENTS

The author thanks Dr. Kent Reed, former leader of the NIST Computer Integrated Building Process 

Group, for his guidance in the development of the IFC File Analyzer 

(http://www.nist.gov/el/msid/infotest/ifc-file-analyzer.cfm) on which the STEP File Analyzer is based. 

The author also acknowledges the many software vendors and users who have provided invaluable 

feedback, suggestions, and bug reports about the software and supplied sample STEP files that were used 

to test and improve the capabilities of the software.

Cover image: Part with PMI annotations, part of a spreadsheet generated by the STEP File Analyzer
 ii

TABLE OF CONTENTS

1 INTRODUCTION ............................................................................................................................... 1

2 GETTING STARTED......................................................................................................................... 2

2.1 INSTALLING THE SOFTWARE ..........................................................................................................2

2.2 RUNNING THE SOFTWARE ..............................................................................................................2

2.2.1 Installing the IFCsvr toolkit....................................................................................................3

2.3 GENERATING A SPREADSHEET .......................................................................................................4

2.4 RECOVERING FROM A CRASH .........................................................................................................4

2.5 UNINSTALLING THE SOFTWARE .....................................................................................................4

3 SAMPLE WORKSHEETS................................................................................................................. 5

3.1 SUMMARY WORKSHEET .................................................................................................................5

3.2 HEADER WORKSHEET.....................................................................................................................6

3.3 ENTITY WORKSHEETS ....................................................................................................................6

3.3.1 Skipped Attributes ...................................................................................................................7

4 USER INTERFACE............................................................................................................................ 8

4.1 MENU BAR......................................................................................................................................9

4.1.1 File Menu ................................................................................................................................9

4.1.2 Websites Menu ......................................................................................................................10

4.1.3 Help Menu.............................................................................................................................10

4.2 TABS BAR .....................................................................................................................................11

4.3 STATUS TAB .................................................................................................................................11

4.4 OPTIONS TAB................................................................................................................................12

4.4.1 Selectively Process Entity Types...........................................................................................12

4.4.2 Reports for Recommended Practices ....................................................................................13

4.4.3 Inverse Relationships and Used In........................................................................................14

4.4.4 Display STEP File in Other Applications.............................................................................15

4.4.4.1 Indent STEP File.............................................................................................................................................. 16

4.5 SPREADSHEET TAB .......................................................................................................................17

4.5.1 Tables....................................................................................................................................18

4.5.2 Number Format.....................................................................................................................18

4.5.3 Maximum Rows.....................................................................................................................19

4.5.4 Other Options........................................................................................................................19

5 REPORTS .......................................................................................................................................... 20

5.1 PMI REPRESENTATION .................................................................................................................22

5.1.1 Visual Presentation of PMI Representation..........................................................................22

5.1.2 Datum Reference Frame Example ........................................................................................22

5.1.3 Dimensional Tolerance Example ..........................................................................................23

5.1.4 Geometric Tolerance Examples............................................................................................26

5.1.5 PMI Representation Summary and Limitations....................................................................28

5.1.6 PMI Representation Coverage Analysis ...............................................................................30

5.1.6.1 Color-coding Coverage Analysis Results......................................................................................................... 31

5.2 PMI PRESENTATION .....................................................................................................................35

5.2.1 PMI Presentation Visualization ............................................................................................37

5.2.2 PMI Presentation Coverage Analysis...................................................................................38

5.3 VALIDATION PROPERTIES.............................................................................................................39
 iii

6 PROCESSING MULTIPLE STEP FILES...................................................................................... 41

6.1 SUMMARY WORKSHEET ...............................................................................................................41

6.2 COVERAGE ANALYSIS WORKSHEETS...........................................................................................43

6.2.1 PMI Representation Coverage Analysis ...............................................................................43

6.2.2 PMI Presentation Coverage Analysis...................................................................................48

7 CRASH RECOVERY ....................................................................................................................... 49

8 COMMAND-LINE VERSION......................................................................................................... 51

9 REFERENCES .................................................................................................................................. 52

LIST OF FIGURES

Figure 1: IFCsvr installation dialogs.............................................................................................................3

Figure 2: What to do if the STEP File Analyzer crashes..............................................................................4

Figure 3: Summary worksheet......................................................................................................................5

Figure 4: Header worksheet..........................................................................................................................6

Figure 5: Entity worksheet (datum_system) .................................................................................................7

Figure 6: Entity worksheet (draughting_model)...........................................................................................7

Figure 7: Entity worksheet (b_spline_surface_with_knots) .........................................................................7

Figure 8: User interface ................................................................................................................................8

Figure 9: File menu.......................................................................................................................................9

Figure 10: Websites menu ..........................................................................................................................10

Figure 11: Help menu .................................................................................................................................10

Figure 12: Tooltip help ...............................................................................................................................11

Figure 13: Options tab ................................................................................................................................12

Figure 14: Tooltip help for GD&T entities.................................................................................................13

Figure 15: Entity worksheet (shape_aspect_relationship) ..........................................................................14

Figure 16: Inverse Relationships and Used In example (columns A-F) .....................................................14

Figure 17: Inverse Relationships and Used In example (columns G-H) ....................................................15

Figure 18: Display STEP File in other applications....................................................................................15

Figure 19: Indented STEP file ....................................................................................................................16

Figure 20: Spreadsheet tab..........................................................................................................................17

Figure 21: Entity worksheet (shape_aspect) with tables for sorting...........................................................18

Figure 22: Rounding numbers example ......................................................................................................18

Figure 23: Maximum rows example ...........................................................................................................19

Figure 24: Part with PMI annotations.........................................................................................................20

Figure 25: Summary worksheet with entities highlighted for PMI.............................................................21

Figure 26: Entity worksheet (datum)..........................................................................................................22

Figure 27: Entity worksheet (datum_reference_compartment) ..................................................................22

Figure 28: Datum reference frame example ...............................................................................................23

Figure 29: Dimensional tolerance example (columns A-C) .......................................................................24

Figure 30: Dimensional tolerance example (columns D-J).........................................................................25

Figure 31: Flatness tolerance example (columns A-H)...............................................................................26

Figure 32: Flatness tolerance example (columns I-K)................................................................................26

Figure 33: Position tolerance example (columns A-G)...............................................................................27

Figure 34: Position tolerance example (columns H-J)................................................................................27

Figure 35: PMI Representation Summary worksheet.................................................................................28

Figure 36: PMI Representation Coverage worksheet (rows 1-44)..............................................................30
 iv

Figure 37: Color-coded PMI Representation Coverage worksheet (rows 1-52).........................................32

Figure 38: Color-coded PMI Representation Coverage worksheet (rows 53-100).....................................33

Figure 39: PMI Representation Coverage worksheet (rows 101-125)........................................................34

Figure 40: PMI presentation example (columns A-D)................................................................................35

Figure 41: PMI presentation example (columns E-H)................................................................................36

Figure 42: PMI presentation example (columns I-K) .................................................................................36

Figure 43: Visualization of PMI presentation.............................................................................................37

Figure 44: PMI Presentation Coverage worksheet .....................................................................................38

Figure 45: Validation properties example (columns A-D) .........................................................................39

Figure 46: Validation properties example (columns E-O)..........................................................................40

Figure 47: Validation properties example with expanded columns (columns E-J) ....................................40

Figure 48: File Summary worksheet, multiple files....................................................................................42

Figure 49: PMI Representation Coverage worksheet, multiple files (rows 1-40) ......................................44

Figure 50: PMI Representation Coverage worksheet, multiple files (rows 41-78) ....................................45

Figure 51: PMI Representation Coverage worksheet, multiple files (rows 79-117) ..................................46

Figure 52: PMI Representation Coverage worksheet, multiple files (rows 118-135) ................................47

Figure 53: PMI Presentation Coverage worksheet, multiple files ..............................................................48

Figure 54: Dialogs displayed when the software crashes ...........................................................................49

Figure 55: Which entity caused a crash ......................................................................................................50

Figure 56: Command-line version ..............................................................................................................51
 1

1 Introduction

This guide describes how to use the STEP File Analyzer, a software tool that analyzes and generates a 

spreadsheet from a STEP (ISO 10303 – informally known as the STandard for Exchange of Product 

model data) [1-3] file. The spreadsheets simplify inspecting information from the STEP file at an entity 

and attribute level. In this report a “STEP file” refers to a file that is exported by CAD (Computer-Aided 

Design) software in a format described by ISO 10303-21[4] and typically known as a Part 21 file.

Typical STEP file viewers show a 3D visualization of the part or model represented by the STEP file. 

The viewers usually have a high-level hierarchical display of the information in the STEP file where the 

user can drill down to individual attributes of parts. However, there is no way to view all of the actual 

STEP entities and their attributes at once. The STEP File Analyzer provides this capability by creating a 

spreadsheet from the STEP file.

The STEP File Analyzer also checks for conformance to recommended practices for PMI (Product and 

Manufacturing Information) representation, PMI presentation, and validation properties [5]. 

Recommended practices are defined by the CAx Implementor Forum (CAx-IF) [6, 7]. The objective of 

the CAx-IF is to advance CAx (mainly Computer-Aided Design, Engineering, and Manufacturing) 

software system translator development and to ensure that user requirements for interoperability are 

satisfied. PMI may include geometric dimensions and tolerances (GD&T), 3D text annotations, surface 

finish, and material specifications. PMI representation includes all information necessary to represent 

GD&T without any graphical presentation elements, although an importing CAD system can attempt to 

recreate the visual presentation of the annotation. PMI presentation presents GD&T annotations as a 

visual representation of geometric elements such as lines and arcs as part of the CAD model. The 

validation properties include geometric, PMI, assembly, annotation, attribute, and tessellated validation 

properties. 

The STEP File Analyzer supports current and some older versions of the following STEP Application 

Protocols (AP). An AP is the implementable part of ISO 10303 upon which translators are based for a 

particular engineering domain.

• AP203 – Configuration Controlled 3D Design of Mechanical Parts and Assemblies [8]

• AP209 – Structural Analysis Design [8]

• AP210 – Electronic Assembly Interconnect and Packaging Design [9]

• AP214 – Automotive Design [9]

• AP238 – Integrated CNC Schema [10]

• AP242 – Managed Model Based 3D Engineering [11-13]
 2

2 Getting Started

2.1 Installing the Software

The STEP File Analyzer was developed for Windows computers. The software is a 32-bit application. 

The size of the STEP file that can be translated by the software depends on the amount of computer 

memory and the options selected when running the software. Microsoft Excel is required to generate a 

spreadsheet. The IFCsvr toolkit is required to read STEP files (section 2.2.1).

The link to the download request form for the STEP File Analyzer can be found on

http://www.nist.gov/el/msid/infotest/step-file-analyzer.cfm. After submitting the download request, 

instructions about where to download the software is provided. The information is also emailed to the 

requestor. The software is downloaded as a zip file named SFA.zip.

The installation process does not require anything more than unzipping the file SFA.zip, which contains 

four files:

1. STEP-File-Analyzer.exe – STEP File Analyzer graphical user interface (GUI) version

2. STEP-File-Analyzer-CL.exe – STEP File Analyzer command-line version (section 8)

3. SFA-Users-Guide.pdf – This user’s guide

4. SFA-README-FIRST.pdf – A readme file

There are no restrictions as to where the files are located in the computer’s file system.

2.2 Running the Software

To run the STEP File Analyzer, simply double click on the icon for STEP-File-Analyzer.exe. 

Several setup functions are performed the first time the software is run:

1. The ‘What’s New’ information is displayed in the Status tab.

2. The Disclaimers dialog is displayed.

3. This User’s Guide is displayed.

4. The user is asked if a shortcut to the STEP File Analyzer can be created in the Start Menu and if 

an icon for the software can be placed on the Desktop.

5. The Crash Recovery dialog is displayed (section 2.4).

6. A file STEP-File-Analyzer-options.dat is created in the user’s home directory that stores 

the current state of the STEP File Analyzer options. Do not edit this file.

7. The IFCsvr toolkit is installed.
 3

2.2.1 Installing the IFCsvr toolkit

The IFCsvr toolkit [14, 15] is used to read and process STEP files1

. The installation of the IFCsvr toolkit 

is simple and straightforward. Two of the installation dialogs are shown in Figure 1. The default 

installation folder should be used as shown in the second dialog. It is important to let the installation 

process complete before processing any STEP files with the STEP File Analyzer.

Figure 1: IFCsvr installation dialogs

 1 Although the toolkit was originally written to work with IFC (Industry Foundation Classes) data 

exchange files, used in the building and construction industry, it has been adapted to work with STEP 

files.
 4

2.3 Generating a Spreadsheet

After the IFCsvr toolkit is installed, a spreadsheet can be generated from a STEP file that uses a supported 

AP. Go to the File menu, select ‘Open STEP File(s)’, select a STEP file on your computer, click Open in 

the dialog, and then click on the ‘Generate Spreadsheet’ button. Feedback will appear in the Status tab 

indicating the progress of processing the STEP file. The spreadsheet will be opened after it has been 

generated.

2.4 Recovering from a Crash

Sometimes the STEP File Analyzer will unexpectedly stop (crash) when processing a STEP file. This is 

usually due to either bugs in the STEP file or limitations of the IFCsvr toolkit. If this happens, simply 

restart the software and process the same STEP file again by using function key F1 or F4 if processing 

multiple STEP files. The software might also crash when processing very large STEP files. Figure 2

shows a dialog that is displayed the first few times the software is run.

The STEP File Analyzer keeps track of which entity type caused the crash for a particular STEP file and 

will not process that type again. More details about recovering from a crash are explained in section 7.

Figure 2: What to do if the STEP File Analyzer crashes

2.5 Uninstalling the Software

The STEP File Analyzer can be uninstalled by manually deleting the two executable files, the STEPFile-Analyzer-options.dat file in the user’s home directory, and the desktop icon for the software. 

The IFCsvr toolkit can also be deleted from the Control Panel.
 5

3 Sample Worksheets

The spreadsheet generated by the STEP File Analyzer contains several worksheets. There are Summary 

and Header worksheets, along with a worksheet for each entity type that was processed from the STEP 

file. The type of entities processed depends on the entities selected in the Process section of the Options 

tab. Links to sample worksheets are available on the STEP File Analyzer website 

http://www.nist.gov/el/msid/infotest/step-file-analyzer.cfm.

3.1 Summary Worksheet

An example of a Summary worksheet is shown in Figure 3. Rows 1-6 contain basic information about 

the STEP file including a link to documentation for the schema (AP214) used in the file. Starting with 

row 9, each row in column A is the name of an entity processed from the STEP file. The entity names are 

linked to their corresponding worksheet. Column B is the number of each entity type counted by the 

software. 

Figure 3: Summary worksheet
 6

At the bottom of the spreadsheet are tabs for the Summary, Header, and many entity worksheets. Entities 

in column A and in the worksheet tabs are grouped and colored according to the categories of entities in 

the Process section of the Options tab as described in section 4.4.1. Selecting a tab, using the links in 

column A, or using the Control-PageUp and Control-PageDown keys will switch to a different worksheet.

3.2 Header Worksheet

An example of the Header worksheet is shown in Figure 4. Rows 3-11 contain the information in a STEP 

file header section. Rows 1 and 2 are the STEP file name and directory.

Figure 4: Header worksheet

3.3 Entity Worksheets

An example of a datum_system entity worksheet is shown in Figure 5. Row 1 contains the name of the 

entity and the number of entities. It is also a link back to the Summary worksheet. Row 3 is the names of 

the entity attributes. Column A is the entity ID.

Starting with row 4, each row contains the attribute values for an entity. Column B is the text string for 

the name attribute. Column C is the description attribute which is blank. Column D is the of_shape

attribute where, in this example, all of the values for the entities are product_definition_shape 56. This 

means that the of_shape attribute is a reference to the product_definition_shape entity with an ID of 56. 

In column F, the constituents attribute refers to either single or multiple datum_reference_compartment

entities. The number in parentheses is the number of entity references and the numbers after the entity 

name are the entity IDs that are referenced.
 7

Figure 5: Entity worksheet (datum_system)

In the example of a draughting_model entity worksheet, shown in Figure 6, cells C4 and C6 refer to 

multiple entity types. Cell C5 refers to multiple styled_item entities, however, the entity IDs are not 

displayed because there are too many entity IDs to fit in one worksheet cell.

Figure 6: Entity worksheet (draughting_model)

3.3.1 Skipped Attributes

Sometimes the STEP File Analyzer skips certain entity attributes due to limitations of the IFCsvr toolkit. 

A message about skipping an entity attribute will be displayed in the Status tab and question marks are 

displayed in the worksheet. For example, Figure 7 shows question marks (???) in column E where the 

control_points_list attributes were skipped.

Figure 7: Entity worksheet (b_spline_surface_with_knots)
 8

4 User Interface

Figure 8 shows the STEP File Analyzer user interface running on a Windows 7 computer. At the top of 

the user interface is the Menu bar with the File, Websites, and Help menus. Below that is the Tabs bar

with tabs for Status, Options, and Spreadsheet. Below that is the Status window that displays text 

feedback when the STEP File Analyzer is running. Clicking on the Options and Spreadsheet tabs will 

switch to the user interface for those tabs. At the bottom of the user interface is the Generate Spreadsheet 

button, NIST logo, and Progress bar.

Figure 8: User interface

< Menu bar

< Tabs bar

< Status tab with

text feedback

< Generate

Spreadsheet 

button

< Progress bar
 9

4.1 Menu Bar

The menu bar contains three items: the File menu, the Websites menu, and the Help menu.

4.1.1 File Menu

From the File menu, shown in Figure 9, the user can select a single STEP Part 21 file to process with 

“Open STEP File(s)...”. STEP files with extensions of .stp, .step, and .p21 are recognized. Compressed 

STEP files with an extension of .stpZ are also recognized. Only STEP files using the supported AP’s can 

be processed (section 1). 

Multiple STEP files can be processed at one time by selecting the “Open Multiple STEP Files in a 

Directory...” option where the user will be asked to select a directory to search for STEP files. The 

search for multiple files can be restricted to only the selected directory or to include all subdirectories. 

Multiple STEP files can also be selected in the “Open STEP File(s)” dialog by holding down the control 

or shift key when selecting files. When spreadsheets from multiple STEP files are generated a File 

Summary spreadsheet is also generated, as is described in section 6.

Below the first solid line in the File menu is a list of up to 20 of the most recently translated STEP files

that can be opened directly. Several function keys can be used to access features of the File menu and in 

the software.

 

• F1 generates a spreadsheet from the STEP file that is first in the list. 

• F2 opens the last spreadsheet that was generated. 

• F3 opens the last File Summary spreadsheet when multiple STEP files were processed. 

• F4 generates multiple spreadsheets from the last directory selected.

• F5 and F6 decrease and increase, respectively, the size of the text in the Status tab.

Figure 9: File menu
 10

4.1.2 Websites Menu

The Websites menu, shown in Figure 10, provides links to useful resources related to the STEP File 

Analyzer, CAx-IF, NIST research, organizations that are programmatically related to STEP, and to 

several websites with documentation for entities in STEP AP203, AP214, and AP242.

4.1.3 Help Menu

The Help Menu, shown in Figure 11, has six sections. In the first two sections, 

• “User’s Guide (pdf)” is a link to this document. 

• “What’s New” displays information in the Status tab about new features in the software. This

information is automatically displayed every time a new version of the software is run.

• “Check for Update” opens up a web page that checks for the latest version of the STEP File 

Analyzer. Follow the instructions on that web page to download a new version of the software if 

one is available. This feature runs automatically if an update hasn’t been checked for in the last 

30 days.

• “Sample STEP Files (zip)” are STEP files generated from the CAD models used in the NIST 

MBE PMI Validation and Conformance Testing Project [16].

• “Sample Output” are links to sample spreadsheets that contain many of the features described in 

this User’s Guide. 

The other topics in the Help menu display information in the Status tab and are similar to most

information in this User’s Guide.

Figure 10: Websites menu Figure 11: Help menu
 11

Help is also available in the form of tooltips related to the display options in the tabs. Holding the mouse 

over any text in a tab for a second or two will display a tooltip. An example of the Validation Reports 

tooltip help in the Options tab is shown in Figure 12.

Features of the software that are not described in this User’s Guide are explained in the Help menu topics 

or in tooltips.

Figure 12: Tooltip help

4.2 Tabs Bar

The Tabs bar is located directly below the menu bar in Figure 8. Clicking on a tab will switch from the 

current tab to the selected tab. Except for the Status tab, the tabs contain the STEP File Analyzer display 

options that affect how a spreadsheet is generated from a STEP file. The options in the Options and 

Spreadsheet tabs are described in sections 4.4 and 4.5.

4.3 Status Tab

The Status tab displays important feedback during the generation of a spreadsheet from a STEP file. The 

feedback should not be ignored as it provides useful information related to the success in processing the 

STEP file. Some of the error, warning, or informational messages in the Status tab have a yellow 

background, red background, red, blue, or green text. Syntax error messages related to nonconformance 

to a recommended practice are highlighted with a red background. A brief example of the information in 

the Status tab is shown in Figure 8. 

The following general sequence of status messages appears in the Status tab when a STEP file is 

processed:

• Messages about Connecting to IFCsvr, Loading STEP file, and Number of entities

o The time to complete this step depends on the size of the STEP file

• Messages about Connecting to Excel and Generating Header worksheet

• Information from the STEP file header section

• STEP entities listed in the order they are processed

o The number in parentheses is the number of entities of that type in the STEP file

o The types of entities processed depends on the entities selected in the Process section of 

the Options tab (section 4.4.1)

• Possible messages about inverse relationships (section 0), checking recommended practices

(section 4.4.2), and syntax errors

• Messages about Closing IFCsvr, Adding Summary worksheet, Formatting spreadsheet, Adding 

links to STEP documentation

• Messages about Saving and Loading the spreadsheet
 12

4.4 Options Tab

Figure 13 shows the Options tab that enables the user to control which entities from the STEP file are 

written to the spreadsheet and to selectively add supplemental information to some worksheets.

Figure 13: Options tab

4.4.1 Selectively Process Entity Types

The STEP File Analyzer can process any entity type from AP203, AP209, AP210, AP214, and AP242. 

The checkboxes in the Process section of the Options tab allow the user to selectively process different 

types of entities. Each checkbox corresponds to a category of entities. In the example in Figure 13, all 

entity types are processed except Geometry, Cartesian Point, AP209, AP210, and some AP242 entities.

The ‘All’ button selects all categories except Geometry, Cartesian Point, AP209, and AP210. The ‘For 

Reports’ button selects all three of the Report types for PMI Representation, PMI Presentation, and 

Validation Properties. Selecting any of the three Report types automatically includes the necessary 

entities related to that report. For example, selecting the report for PMI Representation automatically 

selects the entity categories for AP242, Common, Shape Aspect and GD&T and disables deselecting 

them.

By processing only certain types of entities, the size of and time to generate a spreadsheet can be reduced. 

The categories of entities are also used to order and color the entity names on the Summary worksheet 
 13

and tabs for the entity worksheets as shown in Figure 3. Each category of entities is assigned a different 

color and within each category the entities are listed in alphabetic order.

Holding the mouse over any checkbox for a second or two will display a tooltip that lists all of the entities 

in that category. An example of the tooltip for the GD&T (Geometric Dimensioning and Tolerancing) 

entities is shown in Figure 14. The tooltip indicates that there are 63 entities in the GD&T category. 

Some of the categories contain hundreds of entities and the tooltip might not fit on the screen.

A User-Defined List can also be used to set which entities will be processed. The list is defined in a plain 

text file with the name of one entity type per line in lower case. When the User-Defined List option is 

selected, the Browse button will be activated to select the file that contains the list of entities. This option 

is useful when processing very large STEP files to process only the required entity types to be analyzed.

Figure 14: Tooltip help for GD&T entities

4.4.2 Reports for Recommended Practices

Recommended practices are specifications that provide common implementation guidance associated 

with specific functionalities for data exchange. The CAx-IF has published recommended practices for 

communicating PMI representation, PMI presentation, and validation properties in STEP files [7]. 

Recommended practices are not part of ISO 10303. 

The STEP File Analyzer checks the STEP file for conformance to those recommended practices. Details 

about entity attribute values that indicate conformance are reported on various worksheets. Nonconformance is indicated by messages in the Status tab and spreadsheet cells are highlighted in red.

Section 5.1 discusses the report for PMI representation. Section 5.2 discusses the report for PMI 

presentation. Section 5.3 discusses the report for validation properties.
 14

4.4.3 Inverse Relationships and Used In

In a STEP schema, an entity attribute whose value consists of entity references, in which the referenced

entity has attributes referring to the referencing attribute’s entity is called an inverse attribute. This 

establishes an inverse relationship [17]. Inverse relationships are explicitly defined in a STEP schema 

and reporting of some of those relationships has been implemented in the STEP File Analyzer. 

Figure 15 is an entity worksheet for shape_aspect_relationship that shows the entity relationships

established between the attribute values for relating_shape_aspect and related_shape_aspect in columns 

D and E. 

Figure 15: Entity worksheet (shape_aspect_relationship)

Figures 16 and 17 show how inverse relationships are displayed on the datum entity based on 

shape_aspect_relationship shown in Figure 15. Column G shows the relationship between datum and 

other entities. Column H, with the Used In header, shows where datum is referred to from other entity 

attributes although not by an inverse relationship established by a STEP schema. The tooltip in the 

Options tab for the Inverse Relationships selection will show the list of Inverse and Used In relationships 

that are processed.

Figure 16: Inverse Relationships and Used In example (columns A-F)
 15

Figure 17: Inverse Relationships and Used In example (columns G-H)

4.4.4 Display STEP File in Other Applications

The “Display STEP File in” option is a convenient way to display a STEP file in other applications. 

Figure 18 shows the pull-down menu listing some of the applications that can display a STEP file on the 

author’s computer. The pull-down menu will always contain the Notepad text editor, “Default STEP 

Viewer”, and “Indent STEP File (for debugging)” which is described below. The “Default STEP 

Viewer” is whichever application is associated with STEP files. In this example, several STEP file 

viewers and conformance checkers also appear in the pull-down menu. Applications will appear in the 

pull-down menu if they are installed in their default location. To display a STEP file in one of the 

applications, select the application from the pull-down menu and click the Display button. 

Figure 18: Display STEP File in other applications
 16

4.4.4.1 Indent STEP File

The option to “Indent STEP File” will display the STEP file in a text editor; however, the STEP entities 

will be rearranged and indented to show the hierarchy of information in the STEP file. This is a useful 

feature to help debug a STEP file, but is not recommended for large STEP files. Figure 19 shows a 

sample of the “indented” output. In this sample, it is easy to see how flatness_tolerance (#5584) refers to 

length_measure_with_unit (#5585) and datum_feature (#5583). An “indented” portion of the STEP file 

starts with entities that will generate useful output and stops with other entities to prevent the “indented” 

file from getting too large. Basic geometric entities can optionally be included in the “indented” file 

which will increase the size of the file.

Figure 19: Indented STEP file
 17

4.5 Spreadsheet Tab

The Spreadsheet tab, shown in Figure 20, contains several more options that affect how information is 

written to the spreadsheet.

Figure 20: Spreadsheet tab
 18

4.5.1 Tables

Figure 21 shows the shape_aspect worksheet with the option for generating tables turned on. With this 

option, pull-down menus (selector on the right of each cell in row 3) are displayed with the column 

headers in row 3 that access functions to sort and filter the rows. In this example, the table is sorted by 

the name attribute in column B. This is evident by the order of the entity IDs in column A. The 

worksheet containing validation properties (section 5.3) is always sorted.

Figure 21: Entity worksheet (shape_aspect) with tables for sorting

4.5.2 Number Format

By default, when the STEP File Analyzer adds a single real number to a worksheet cell, Excel might 

round the number. Figure 22, on the left, shows values of radius in column D that are rounded. Using the 

Number Format option in the Spreadsheet tab to not round real numbers, results in the radius values 

displayed with full precision in the worksheet on the right. The non-rounded real numbers are the actual 

values that appear in a STEP file. The non-rounded real numbers are indicated by the small green triangle 

in the upper left corner of a cell. The non-rounded real numbers are also left justified as opposed to the 

rounded real numbers that are right-justified. Real numbers that appear in pairs or triplets, such as 

cartesian points, are never rounded.

 

Figure 22: Rounding numbers example
 19

4.5.3 Maximum Rows

The maximum rows option in the Spreadsheet tab limits the maximum numbers of rows in any 

spreadsheet to the selected value. This is a way to reduce the size of the spreadsheet and speed processing 

of the STEP file. Figure 23 is an example where only the first 100 of 43681 rows for the cartesian_point

entities are written to the worksheet.

Figure 23: Maximum rows example

4.5.4 Other Options

The other options on the Spreadsheet tab control:

• opening the spreadsheet after or while it is being generated

• generating links from entity worksheets to the Summary worksheet and entity documentation

• generating links on the File Summary worksheet when multiple STEP files are processed

• specifying where to write the spreadsheet
 20

5 Reports

Product and manufacturing information (PMI) are annotations and attributes that define product geometry 

and product specifications [18]. PMI includes 3D annotations to specify Geometric Dimensioning and 

Tolerancing (GD&T), as well as non-geometric data such as surface texture specifications, finish 

requirements, process notes, material specifications, and welding symbols. GD&T is a symbolic 

language used to communicate tolerances on manufactured parts. The industry standards for presentation 

of GD&T in axonometric views in 3D space are ASME Y14.41-2003 [19] and ISO 16792:2006 [20]. 

Some common tolerances include dimensional tolerances on length and diameter, and geometric 

tolerances on flatness, position, surface profile, and circular runout.

Figure 24 shows a part with typical PMI annotations including dimensions, geometric and dimensional 

tolerances, and datum features. Most of these types of annotations are processed by the STEP File 

Analyzer.

Figure 24: Part with PMI annotations
 21

Figure 25 shows the summary worksheet, similar to Figure 3, with entities highlighted that have 

information related to PMI Representation and PMI Presentation. Rows 10-13 are entities related to the 

datum reference frame. Row 14 is the dimensional_characteristic_representation entity which is 

associated with all dimensional tolerances. Rows 9 and 17-24 are entities related to geometric tolerances. 

Row 28 is the annotation_curve_occurrence entity which is associated with PMI presentation. The 

entity name in parentheses in cell A17 is for a complex entity 

(flatness_tolerance)(geometric_tolerance_with_defined_unit_area). All of the worksheets for the 

highlighted entities will have extra columns with PMI information.

Figure 25: Summary worksheet with entities highlighted for PMI
 22

5.1 PMI Representation

PMI representation (also known as semantic PMI) includes all information necessary to represent GD&T 

without any graphical presentation elements. PMI representation is associated with CAD model geometry 

and is computer-interpretable to facilitate automated consumption by downstream applications for 

manufacturing, measurement, inspection, and others. PMI representation does not contain any 

information regarding its visual appearance although an importing CAD system can attempt to recreate 

the visual presentation of the annotation. The CAx-IF defines recommended practices for PMI 

representation [21].

5.1.1 Visual Presentation of PMI Representation

Sections 5.1.2 through 5.1.4 show three examples of how PMI representation is reported. The report 

includes a visual presentation of the semantic PMI information that can be used for visual verification of 

that information. The visual presentation should correspond to the expected PMI annotations similar to 

those on Figure 24. If the visual presentation does not look right, then the semantic PMI information 

might be wrong. The visual presentation is limited by the characters and symbols available in the 

spreadsheet. 

5.1.2 Datum Reference Frame Example

The following figures show how a datum reference frame is modeled in a STEP file. Figure 26 shows the 

datum worksheet that defines datum labels in column F. 

Figure 26: Entity worksheet (datum)

Figure 27 shows the datum_reference_compartment worksheet with information for the compartments 

of a datum reference frame. The compartments are constructed from the base attribute that refers to the

datum entity above and the modifiers attribute. The visual presentation of the compartments is shown in 

column H. The parenthetic notation in cell H3 indicates the section number in the CAx-IF recommended 

practice for PMI representation related to that information [21]. 

Figure 27: Entity worksheet (datum_reference_compartment)
 23

Figure 28 shows the datum_system worksheet with information to combine the datum reference 

compartments, defined by the constituents attribute, to create a datum reference frame. The visual 

presentation of the datum reference frames is shown in column G. 

Figure 28: Datum reference frame example

5.1.3 Dimensional Tolerance Example

The following figures show how a dimensional tolerance is modeled in a STEP file. Figures 29 and 30

shows the dimensional_characteristic_representation worksheet where information related to 

dimensional tolerances is reported. 

• Column B is the type of dimension, either dimensional_size or dimensional_location.

• Column C is a reference to shape_dimension_representation which refers to information for the 

dimension name and value.

• Column D shows the name attribute of the entity type shown in column B. 

• Column E shows the name attribute of the entity type shown in column C.

• Column F shows the dimension (length value) associated with the 

shape_dimension_representation entity in column C. 

• Column G shows the name of the length value in column F. 

• Column H shows the plus-minus bounds associated with the dimensional tolerance. The bounds 

are defined by plus_minus_tolerance entities.

• Column I shows the visual presentation of the dimensional tolerances that correspond to the PMI 

annotations in Figure 24.

• Column J shows the geometric entities associated with the dimensional tolerances. In this case, 

the association is through shape_aspect entities which refer to advanced_face entities. The 

geometry entities cylindrical_surface and plane are referred to by the advanced_face attribute 

face_geometry.

• Not shown are columns for dimension modifiers and a value to specify the number of decimal 

places for the dimension. 

The parenthetic notation in row 3 indicates the section number in the CAx-IF recommended practice for 

PMI representation related to that piece of information. For example, sections 5.1.1 (column D) and 5.2.1 

(column E) in the recommended practice specify allowable attribute values shown in those columns.

The visual presentation can be used to do a semantic analysis of the PMI representation information. The 

dimension ‘0.75’ in cell I11 appears as a basic dimension ‘(.750)’ in Figure 24. In this case, the STEP 

file is missing the dimension modifier for a basic dimension. The visual presentation of the dimension 

shows that parentheses for a basic dimension are missing.
 24

The feature count for a dimension, e.g. ‘2X’, can be derived from the number of geometric surfaces in the 

associated geometry in column J. In this example, the feature count is half the number of geometric 

surfaces. For example, the dimensional tolerance in cell I6 would have a feature count of ‘4X’ because 

there are eight cylindrical surfaces associated with it. This is confirmed in Figure 24.

Figure 29: Dimensional tolerance example (columns A-C)
 25

Figure 30: Dimensional tolerance example (columns D-J)
 26

5.1.4 Geometric Tolerance Examples

The following figures show how geometric tolerances are modeled in a STEP file. Figures 31 and 32

show the flatness_tolerance worksheet with the reconstructed visual presentation for the flatness

tolerance. 

• Column D is the magnitude of the flatness tolerance zone which is a reference to a 

length_measure_with_unit. As a convenience the value of the length measure “0.005” is also 

displayed.

• Column E is a reference to the toleranced shape_aspect.

• Columns F and G define the unit-basis size and type for the flatness tolerance. Another unit-basis 

parameter in column H is not shown.

• Column I shows the visual presentation of the flatness tolerance with the corresponding unit-basis 

and datum feature. It corresponds to the PMI annotations in Figure 24.

• Column J is the datum feature associated with the flatness tolerance.

• Column K shows the toleranced geometry associated with the flatness tolerance which comes 

from the toleranced_shape_aspect attribute in column E. The advanced_face entity references 

the plane entity.

The reconstructed visual presentation of the PMI representation is limited by the character set available in 

the spreadsheet. The flatness tolerance symbol (parallelogram) appears somewhat small and misshapen. 

The lines for the compartments of the feature control frame are not shown. The combination of the 

inverted triangle, vertical line, and ‘E’ in brackets represents the reference to datum feature ‘E’.

Figure 31: Flatness tolerance example (columns A-H)

Figure 32: Flatness tolerance example (columns I-K)
 27

Figures 33 and 34 show the position_tolerance worksheet with the reconstructed visual presentations of 

two position tolerances.

• Column D is the magnitude of the position tolerance zone. As a convenience the value of the 

length measure “0.005” is also displayed.

• Column E is a reference to the toleranced shape_aspect.

• Column F is a reference to the associated datum reference frame.

• Column G is the modifier applied to the tolerance zone.

• Column H shows the visual presentation of the position tolerances with their associated 

dimensional tolerances.

• Column I shows the dimensional tolerance, defined in Figure 30, associated with the position 

tolerance. 

• Column J shows the geometry, defined by the toleranced_shape_aspect attribute in column E, 

associated with the position tolerance.

Figure 33: Position tolerance example (columns A-G)

Figure 34: Position tolerance example (columns H-J)
 28

5.1.5 PMI Representation Summary and Limitations

As a convenience, all of the visual presentations of the datum reference frames, dimensional tolerances, 

and geometric tolerances are collected on the PMI Representation Summary worksheet shown in Figure 

35. The annotations in column C are collected from column G in Figure 28, column I in Figure 32, and 

column H in Figure 34. The annotations in column C correspond to the annotations shown in Figure 24.

Figure 35: PMI Representation Summary worksheet
 29

The reporting of PMI representation in the spreadsheet is still under development at NIST and depends on 

updates to CAx-IF recommended practices. The results presented here might change with future versions 

of the software. The reconstruction of the visual presentation of PMI representation might not correspond 

exactly to the PMI presentation modeled in the STEP file. 

The semantic association of the datum feature with a geometric tolerance is based on each referring to the 

same geometric face in the STEP file. In Figure 24 datum feature ‘E’ is associated with a surface profile 

tolerance. Datum feature ‘E’ is the surface of the tab. However, in Figure 35, datum feature ‘E’ is 

associated with two geometric tolerances shown in cells C21 and C28. Semantically both are correct 

since both tolerances refer to the same surface. There is no semantic information in the STEP file to 

indicate which tolerance the datum feature is presented with.

Sometimes the software does not find an expected association between a dimensional tolerance and a 

geometric tolerance. The association is found by each tolerance referencing the same geometric face. In 

that case, the dimensional tolerance will not be displayed above the geometric tolerance.
 30

5.1.6 PMI Representation Coverage Analysis

Coverage analysis counts the number of occurrences of a PMI element in a STEP file. Figure 36 shows 

the worksheet that is generated for coverage analysis of PMI Representation. Column A in rows 4 

through 52 contain different types of PMI elements related to geometric and dimensional tolerances and 

datums. Rows 53 through 125 are not shown and contain PMI elements related to tolerance zones and 

tolerance modifiers. The other PMI elements are shown in Figures 38 and 39. The tolerances in rows 4 

through 18 show their associated symbol. The numbers in parentheses refer to the sections in the CAx-IF 

recommended practice for the representation of PMI [21] where there is implementation guidance for that 

type of PMI element. Column B contains the number of occurrences of that type of PMI element in the 

file. Comparing the count to the number of expected PMI elements is a way to verify the PMI in the 

STEP file and resolve and modeling issues.

Figure 36: PMI Representation Coverage worksheet (rows 1-44)
 31

5.1.6.1 Color-coding Coverage Analysis Results

If a STEP file is processed that was generated from a NIST CAD model from the MBE PMI Validation 

and Conformance Testing Project [16] and the file can be recognized as having been generated from one 

of the CAD models, then the PMI Representation Coverage worksheet is color-coded by the expected 

number of PMI elements. The expected number of PMI elements was determined by manually counting 

them in each test case drawing, similar to Figure 24, for the NIST CAD models. The color-coded 

worksheet is shown in Figures 37 through 39. A similar worksheet without color-coding is shown in the 

previous section. 

If more or less than the expected number of PMI elements was found, then the first value of two is the 

number found and the second is the expected number. For example, ‘2/3’ means that three of that type of

PMI element was expected, but only two were found. Counting of some modifiers, e.g. maximum 

material condition in row 59, does not differentiate whether they appear in the tolerance zone definition or 

datum reference frame.

A legend describing the colors is in column D of Figure 37.

• Green is a match to the expected number of PMI elements. 

• Yellow means that more were found, e.g. ‘4/3’. 

• Red means that less was found, e.g. ‘2/3’.

• Magenta means that none of an expected PMI element was found, e.g. ‘0/3’.

• Gray means that a PMI element is in a test case definition but there is no CAx-IF Recommended 

Practice to model it.

As an example of how to interpret the color-coding, a required spherical radius dimension might have 

been modeled as a radius in the CAD model. In the coverage analysis worksheet, the missing spherical 

radius would appear red or magenta, while the extra radius would appear yellow.

If a test case drawing contains hole depth, counterbore, and countersink, then the cell for those is colored 

gray because there currently is no recommended practice for those PMI elements. This means that those 

types of hole dimensions are not associated with a dimension type such as diameter and radius in the 

STEP file, although the dimension value is still represented semantically. This does not affect the PMI 

presentation (graphics) for those PMI elements. 

In Figure 37, cell B34 is colored magenta because of a missing reference dimension as described in 

section 5.1.3. In Figure 38, cell B70 is gray because a dimension origin appears in the test case drawing 

but there is no recommended practice to model it in STEP.

Red, magenta, or yellow cells might mean that a CAD system or translator

• mapped an internal PMI element to the wrong STEP PMI element, 

• has not implemented exporting a PMI element to a STEP file, 

• does not support a type of PMI element, or 

• did not correctly model a PMI element defined in a test case. 
 32

Figure 37: Color-coded PMI Representation Coverage worksheet (rows 1-52)
 33

Figure 38: Color-coded PMI Representation Coverage worksheet (rows 53-100)
 34

Figure 39: PMI Representation Coverage worksheet (rows 101-125)
 35

5.2 PMI Presentation

PMI presentation presents GD&T annotations as a visual representation of geometric elements such as 

lines and arcs as part of the CAD model, i.e., how the annotation is drawn on the model. PMI 

presentation is not intended to be computer-interpretable and does not carry any semantic representation 

information although it can be linked to its corresponding semantic representation. The CAx-IF defines 

recommended practices for PMI presentation [21].

 

Figures 40 through 42 show an example of how PMI presentation is reported in the spreadsheet. The 

report for PMI presentation only contains information about the graphical elements (points, lines, colors) 

needed to display PMI annotations. PMI presentation information is always reported on the 

annotation_curve_occurrence (as in this example), tessellated_annotation_occurrence, or 

annotation_occurrence worksheets.

• Columns B, C, and D show the entity attributes.

• Column E shows the name attribute of the geometric_curve_set in column D. 

• Column F shows the element attributes of the geometric_curve_set. In this case, the elements 

refer to polyline entities. 

• Column G shows the curve_style associated with the presentation_style_assignment in column

C. 

• Column H shows the color associated with the curve_style in column G.

• Column I shows the annotation plane associated with the annotation. 

• Column J shows the geometry that the annotation is attached to. If associated geometry is 

missing then there is no cross-highlighting between the annotation and geometry.

• Column K shows the associated PMI representation entities.

• Not shown are columns for PMI presentation validation properties (section 5.3) and Saved Views.

Figure 40: PMI presentation example (columns A-D)
 36

Figure 41: PMI presentation example (columns E-H)

Figure 42: PMI presentation example (columns I-K)
 37

5.2.1 PMI Presentation Visualization

The PMI presentation annotations can also be visualized by selecting the option in the Options tab. The 

graphics for the annotations are visualized with an X3DOM file [22] that can be viewed in any web 

browser that supports WebGL [23]. The X3DOM file only contains the line segments that make up the 

PMI presentation and not the part geometry to which it is applied. The X3DOM file contains the line 

segments defined by the polylines in column F of Figure 41. Segments of annotations constructed with 

circles, instead of polylines, are not displayed. Filled characters are displayed only by their outer 

boundary and not filled. PMI presentation annotations specified by tessellated geometry are not 

displayed. 

Figure 43 is a screenshot from a web browser displaying the X3DOM file generated from the PMI 

presentation. The PMI corresponds to some of annotations shown in Figure 24. In this example, the 

annotations are assigned a random color to help differentiate them from each other.

Figure 43: Visualization of PMI presentation
 38

5.2.2 PMI Presentation Coverage Analysis

Coverage analysis counts the number of occurrences of a PMI element in a STEP file. Figure 44 shows 

the worksheet that is generated for coverage analysis of PMI presentation. Rows 4 through 33 of column 

A contain the allowable names [21] that can be associated with a PMI annotation. The names correspond 

to the values in column E in Figure 41. There is no semantic meaning associated with the names. PMI 

presentation assumes a semantic meaning through its association with a PMI representation as shown in 

column K of Figure 42.

Figure 44: PMI Presentation Coverage worksheet
 39

5.3 Validation Properties

Validation properties are an important tool to verify the information in a STEP file. For example, 

geometric validation properties are characteristics of solid and surface models, such as area, volume, and 

centroid. Geometric validation properties could be written to a STEP file when it is exported from a CAD 

system. When the STEP file is imported to a receiving CAD system, that system can compute the same 

validation properties and compare them to the values from the originating system in the STEP file. If the 

computed validation properties are within an agreed tolerance to the original validation properties, then 

the exchange of geometric information has been validated. The CAx-IF defines recommended practices 

for validation properties [24].

Figures 45 and 46 show an example of a validation properties report. The report always appears on the 

property_definition worksheet. The rows can be sorted by any of the column attributes. The validation 

properties are shown in the yellow and green columns E, G, I, K, and M. Row 3 contains the names of 

the type of value in those columns. Properties not colored yellow and green are not validation properties 

as defined by the recommended practice. The values in cells I7, I10, and I16 are cartesian coordinates. 

Empty cells E13 and E14 indicate that values for those attributes were not specified in the STEP file. If 

no values for units and exponent appear in rows K and M, then none are required based on the type of 

value in row I.

The hidden columns F, H, J, L, and N can be shown by clicking on the plus (+) signs above the columns 

or the “2” in the upper left corner. Those columns contain the entity attribute name and ID for the 

corresponding validation property value in the column to the left. Displaying the hidden columns shows 

where the validation property values come from in the STEP file. The hidden columns F, H, and J are 

shown in Figure 47. Columns L, M, and N are not shown. For example, the value in cell G4 “surface

area measure” comes from the measure_representation_item name attribute of entity ID 393. The 

expanded columns can be hidden again by clicking on the minus (-) signs above the columns or the “1” in 

the upper left corner.

Figure 45: Validation properties example (columns A-D)
 40

Figure 46: Validation properties example (columns E-O)

Figure 47: Validation properties example with expanded columns (columns E-J)
 41

6 Processing Multiple STEP Files

Processing multiple STEP files at once is an easy way to process many STEP files with only a few mouse 

clicks and to compare entity usage and coverage of PMI representation and presentation across multiple 

STEP files.

There are two ways to select multiple STEP files. The first is to use the “Open Multiple STEP Files in a 

Directory” option from the File menu as shown in Figure 9. The user can select a directory in which all 

STEP files in that directory will be processed. Subdirectories of the selected directory can also be 

searched. The other way is to select multiple individual STEP files when using the “Open STEP File(s)” 

option from the File menu. Multiple STEP files can be selected in the Open File(s) dialog by holding 

down the control or shift key when selecting files.

6.1 Summary Worksheet

When processing multiple STEP files a second spreadsheet is generated, in addition to the individual 

spreadsheets for each STEP file. The second spreadsheet contains a summary worksheet of the entities 

found in the multiple files and possible coverage worksheets for PMI representation and presentation as 

shown in Figure 48. In this example five STEP files were processed. Starting with row 10, column A 

lists all of the entity types in all five files. The entities in column A are grouped and colored according to 

the categories of entities in the Process section of the Options tab as described in section 4.4.1. Columns 

B through F contain the entity counts for each of the five STEP files. Column G is the total entity count 

for all of the files and column H is the total number of files that an entity appears in.

Row 1 is the top-level directory where all of the STEP files are located. Row 3 contains links to the 

individual spreadsheets. Row 4 contains the name of the STEP file and a link to it. The file name can 

also contain the file’s subdirectory. Clicking on the STEP file link will display it in whatever program is 

registered to display STEP files on the user’s computer. The links in rows 3 and 4 can be turned off in the 

Spreadsheet tab with the selections for Excel Options. Rows 5 through 9 contain, respectively, the file 

timestamp, software that generated the STEP file, the STEP AP from the file, the size of the STEP file, 

and the number of entities in the STEP file.
 42

Figure 48: File Summary worksheet, multiple files
 43

6.2 Coverage Analysis Worksheets

If PMI representation or presentation is found in the STEP file, then coverage analysis worksheets are 

generated. 

6.2.1 PMI Representation Coverage Analysis

Figures 49 through 52 show the worksheet that is generated for coverage analysis of PMI representation. 

The information on the worksheet is the same as described in section 5.1.6. Columns B through F refer to 

five STEP files and contain the number of occurrences of that PMI element. Column G counts the total 

number of occurrences for all STEP files that contain that type of PMI element. In this example the cells 

are color-coded, as described in section 5.1.6.1, because all five STEP files were generated from the NIST 

CAD models.
 44

Figure 49: PMI Representation Coverage worksheet, multiple files (rows 1-40)
 45

Figure 50: PMI Representation Coverage worksheet, multiple files (rows 41-78)
 46

Figure 51: PMI Representation Coverage worksheet, multiple files (rows 79-117)
 47

Figure 52: PMI Representation Coverage worksheet, multiple files (rows 118-135)
 48

6.2.2 PMI Presentation Coverage Analysis

Figure 53 shows the worksheet that is generated for coverage analysis of PMI presentation. The 

information in the worksheet is the same as described in section 5.2.2. Columns B through F refer to five 

STEP files and contain the number of occurrences of that PMI presentation name. Column G counts the 

total number of occurrences for all STEP files that contain that name. 

Figure 53: PMI Presentation Coverage worksheet, multiple files
 49

7 Crash Recovery

As explained in section 2.4, sometimes the STEP File Analyzer will crash when processing a STEP file. 

This is most likely due to either syntax errors in the STEP file or due to limitations of the IFCsvr toolkit

(section 2.2.1). If a crash occurs, one or more of the dialogs in Figure 54 might be displayed in Windows 

7. If this happens, simply close the dialog(s), restart the software, and process the same STEP file again 

by using function key F1 or F4 if processing multiple files. The software keeps track of which entity type 

caused the crash for a particular STEP file and won’t process that type again. A message will be 

displayed in the Status tab if a particular type of entity won’t be processed. 

The entity types that won’t be processed again are stored in a file *_fix.dat where ‘*’ is the name of the 

STEP file. No matter what the reason is for the crash, that file will always be generated. Even if the user 

stops the STEP File Analyzer in the middle of processing a STEP file, the file *_fix.dat will be generated. 

Therefore, the next time the software is run, the entity type that was being processed when the user 

stopped the software will not be processed. In this case, or if the syntax errors related to the bad entity are 

corrected, the *_fix.dat file can be deleted or edited.

Figure 54: Dialogs displayed when the software crashes

The software might also crash when processing very large STEP files. Popup dialogs might appear that 

say “unable to alloc xxx bytes”. In this case, deselect some entity types to process in the Options tab or 

use a User-Defined List of entities to process (section 4.4.1).
 50

If the STEP File Analyzer crashes, the user can also see which entity type caused the crash. Figure 55

shows that the software crashed when processing an annotation_plane entity. The entities of the type 

that caused a crash should be checked for syntax errors.

Another way to prevent that entity type from being processed is to deselect, in the Process section of the 

Options tab, the category of entity that contains the entity that caused the crash. That will prevent that 

entity from being processed along with all other entities of that category.

Figure 55: Which entity caused a crash
 51

8 Command-line Version

A command-line (console) version of the STEP File Analyzer is available. 

STEP-File-Analyzer-CL.exe can be run from a Windows command prompt by going to the 

Windows start menu, selecting Run, and entering “cmd”. This will open up the command prompt 

window. To run the command-line version, change to the directory where the program is located. Then 

enter the name of the program and the name of the STEP file to translate as shown in Figure 56. 

Figure 56: Command-line version
 52

To facilitate running the command-line version, the PATH environment variable can be set to include the 

directory where the command-line executables are located. A batch file can also be created to run the 

command-line executable. If the STEP file is not located in the same directory as the command-line 

executable, then the STEP file name should also include the directory pathname for the file. 

Entering the name of the program without a STEP file name will display the command-line options. The 

program will use whatever options were last used when the GUI version was run.

When the command-line version is run, feedback is provided that is similar to what is displayed in the 

Status tab (section 4.3) as shown in Figure 56.

9 References

All websites were successfully accessed in March 2016.

[1] ISO 10303-1:1994, "Industrial automation systems and integration - Product data representation 

and exchange - Part 1: Overview and fundamental principles," International Organization for 

Standardization, Geneva, Switzerland.

[2] M. J. Pratt, "Introduction to ISO 10303—the STEP standard for product data exchange," Journal 

of Computing and Information Science in Engineering, vol. 1, pp. 102-103, 2001.

[3] STEP Application Handbook, ISO 10303, Version 3, SCRA, 2006, 

https://pdesinc.org/downloadable_files/STEPapplicationhandbook63006BF.pdf.

[4] ISO 10303-21:2002, "Industrial automation systems and integration - Product data representation 

and exchange - Part 21: Implementation methods: Clear text encoding of the exchange structure," 

International Organization for Standardization, Geneva, Switzerland.

[5] R. Lipman and J. Lubell, "Conformance checking of PMI representation in CAD model STEP 

data exchange files," Computer-Aided Design, vol. 66, pp. 14-23, 2015.

[6] CAx Implementor Forum, http://www.cax-if.org/.

[7] CAx-IF Recommended Practices, https://www.cax-if.org/joint_testing_info.html#recpracs.

[8] ISO 10303-203:2011, "Industrial automation systems and integration - Product data 

representation and exchange - Part 203: Application protocol: Configuration controlled 3D design 

of mechanical parts and assemblies," International Organization for Standardization, Geneva, 

Switzerland.

[9] ISO 10303-214:2010, "Industrial automation systems and integration - Product data 

representation and exchange - Part 214: Application protocol: Core data for automotive 

mechanical design processes," International Organization for Standardization, Geneva, 

Switzerland.

[10] ISO 10303-238:2007, "Industrial automation systems and integration - Product data 

representation and exchange - Part 238: Application protocol: Application interpreted model for 

computerized numerical controllers," International Organization for Standardization, Geneva, 

Switzerland.

[11] Development of a Convergent Modular STEP Application Protocol Based on AP 203 and AP 

214: STEP AP 242 – Managed Model Based 3D Engineering, ASD Strategic Standardization 

Group, 2009, http://www.ap242.org/.

[12] ISO 10303-242:2014, "Industrial automation systems and integration - Product data 

representation and exchange - Part 242: Application protocol: Managed Model-based 3D 

Engineering," International Organization for Standardization, Geneva, Switzerland.

[13] A. B. Feeney, S. P. Frechette, and V. Srinivasan, "A Portrait of an ISO STEP Tolerancing 

Standard as an Enabler of Smart Manufacturing Systems," Journal of Computing and Information 

Science in Engineering, vol. 15, 2015.

[14] IFCsvr ActiveX Component, https://groups.yahoo.com/neo/groups/ifcsvr-users/info.
 53

[15] Industry Foundation Classes, buildingSMART, http://www.buildingsmart-tech.org/.

[16] MBE PMI Validation and Conformance Testing, National Institute of Standards and Technology, 

http://www.nist.gov/el/msid/infotest/mbe-pmi-validation.cfm.

[17] J. Lubell, "From Model to Markup," in Proceedings of the 2002 XML Conference, 2002.

[18] S. P. Frechette, A. T. Jones, and B. R. Fischer, "Strategy for Testing Conformance to Geometric 

Dimensioning & Tolerancing Standards," Procedia CIRP, vol. 10, pp. 211-215, 2013.

[19] ASME Y14.41-2012, "Digital Product Definition Data Practices - Engineering Drawing and 

Related Documentation Practices," American Society of Mechanical Engineers, 2012, New York.

[20] ISO 16792:2006, "Technical product documentation - Digital product definition data practices," 

International Organization for Standardization, Geneva, Switzerland.

[21] J. Boy and P. Rosche, "Recommended Practices for Representation and Presentation of Product 

Manufacturing Information (PMI) (AP242)," CAx Implementor Forum,2014.

[22] X3DOM, Fraunhofer IGD, http://www.x3dom.org/.

[23] WebGL Browser Support, Khronos Group, http://get.webgl.org/.

[24] J. Boy and P. Rosche, "Recommended Practices for Geometric and Assembly Validation 

Properties," CAx Implementor Forum,2014.