The Ultimate Guide to Working with STEP Files, Part 5A: Simplification Techniques for Complex Imported Geometry Imported as Multibody Parts
In Part 4 of the Ultimate Guide to Working with STEP Files series, we covered some of the most effective techniques for optimizing complex geometry imported as assemblies.
Currently, most users believe that troubleshooting and fixing the causes for slow downs caused by imported geometry is not worth doing, thinking it to be a cumbersome task that would take too long. Not true.
Many times, users decide to import each STEP files as a multibody part, for one or more or these reasons:
- They may not have read Part 1 of this series and are not familiar with which system settings control the type of the output file (assembly or part). Thus, sometimes they will get parts, other times assemblies.
- Some users prefer having all the geometry located in one part file, to simplify the file management. That makes sense if the component is purchased and will be shown as one item in the BOM.
- Most users think that one multibody part file would open faster than an assembly containing the same geometry. As we will demonstrate in this article, that is not always true.
Factors Impacting Performance
Working with SOLIDWORKS part files containing imported geometry can be challenging if the model is not optimized. The vast majority of SOLIDWORKS users report experiencing:
Long opening time for assemblies (and their drawings) containing components with imported geometry.
Unexplained lag in operations for common activities such as:
- Frequent “graphics generation” activities
- Changing configurations
- Switching windows from assembly to component and back, or from drawing to model and back
- Adding/ editing mates
- Adding drawing views
- Adding/ editing dimensions in drawings
- Navigating between drawing sheets
Long time for saving assemblies.
Increase the time of saving drawing files with detailing mode data from seconds to hours.
Currently, most users believe that troubleshooting and fixing the causes for these slow downs is a daunting task that would take such a long time to perform that it is not worth doing. We agree that an untrained user can easily go down a rabbit hole trying to “fix” such problems, with little return to the time that was invested in it.
When optimizing multibody parts containing imported geometry, the key to success is to divide and conquer while observing the law of diminishing returns.
We will analyze the first two of the most important four slow-down factors, using real-life case studies. The last two factors will be covered in the next article of this series.
As shown in Table 1, for each factor we will cover:
- Diagnostic tools and techniques
- Optimization techniques
- Return on investment (time spend fixing the problem versus the initial performance impact)
Figure 1. Slowdown factors, diagnostic tools and solutions.
To extract the results reported in this article, we used a Dell Precision 5540 with an Intel Core i7-9850H CPU and 32 GB RAM. All files have been open from a local NVME SSD.
1. Excessive Number of Face-Level Appearances
When importing a STEP file as a multibody part, the appearances that were applied to components or features in the authoring CAD software will usually be applied to faces in SOLIDWORKS.
Imagine that all fillet features in a complex part were colored yellow in CATIA. Saving this file as STEP will remove all features from the tree, preserving only the geometry. As a result, the yellow color will now be applied to individual faces.
If the number of colored faces is small (less than 1000), the impact on performance will be negligible. As more appearances are applied to faces, the slowdowns grow exponentially.
Case Study 1
For the first case study, we choose a part that has 14,076 face-level appearances (Figure 2).
Currently, in the part environment there is no easy way to determine how many faces have appearances attached to them. Fortunately, in the assembly environment, the Performance Evaluation tool has a dedicated section that could report all components that have more than 100 appearances applied to faces.
1. Start a new assembly.
2. Insert the part as a component of the assembly.
3. On the Evaluate tab click on Performance Evaluation (Figure 3).
Figure 3. Performance Evaluation.
4. Scroll down until you find the Appearance section.
5. Click on Show These Files (Figure 4).
Figure 4. Appearance Section on Performance Evaluation.
Most of the time, the appearances are irrelevant for the use case of the part. There are two simple ways to remove them in bulk:
- Remove All Part Appearances tool (Figure 5).
Figure 5. Remove All Part Appearances.
- Remove All Display States (Figure 6).
Figure 6. Remove all display states.
As shown in Figure 7, the first technique takes longer to complete, but offers the advantage of preserving all non-active displays states.
Figure 7. Comparison of appearance removal techniques.
To analyze the benefits of removing face-level appearances, we prepared the following file set:
- Original part file with 14,076 face-level appearances.
- Assembly containing only the original part file.
- Optimized part file with no face-level appearances.
- Assembly containing only the optimized part file.
The measurables are:
- Part file open time (Figure 8).
- Assembly file open time (Figure 8).
- Component load time (Figure 9 and 10), when the assembly is opened.
Figure 8. Using the “SW Open Time” Column in File Explorer.
Figure 9. Component load time using Performance Evaluation – original part with 14,076 face-level appearances.
Figure 10. Component load time using Performance Evaluation – no face-level appearances.
To better appreciate the benefits, we consolidated all the results in Figure 10 (all results are in seconds).
Many face-level appearances have a huge impact on performance. Fortunately, the diagnostic process is straightforward, the optimization technique is simple and the return on the time invested is huge.
2. Large Number of Bodies
There are typically two reasons why importing a STEP file would generate a large number of bodies:
- The original file was an assembly that was imported as a multibody part. Read Part 1 of this series of articles for more information on how to control the import output.
- The import process was not able to preserve the topology of the original bodies and, as a result, some of the bodies were split into smaller surface bodies. Many times, these surface bodies have only one face.
Considering that, internally, SOLIDWORKS treats bodies in a multibody part as individual components, the performance starts to degrade as the number of bodies increases.
The surface bodies in particular impact the performance the most, since each face is computed and accounted twice (there are two sides for each face).
Case Study 2
The case study starts with the part that was optimized in the previous exercise. This part has no face-level appearances, but contains 5,834 bodies, the vast majority of which are surface bodies.
In a large assembly, the best tool to identify parts that have a large number of bodies is Assembly Visualization by adding two columns for the Surface Body Count and Solid Body Count (Figure 12) to use as sorting criteria.
Start by using the Surface Body Count as the sorting criterion. Any component with more than 100 surface bodies should be further evaluated as a possible candidate for simplification.
In the second phase, sort by Solid Body Count and repeat the procedure.
Figure 12. Identifying parts with large number of bodies.
There are three optimization techniques for user-controlled body reduction.
For the simplification process to be time-effective, most of the work should be performed directly in the graphics area. There should be minimal (or none) interaction with the FeatureManager Tree.
Important considerations for simplifying multibody parts:
1. Most SOLIDWORKS Power-users, with extensive training and experience in advanced part modeling and surface modeling, are tempted to simplify multibody parts by using the Delete/Keep Body command.
While the Delete/Keep Body would remove the unwanted geometry, it will still retain the original information (imported features who generated the deleted bodies) in the file. Moreover, managing the deleted body set for future revisions is not straight-forward.
A better workflow involves suppressing or deleting the imported features directly. For an ultimate simplification, all the unwanted imported features are deleted from the tree, in effect simulating the import of a much simpler STEP file.
2. For the simplification process to be time-effective, most of the work should be performed directly in the graphics area. There should be minimal (or none) interaction with the FeatureManager Tree.
Ideally the workflow should be as simple as possible:
- Select features directly from the graphics area.
- Supress or delete them.
Most of the time, the users need to preserve a small number of imported features, thus the workflow above is not ideal. It would be better to:
- Select features to be preserved directly from the graphics area.
- Mark them for preservation.
- Supress or delete everything else that is not marked.
At the time of writing this article, SOLIDWORKS 2021 has good Selection Filters to allow users to select entities from the graphics area, but none of them can select features in bulk.
Figure 13. There is no Filter for Features.
Because of that, it is important to learn how to use a combination of other tools to achieve the desired result. An example of such a workflow, combining tools that were designed for other purposes to achieve this goal, is the Appearance Selection Technique described below.
2.a. Appearance Selection Technique
Earlier in this article we demonstrated how appearances can be your enemies. This time, we will show you how to use them as friendly tools to quickly:
- Mark the features to be preserved.
- Automatically create selection sets of features.
- Suppress or delete everything else.
Step 1: In the graphics area, select a face belonging to an imported feature to be preserved.
Step 2: In the context toolbar select the Appearance tool.
Step 3: Select the Feature-level appearance (Figure 14).
Figure 14. Applying appearances at feature level.
Step 4: Select a color to temporarily “paint” the selected features. Think of it as a visual marker to make this process as simple and easy as possible. In this example, we applied the orange color as a marker.
Step 5: Continue to select one face for each of the features intended to be preserved. Make sure that the appearances are applied at the feature level (Figure 15).
Figure 15. Make sure the appearance is applied at the feature-level.
Step 6: In the Display Manager, select the orange appearance. Notice that all imported features that were painted orange are now selected (Figure 16).
Note that this is how we used a tool that was designed for a different purpose to serve us as a selection for a set of features.
Figure 16. Selecting the Orange appearance, selects all orange features.
We need to suppress or delete the rest of the features. Fortunately, there is an Invert Selection tool available.
Step 7: Right-click anywhere on the empty part of the graphics area and from the Right Mouse Button menu select Selection and then Invert Selection.
Figure 17. Invert selection.
At this point the rest of the features in the tree are selected, included the front, top and right plane and the origin. The good news is that you can still suppress or delete all of them in bulk, since the major planes and the origin will not be affected.
Figure 18. The unwanted features are selected.
Step 8: Right-click on the empty space of the graphics area and select:
- Suppress, if you want to keep the original imported features in the file. This option is great if you want to create two configurations: Original and Simplified.
- Delete, for the ultimate simplification.
In this example, we will use the Delete option.
Step 9: Because the Major Planes and the Origin cannot be deleted, you will receive the warning shown in Figure 20.
Step 10: Click OK and then Yes to All.
Step 11: Feel free to delete the orange appearance.
This technique allowed us to quickly preserve the geometry of interest and remove anything that is not relevant for the use case of the part.
Figure 22. From 6,834 bodies to 7 in less than a minute.
Using the same measurables from the first case study, the results are presented in Figure 22.
Applying the law of diminishing returns, the conclusion is that we will get a good ROI when applying this technique for reducing the number of bodies.
It’s good to know that when applying colors to a large number of features using the Appearance command, you will experience a selection lag as more features are selected. At one point, the lag will be so pronounced that you will see the color being applied for a minute or more after your click.
When that happens, you can take advantage of the Paste Appearance tool:
Step 1: Apply the orange appearance to as many features as you can, before the lag becomes unacceptable.
Step 2: Exit the appearance command.
Step 3: On the graphics area, select an orange face and from the context toolbar select Copy Appearance.
Figure 23. Copy appearance.
Step 4: Select a new face that belongs to a feature you want to preserve.
Step 5: From the context toolbar select Paste Appearance.
Figure 24 – Paste Appearance.
Step 6: From the Appearance Target toolbar, select the Feature-level.
Figure 25. Make sure the appearance is applied to the feature-level.
Note that you can save even more clicks by pinning the Appearance Target toolbar and set it to feature-level. The first time you do that, an orange appearance is applied to the face you selected, so you will have to remove it before applying other appearances to features.
This works very well if you create a keyboard shortcut for the Paste Appearance command.
Figure 26. Save time using a keyboard shortcut.
2.b. Defeature Silhouette – Copy Geometry
An alternative tool is using Defeature Silhouette to achieve the same result. Unfortunately, at the time of this article, Defeature Silhouette is available only in the assembly environment. Because of that, a temporary assembly file needs to be created.
Step 1: Insert the multibody part into a temporary assembly.
Step 2: Start the Defeature command and choose the Silhouette option.
Step 3: Click the Next arrow.
Figure 27. Defeature Silhouette.
Step 4: Using the None (Copy Geometry) simplification method, select all the bodies you need preserving. Make sure you use the Body Selection field.
Step 5: Click Add Group.
Note that steps 4 and 5 can be used multiple times to create several groups. That could make selection management easier.
Figure 28. Make sure you select bodies, not components.
At this point, SOLIDWORKS will copy all the bodies you selected into a new part and will provide you with a preview of the result in a window on the right of the screen. Note that the two windows are linked, so any zooming or panning in one is replicating on the other.
Step 6: Once you are satisfied with the result, select the Next arrow.
Step 7: At this point you have two relevant options:
- Save the result to a new part file and maintain a link to this assembly.
- Create a simplified configuration in this assembly.
In this case, we will choose the option to save to a new document without linking to the original.
The geometry in the resulting file is similar to the one obtained by using the Appearance Selection Technique, but the defeatured file will be slower in operation. That is because the FeatureManager contains Defeatured features, which will require more processing than Imported Features.
The other disadvantage to using Defeature Silhouette is that the Edges and Faces IDs are not preserved. So, if the original part was already used in mates or as an external reference, the mates and relations will lose their references.
2.c. Save Selected Faces to Parasolid
This technique should be used in situations where the STEP import resulted in many surface bodies (usually 1 face/body). In situations like that, it is very hard to select all the entities that need to be deleted; it is much easier to select the entities that should be saved.
In this case, we will select individual faces. To make the selection easier, let’s use the same technique of marking the required faces using the orange appearance.
Step 1: Apply one appearance to the faces to be preserved, using a similar technique as the one described in the Case Study 2.a. Make sure the appearances are applied at face-level.
Note that if needed, you can use the Copy/Paste Appearance commands as described earlier.
The Orange appearance will act as a selection set for these faces.
Figure 32. Apply an appearance to all faces to be preserved.
Step 2: In the Display Manager select the orange appearance. All orange faces will be selected.
Step 3: Use the Save As command and select Parasolid as the file type.
Step 4: Input a file name and select Save.
Figure 33. Save as Parasolid.
Step 5: On the next dialog box select Selected face(s) and click OK.
Step 6: Import the Parasolid file. The result is a multibody part file containing only surface bodies.
Figure 35. Saving selected faces.
Note that this technique is great for extracting reference surfaces from complex imported parts. It is useful for designing tooling and fixtures.
In this article, we covered the first two factors that drastically impact SOLIDWORKS users’ performance when working with imported geometry.
In the next article in the Ultimate Guide of Working with STEP Files series, we will cover the last two major factors, which impact not only assembly performance, but especially drawings performance.
About the Author
As an Elite AE and Senior Training and Process Consultant, working for Javelin Technologies, a Trimech company, Alin Vargatu is a Problem Hunter and Solver.
He has presented 31 times at 3DEXPERIENCE World and SOLIDWORKS World, once at SLUGME and tens of times at SWUG meetings in Canada and the United States. His blog and YouTube channel are well known in the SOLIDWORKS Community.
In recognition for his activity in the SOLIDWORKS Community, at 3DEXPERIENCE World 2021 the SWUGN (SOLIDWORKS User Group Network) awarded the SOLIDWORKS AE of the Year title to Alin Vargatu.