The Ultimate Guide to Working with STEP Files, Part 3: Geometry Comparison for Revised STEP Files

This is the third article of the Ultimate Guide for Working with STEP File Series.

The previous articles covered these topics:

Part 1: The Battle of Two Import Engines – Quality and Speed:

  • Selecting the Import Engine available in a standard installation of SOLIDWORKS, between Traditional Import Engine (TIE) and 3D Interconnect (3DI).
  • Import quality comparison between the two engines.
  • Import speed comparison between the two engines.

Part 2: Working with Revised STEP Files:

  • Robustness of design changes originating from STEP files (comparison between the two engines), including correct geometry updates and maintaining edge and face IDs for preserving downstream references such as features related to the existing geometry and mates referring existing geometry (faces and edges).

Both articles contain benchmark data, identify bottlenecks and propose viable workarounds.

They also contain a list of SPRs that you can vote on to significantly improve the functionality of the software.

As mentioned in the previous articles, the amount of time SOLIDWORKS users spend working with STEP files varies based on how tightly they are integrated in a supply chain using multiple CAD solutions.

As the design is being iterated, a third party (customer or vendor) will revise the model and send new STEP files for each revision. A critical step for the SOLIDWORKS user is identifying any changes between revisions regarding:

  • Geometry
  • Location
  • Orientation
  • Metadata

Matching the Tool and the Task

The type and quality of the information accompanying a revised STEP file determine which tools and techniques the SOLIDWORKS user would choose to identify the differences between revisions.

Based on our experience of working with hundreds of customers who work daily with revised imported geometry, the difference in productivity can be measured in hours when the correct technique is used. Even more important, by precisely identifying revision changes, the danger of manufacturing defective products is drastically reduced.

If you have good communication with the company who revised the file, they will tell you what the changes are, either verbally or:

  • documented in the drawing revision block.
  • as metadata in the STEP file.
  • in writing in an email or other document.

Most of the time, SOLIDWORKS users get a revised STEP file, with no other information about what has changed, and are being told to just “Use it!”

Regardless if you are one of the lucky ones or not, it is still critical to confirm the changes. If you are lucky enough to receive the STEP file along with the corresponding 2D drawing in PDF format, it will most likely include a warning like the one shown in Figure 1.

Figure 1. The STEP file rules!

This means that no matter how much other information is included in the revision package, the onus is still on the SOLIDWORKS user to identify changes between the existing and the revised model.

The extra information is helpful to streamline the comparison process, allowing the user to select the optimal analysis tool for getting the job done (see Figure 2).

Figure 2. Tools and Techniques for Comparing STEP Revisions.

It is important to point out that, while the tools listed in Figure 2 can be used individually, they are most effective when they are paired together in a multiphase approach, to streamline the comparison process.

The following case studies will demonstrate several ways to incorporate these tools in the comparison process.

Case Study #1: Large Assembly Revision (no other information from the vendor)

In this case, the only information we received from the vendor was the revised STEP file. We do not know what has changed.

To save time, we will start by using the first tool listed in Figure 2, the Mass Properties.

Step 1. Import both STEP files in SOLIDWORKS using TIE (to save time for the import operation).

Figure 3.

Step 2. Activate the Engine Rev. 1 window.

Step 3. Access Mass Properties and copy the results to the Clipboard.

Unfortunately, the results do not have an optimal format for pasting into Excel with numbers in individual cells. That being said, we still prefer using Excel for analyzing the differences.

Step 4. Paste the results in a new Excel document in Sheet1.

Step 5. Activate the Engine Rev. 2 window.

Step 6. Access Mass Properties and copy the results to the Clipboard.

Step 7. Paste the results in Sheet2 of the Excel file.

Step 8. Compare the values from the two sheets following the procedure listed below (with credit to Svetlana Cheusheva, who wrote How to Compare Two Excel Files for Differences).

Step 9. Open a third sheet and enter the following formula in cell A1:

=IF(Sheet1!A1 <> Sheet2!A1, “Sheet1:”&Sheet1!A1&” vs Sheet2:”&Sheet2!A1, “”)

Step 10. Hold down the CTRL key and drag the fill handle to all cells you can see.

Step 11. As you can see in Figure 4, the formula compares two sheets, identifies cells with deferent values and displays the differences in the corresponding cells.

Figure 4.

How to Read the Report from Sheet3

The cells listed in Sheet3 highlight these differences in the Mass Properties report:

Figure 5.

Since the mass, volume and surface area are unchanged, we can trust that the number and geometry of all components of the assembly have not changed.

The changes in the center of mass position are enough to indicate that some components have shifted their position and/or orientation, but we do not know yet which components have changed and how.

From here we have several options to identify which components have moved. One of the techniques takes advantage of the fact that Mass Properties can exclude hidden components. That allows us to design a recursive workflow for identifying the changes.

Warning: Please be aware that this process can be time consuming (and boring). Attention to detail is critical.

Before starting this process, it is important to understand if the assembly structure has been preserved or not:

  • If the component names and their distribution in subassemblies has not changed, we can use the FeatureManager tree for the next steps.
  • If the component names and/or the assembly structure has changed, we will use Assembly Visualization for the next steps.

A preliminary step for comparing the assembly structure uses Performance Evaluation:

Step 12. Activate the Engine Rev. 1 window.

Step 13. Start the Performance Evaluation.

Step 14. Copy the highlighted data and paste it in Sheet1 of a new Excel spreadsheet.

Figure 6.

Step 15. Activate Engine Rev. 2 window.

Step 16. Start the performance evaluation.

Step 17. Copy the highlighted data and paste it in Sheet2 of the Excel spreadsheet.

Step 18. Repeat the technique demonstrated in Steps 8 to 11 to compare the data from the two sheets.

In this case, the data sets match. We have the same number of part and subassembly components and the same assembly depth.  Let’s dig deeper and compare the bill of materials.

Step 19. Activate the Engine Rev. 1 window.

Step 20. Insert an indented BOM with detailed numbering.

Figure 7.

When prompted, we recommend selecting the Notes Area for the placement of the BOM. That will make the BOM static on the screen, independent of the viewport manipulations.

Figure 8.

In this case, the BOM is huge. Asking a human operator to compare it with the one from the Engine Rev. 2 assembly would be counterproductive. Fortunately, we know now how easy is to compare the data from different Excel Sheets.

Step 21. Save the table to a new Excel Spreadsheet.

Figure 9.

Step 22. Activate Engine Rev. 2 window.

Step 23. Insert an indented BOM with detailed numbering.

Step 24. Save the table to a new Excel Spreadsheet.

Step 25. Copy the content of the second Excel file into Sheet2 of the first file.

Step 26. Repeat the technique demonstrated in Steps 8 to 11 to compare the data from the two sheets.

In our case, there are no differences between the two data sets. That confirms that the assembly structure has not changed.

So far, the investigations determined that:

  • The assembly structure was preserved.
  • No component has been removed or added.
  • No geometry has been modified.
  • The position and/or orientation of some components has changed.

Knowing this, we can confidently use the Feature Manager tree in the next steps. As an optional step, you can now delete or hide the BOMs from both documents.

Step 27. Activate Engine Rev. 1 window.

Step 28. Select the upper half of the tree (you do not have to be precise). Note the last component selected.

Step 29. Optional: Save a selection set.

Step 30. Hide the components selected.

Figure 10.

Step 31. Activate Mass Properties. Make sure that the Include hidden bodies/components box is unchecked.

Step 32. Save the results in Sheet1 of a new Excel Spreadsheet.

Step 33. Activate the Engine Rev. 2 window.

Step 34. Select the same components you selected in Engine Rev. 1.

Step 35. Optional: Save a selection set.

Step 36. Hide the components selected.

Step 37. Activate Mass Properties. Make sure that the Include hidden bodies/components box is unchecked.

Step 38. Save the results in Sheet2 of the Excel spreadsheet.

Step 39. Repeat the technique demonstrated in Steps 8 to 11 to compare the data from the two sheets.

In this case, there are differences between the two data sets.

The next steps involve further refining the data to be compared by successively hiding half the visible data and repeating steps 27 to 39.

After all this work, it became clear that the engine components were not essentially changed, just saved with the crankshaft (and all related components) in a new position.

Figure 11.

What if the assembly structure was changed or components renamed?

In this case, we can no longer use the FeatureManager Tree to select in bulk corresponding components simultaneously in both assemblies.

This is when Assembly Visualization comes to the rescue. You can read more about the use of this tool in the article The X-Ray Machine for SOLIDWORKS Assemblies.

Since the names and/or the positions in the tree do not match, Assembly Visualization allow us to order components based on Volume and Surface Area. Steps 1 to 11 demonstrated that the geometry has not changed, so these two measurables can be used to sort the components in the tree.

To save time, you can use templates as shown in the article mentioned above.

Step 40. Format your template as shown in Figure 12, with the volume as the primary sorting criterion and surface area as the secondary sorting criterion.

Figure 12.

The result is shown in Figure 13.

Figure 13.

At this point, the components are sorted in the same order in both assemblies. That makes the use of the two rollback bars (top and bottom) possible for repeating the recursive process described above.

Figure 14.

As mentioned earlier, this is a very laborious process, but it is one that provides guaranteed results.

The investigation in our case demonstrated that the components are identical, and no material change was performed. It was decided to continue the use of Engine Rev. 1 model in production.

Case Study #2 – Large Assembly Revision (no other information from the vendor)

In this case, the only information we received from the vendor was the revised STEP file. We do not know what has changed. The file received is named Engine Rev. 3. We will compare its model with the one from Engine Rev. 1

The preliminary phase remains the same. We will follow steps 1 to 11 from Case Study #1 to get a rough reading of what has changed.

This time it became clear that the mass, volume and surface area have changed, indicating changes in component geometry.

Figure 15.

Fortunately, this is much easier to troubleshoot using Assembly Visualization.

For that, let’s use the same Assembly Visualization template with columns for volume and surface area, in flat view.

In essence we will repeat Step 40 to extract the relevant data from the files.

Figure 16.

Step 41. Save the data from each file in Excel spreadsheets.

Figure 17.

Step 42. Select Parts Only and uncheck Exclude hidden components (unless you know that hidden components can be ignored).

Figure 18.

Step 43. After consolidating both files into two sheets of the same Excel spreadsheet, repeat the technique demonstrated in Steps 8 to 11 to compare the data from both sheets.

In this case, there is one difference between the two data sets in row 19.

Figure 19.

Step 44. A quick check of Sheet1 or Sheet2 reveals the changed part.

Figure 20.

Thus, using Assembly Visualization quickly revealed which component was changed.

Figure 21.

Now, let’s find out what differences are between the two revisions of this component.

As long as the parts are 3D Interconnect objects, we cannot open them in their own window. Unfortunately, the whole assembly needs to be unlinked from the STEP file.

Step 45. Dissolve the link between each of the assemblies and its STEP file.

Figure 22.

Notice how the 3DInterconnect icons disappeared from the FeatureManager tree:

Figure 23.

Let’s consider the comparison of these two parts a distinct case study.

Case Study #3 – Comparing Two Unibody Parts Using Manual Boolean Operations

Step 3.1. Open Housing Rev. 1 part file.

Step 3.2. Use the Insert Part command to insert the solid body of the Housing Rev. 3 part file in the existing part.

Figure 24.

Make sure the only box checked is Solid bodies.

Figure 25.

Some users may prefer to use a sequence of three Combine commands to understand the difference between the two parts:

  1. Subtract Rev. 3 from Rev. 1 and study the result.
  2. Subtract Rev. 1 from Rev. 3 and study the result.
  3. Obtain the common space occupied by the two solid bodies and study the result.

Fortunately, for simple cases like this, the Intersect operation can provide the same results in one study.

Step 3.3. Start the Intersect operation.

Step 3.4. Press CTRL+A to select all available bodies.

Figure 26.

Four different regions are identified.

Step 3.5. Study the preview once the larger region is selected for exclusion. Notice the three smaller regions that represent differences between the two bodies.

Figure 27.

Step 3.6. Uncheck all regions, uncheck the Merge result and select OK. This way each region will create a separate solid body.

A quick analysis determines that Rev. 3 has bigger values for two of the chamfers and adds material to one of the pockets.

Figure 28.

Figure 29.

For an alternative solution, let’s use Compare Geometry.

Case Study #4 – Comparing Two Unibody Parts Using Compare Geometry

Compare Geometry can automate the comparison process, especially for parts that import with topological errors, resulting in many surface and solid bodies.

As per the SOLIDWORKS Help file, Compare Geometry , compares two parts (or two configurations of the same part) and identifies differences between two versions of the same part. Compare Geometry can perform both a volume comparison and face comparison.

For assemblies, you can compare geometry only in volumes, and for surface models you can compare geometry only in faces.

When you compare volumes, you can display volume common to both versions, and material you can add or remove from either version. Different colors highlight the variations between the reference and modified model in the graphics area.

You can save comparison volumes in the reference document, in the modified document or in both. You can then use Intersect to merge any combination of the added and removed volumes into the reference or modified model.

When you compare faces, you can display faces common to both versions, faces that have been modified between versions, and faces that are unique to the versions. The face types are highlighted in different colors. You can save the documents with colors highlighting the common, unique and modified faces.

As we will read later in the article, in order to see these colors, especially when they are assigned to internal faces, the model has to be pre-processed following a specific workflow.

Known Limitations of Compare Geometry

  • Compare Geometry treats each solid as a single entity. It does not compare the features of the parts and cannot point out differences in feature parameters. This is not needed anyway for imported geometry.
  • When comparing analytic faces (planes, cylinders, spheres and so on) the equations of the underlying surfaces are used. However, with spline faces, a discrete sampling technique is used to compare the equality of the underlying spline surfaces. Under certain circumstances, the comparison of spline faces may give inaccurate results.
  • The volume difference computation for parts containing a large number of spline faces may occasionally fail. You can turn the volume comparison option off for parts containing a large number of spline faces.
  • If the faces are sliver faces or have very small areas, the results for unique and modified faces may be incorrect.
  • If FeatureWorks is installed on your machine and you open a part without parameterized features, the following occurs:

FeatureWorks displays a dialog box that asks if you want to proceed with feature recognition for the imported part. Click No.

If you click Yes, which starts feature recognition, do not click Run Comparison in the Compare Features Task Pane. Running the two simultaneously can have undesirable results.

  • Compare Geometry requires that the two parts (or assemblies) are in the same position with respect to the origin. If one of the parts (or assemblies) has been moved, the results may be incorrect. Select Align parts to compare geometrically similar bodies located in different positions, relative to the origin.

To illustrate the functionality of the tool, let’s start with a simpler case, using the same files processed in Case Study #3.

Step 4.1. Open Housing Rev. 1 part file.

Step 4.2. Start Compare Geometry.

Step 4.3.Set the Compare Geometry Options. First set units and precision.

Figure 30.

Step 4.4. Select the Geometry tab.

Step 4.5. Select the General secondary tab. For simple parts like these, check all three boxes.

Figure 31.

Check documents before Compare Geometry verifies the geometry of both parts before starting the comparison. When selected, SOLIDWORKS Utilities runs the SOLIDWORKS Check function to find invalid surfaces and edges. If either part fails the check process, a dialog box appears that asks for confirmation to proceed with the comparison.

Perform face comparison calculates the number of unchanged, unique, and modified faces. The results are shown in the Compare Task Pane on the Compare Geometry result tab.

During face comparison, the Compare utility compares the position of vertex coordinates and some surface points of face pairs. Vertices or points that lie within a specified position tolerance are considered identical.

Perform volume comparison calculates the material removed or added, and common volume at the end of the comparison. The results are shown in the Compare Task Pane on the Compare Geometry result tab.

As we will demonstrate later in this article, for parts with complex geometry or a large number of surface bodies, do not perform the volume comparison. It will either fail or will take a huge amount of time.

Step 4.6. Select the Color secondary tab.

Figure 32.

Colors highlight the related model entities displayed in the graphics area. To modify the color used for items, select an item from the list, click Edit to open the Color palette, and set the color. Colors are applied to the models after the Compare utility has run.

Step 4.7. Optional: If you want to generate an automatic report, you can select what views to be included in the HTML file of the report.

Figure 33.

Step 4.8. Close the Settings dialog.

Step 4.9. Select the parts to be compared. Note that you can align them based on custom coordinate systems, if needed.

Step 4.10.  Run Comparison.

Figure 34.

Step 4.11.  Study the results. Select Volume comparison with the Material to Add and Material to Remove turned on.

Figure 35.

Material removed is material removed from the reference part (or assembly). Material added is material added to the reference part (or assembly).

Optionally, select Keep bodies on close in the Task Pane. Choose whether you want to save the comparison volume bodies with the reference document, with the modified document, or with both. When you close the Compare Task Pane, the document remains open so you can save it.

Step 4.12.  Study the results. Select Face comparison with the Unique Faces turned on.

Figure 36.

Note that only one type of face can be displayed at any time.

Step 4.13. Optionally, save the report. Note that in this case Volume comparison provides more relevant data.

Figure 37.

Step 4.14.  Name the file and select its location. The report can also be added to the Design Binder of the reference part.

Figure 38.

The report is shown in Figure 39.

Figure 39.

Case Study #5– Comparing Complex Multi-Body Parts Using Cut List Functionality

While Compare Geometry is very powerful, it is also very slow for parts with a large number of bodies and complex geometry.

Fortunately, the Cut List functionality allows users to quickly identify solid bodies with similar geometry.

In this case, we need to compare a revised model of a part containing 348 complex bodies originating from a STEP file.

Step 5.1. Open the original multibody part.

Step 5.2. Add a Weldments feature (in order to turn on the Cut List functionality).

Figure 40.

At this time, bodies with identical geometry are grouped together under a cut list item.

Figure 41.

Step 5.3. Make a note of the number of the last cut list item in the list. In our case, this is number 84.

Figure 42.

Step 5.4. Insert the solid bodies of the revised part file. Note that it does not need to be inserted in the origin.

At this point, all the unmodified bodies should be added to existing cut list items. New or modified bodies will be added to the end of the cut list.

Figure 43.

Step 5.5. Let’s isolate the new bodies.

Figure 44.

The result is shown in Figure 45.

Figure 45.

To identify the unique components from the original file, repeat the process by inserting the old file into the new one.

While this procedure does not show how much the parts have changed, it can be used as a fist step to identify the changed bodies. Once that is completed, the rest of the bodies can be deleted, and the changes can be found using either Boolean operations or the Compare Geometry Tool.

Case Study #6 – Comparing complex multi-body parts using Compare Geometry

When comparing complex multi-body parts, it is important to know that:

  1. Volume comparison should be avoided during the first iteration of the comparison.
  2. Unique internal faces will not be obscured by the other geometry once Compare Geometry is closed.

Fortunately, the second problem can be overcome using this procedure.

Step 6.1. Open a copy of each part file. The recommendation to make copies of the original files is related to the manipulation of the appearances needed during pre-processing. The copies will be used only for the comparison process.

Apply Steps 6.2. and 6.3. to both the original and the revised multibody part.

Step 6.2. Remove all appearances by deleting all display states.

Figure 46.

The result is almost instantaneous.

Step 6.3. Expand the Display Pane and make the part transparent.

Figure 47.

This way, when the Face Comparison process is completed and you exit the comparison, the modified faces will remain highlighted in the model.

Step 6.4. Run Face Comparison and close the tool.

Note that for very complex parts, you will not be able to quickly see the colored faces. Fortunately, they have a face-level appearance applied to them, which makes them easy to select from the Appearance Manager.

Figure 48. It is not easy to spot the modified faces after Compare Face is run.

Step 6.5. Select the face level appearance(s). That will select all faces listed under those colors.

Figure 48.

Step 6.6 Right click in the empty part of the graphics area and select Isolate.

Figure 49.

Step 6.7. The bodies containing the face level appearances are isolated, thus revealing the changes in the new revised file.

Figure 50.


This article demonstrated several powerful techniques for streamlining the task of comparing differences in geometry, location and orientation between models originating from STEP files.

The most important takeaway is learning how to match each technique with the type of files you need to compare. The fastest results are achieved by employing several techniques in a specific order, as demonstrated in the six case studies presented in this article.

Based on our experience of working with hundreds of customers who need to work with revised imported geometry, the difference in productivity can be measured in hours, when the correct technique is used. Even more important, by precisely identifying revision changes the danger of manufacturing defective products is drastically reduced.

To be continued in:

Article #4 – Simplification Techniques for using Complex Imported Geometry in Large Assemblies

Learn more about SOLIDWORKS and part design with the whitepaper Simulation-Driven Design Speeds System-Level Design and Transition to Manufacturing.

About the Author

As an Elite AE and Senior Training and Process Consultant working for Javelin Technologies, Alin Vargatu is a Problem Hunter and Solver, and an avid contributor to the SOLIDWORKS Community. He has presented 25 times at SOLIDWORKS World, once at SLUGME and tens of times at SWUG meetings organized by four different user groups in Canada and one in the United States. Alin is also very active on SOLIDWORKS forums, especially on the Surfacing, Mold Design, Sheet Metal, Assembly Modeling and Weldments sub-fora. His blog and YouTube channel are well known in the SOLIDWORKS Community.

Recent Articles

Related Stories

Enews Subscribe