Powerful Time Saver: The Performance Evaluation Tool
Maximizing Productivity by Being “In the Flow”
For designers and engineers, CAD software such as SOLIDWORKS is their tool. Power users get in the “flow,” thinking only of the next step in the design process, and barely paying attention to how their hands are manipulating the mouse or the keyboard. The hands have been trained and know how to find the next icon in the flow, while the brain is already thinking five steps ahead to the final shape.
People are most productive when they are in the flow. The moment the flow gets interrupted, however, productivity plummets. For more information on this topic, please read this article on Jim Elliot’s Mainframe blog.
People are most productive when they are “in the flow.”
Many thanks to Scott Hamilton from Dell who distilled the findings of all these research studies on the effect of interruptions on productivity into a very simple chart (Figure 1).
The chart shows that interruption of even one second has a grave impact on productivity.
The Spinning Blue Circle of Frustration
How many times, while being immersed in the blue area of Figure 2 where you are experiencing your highest productivity using SOLIDWORKS, have you been interrupted?
Not only does interruption pause your work, but it plays havoc with your focus. You are in the middle of a revision and just finished editing a feature, are ready to move the next one—but now you must wait for the model to rebuild.
- How long? You don’t know.
- Do you have time for a coffee? You don’t know.
- What were you planning to do before the interruption? You don’t remember.
For most users, the slow-down symptoms are always the same:
- Waiting for files to Open or Save.
- Waiting for the model to Rebuild or Update.
- Operational slowdown after the file has been opened, such as lag between clicks.
While the symptoms are the same, the causes vary wildly. Pinpointing the cause of the slowdown is critical for removing the roadblock and improving productivity.
Performance Evaluation Tool
SOLIDWORKS has always has good diagnostic tools, which were significantly enhanced in the last three releases.
This article will focus on the use of the Performance Evaluation tool to troubleshoot slowdowns in parts and Assemblies. We will cover the use of this tool for troubleshooting slowdowns in Drawings in a future article.
The Performance Evaluation Tool can be accessed several ways:
Command Manager – Evaluation Tab
Performance Evaluation in the Part Environment
There are multiple factors that can make your performance suffer when working in the part environment:
- Factors affecting the opening time.
- Factors affecting the rebuild time.
- Factors affecting the graphics generation time.
At this time (SOLIDWORKS 2020) the Performance Evaluation tool at part level can help troubleshooting the factors affecting the rebuild time.
Case Study – Part Level Performance
- Download the file shown in Figure 7 (requires SOLIDWORKS 2020).
- Perform a force rebuild by holding down the “CTRL” key and pressing “Q.”
- You will notice that the rebuild time is long. As long as the blue circle keeps spinning, you cannot control SOLIDWORKS.
4. Start the Performance Evaluation tool (Figure 8).
Be aware that the total rebuild time will depend heavily on the hardware specs of your machine, especially the speed of the primary CPU core.
Analyzing the report, it becomes clear that waiting for almost one third of a minute for a complete rebuild is frustrating. The impact on performance becomes even more acute if this part would have multiple configurations related to overall dimensions defining the first feature in the FeatureManager tree.
The FeatureManager tree and the information showed in Figure 8 are critical for identifying ways to significantly reduce the rebuild time:
- The author built the model with conventional solid modeling features like Base-Extrude and Cut-Extrude.
- Once the shape was defined, the model was converted to Sheet Metal using the Insert Bends command.
- The Performance Evaluation report lists the Process-Bends1 as the most time-consuming feature in this model. This feature is a by-product of the Insert Bends command.
Features that create complex geometry should be located at the end of the tree.
Further examining the FeatureManager tree, it becomes clear that the author of this model has not followed all the best practices of modeling. One of the most important modeling principles states that features which create complex geometry should be located at the end of the tree. That is because the rebuild process is sequential. Each step/feature needs to be computed before the next gets created. When new features need to modify complex geometry, each step takes longer to compute.
Knowing this principle, the solution is simple. The features which create the biggest number of faces and edges are the two linear patterns: LPattern1 and, especially, LPattern2.
Let’s move LPattern2 to the end of the tree and measure the improvement in the rebuild time.
The overall rebuild time is now 2.41 seconds, which is only 13% of the original. That is 8 times faster than the original!
Could this number be reduced further? Let’s move as many features creating cuts after the Process-Bens1 as we can. The improvement is marginal, 2.00 second. That is 9 times faster than the original.
Note that in addition to reporting rebuild times in seconds as a percentage of the overall rebuild time, the Performance Evaluation at the part level provides useful information about the number of Features, Solid Bodies and Surface Bodies.
Performance Evaluation in the Assembly Environment
When troubleshooting assembly performance, it is critical to understand how SOLIDWORKS processes information during the opening and rebuild operations. Figure 12 describes the major steps of these processes.
Similar to the factors affecting performance in the part environment, it is important to identify the following factors when working with assemblies:
- Factors affecting the opening phase.
- Factors affecting the rebuild phase, which is composed of the modified components update phase, mating scheme computing phase (includes the computation of top level mates, and mates inside flexible subassemblies) and in-context features rebuild phase (which includes the computation of Top-Level Assembly Patterns, Assembly Features and In-context features inside components).
- Factors affecting the graphics generation phase.
Currently, in SOLIDWORKS 2020, the following data is reported in the Performance Evaluation in the Assembly Environment:
- Open Summary
- Details of the Open Document File:
- Previous Version References
- Modified on Open
- Graphics Triangles
- Shaded Image Quality for parts with Very High and Medium High image quality settings.
- Display Speed
- Components Far from Origin
- Assembly Rebuild Report, including Full rebuild time, Assembly rebuild pass(es) and Component(s) rebuild (Rebuild assembly features)
- Generating Graphics
- Verification on Rebuild
- Large Assembly Settings
Let’s see how to use all this information to improve performance, using a real-life case study.
Please use the file set located in this zip file if you want to follow the next steps (requires SOLIDWORKS 2020 or newer).
- Open the Full_Grill_Assembly document in the Default configuration.
- Start the Performance Evaluation Tool.
1. Open Performance
1.1. Open Summary
The Open Summary contains a list of messages that appear during assembly opening:
- Dismissed warning
- Dismissed errors
- Components that could not be found or opened
- Other information
Note that in our case no such messages appeared, so this section is not present in our report.
1.2. Detail of the Open Document File
Reports the amount of time it took to load the data for each component in the RAM, reported in seconds. Note that components that took less than 0.1 second to load are not listed.
Components can be opened directly from this list, by using the open button highlighted in Figure 14. This is a great shortcut for focusing on the components that contribute the most to the slowdown in the opening phase.
For the whole list of components, select Show These Files (Figure 15).
The result is a list containing all files, which is much easier to manipulate (Figure 16).
The list can be saved or copied in the memory. For long lists, the content can be pasted into Excel, to take advantage of advanced sorting tools.
This list is very useful if multiple files need to be opened simultaneously. Simply CTRL+Select all of them and click Open, Figure 17.
All selected files are opened, as seen in Figure 18.
1.3. Previous Version References
When SOLIDWORKS loads components saved in older versions, it needs to perform a time-consuming convert-to-new-version operation. Moreover, as we demonstrated earlier this year, the slowdown becomes critical when the old component has multiple configurations. For more information in this regard, please read the article Large Assemblies Open Faster Than Ever in SOLIDWORKS 2020.
In this case, 35 documents are saved in an older format. It is typical that library parts are saved in read-only folders. If that happens it might be a good idea to provide the list of these components to your CAD Admin, to be upgraded to the current version.
For that, select Show These Files (Figure 20).
It is worth noticing that this list (Figure 21 and 22) adds an extra button – Isolate Components – compared to the one shown in Figure 17.
1.4. Modified On Open
This is a very important tool for identifying “dirty components.” i.e. the ones which cannot be fully rebuilt. If you save the assembly and then re-open, any component listed here should be analyzed to understand why it requires an update during opening of the top-level assembly.
Click Show These Files, then select all and click Isolate to show the components that have been modified on open.
At this point, let’s save the assembly and re-open it to see if any component still gets modified during opening.
After opening the saved assembly, three subassemblies are still getting modified:
It is not in the scope of this article to cover the troubleshooting process for “dirty components.” If you encounter such situations, use this link for more information.
In this case the culprit was the presence of the old format of cosmetic threads in various components of the assembly. The solution was simple: Upgrade all the cosmetic threads in bulk.
2. Display Performance
2.1. Graphics Triangles
The number of Graphics Triangles directly impacts the time needed for the last phase of the open/ rebuild process, which is the computation of the Graphics Data.
SOLIDWORKS reports all components with more than 10,000 graphics triangles. If one component has multiple instances, the reported number is the total of their graphics triangles.
If the user wants to open one or more files at the same time, the techniques listed in the previous steps apply.
2.2. Shaded Image Quality
The Image Quality setting in each document has a direct influence on the number of graphics triangles. There are multiple ways to control this number, some of which are covered in the article #TASK, The Best Macro Batch Processor for SOLIDWORKS.
In our assembly, there are two parts with medium high image quality setting and 13 parts with very high image quality setting.
Parts with very high image quality have the slider set at 80% or greater. Parts with medium-high image quality have the slider set at 60% – 80%.
The same controls as before are available (Figure 31).
Note that the Tessellation Number varies between 1 and 176, being directly proportional with the position of the slider from Figure 29.
Especially for files with imported geometry, many appearances could be applied at face level. When that number is above 1,000, the performance is greatly impacted, especially in phases 1, 2 and 5 (loading components, updating components and calculating graphics data).
In our case, one file has 11,156 appearances.
Upon opening the part, it becomes clear that thousands of faces have appearances assigned (Figure 34).
There are two ways to remove these appearances in bulk:
- Remove All Part Appearances (Figure 35).
- Delete All Display States (Figure 36).
Let’s remove all appearances, save all files and re-open the assembly to notice the improvement in opening performance.
Comparing to the result from Figure 13 (1.91 second) with the one shown in Figure 37 (1.23 second), we reduced the opening time by 34%, just by reducing the number of appearances at face level in one part.
3. Rebuild Performance
The number of mates that are computed at the top-level assembly is high for such a small assembly. There is a lot of potential for reducing it by restructuring the assembly in sub-assemblies.
3.2. Assembly Rebuild Report
This is a great tool for understanding what components and features are modified when the assembly rebuilds.
It is also the only way to obtain the amount of time required for computing the graphics data.
Looks like our efforts in the previous steps ensured that we have a “clean” assembly. That means no component and future rebuild or mate re-calculations are required when the top-level assembly gets rebuilt.
4. Settings Performance
4.1. Verification on Rebuild
The Verification on Rebuild controls the level of checks that SOLIDWORKS applies when new faces are created during the part rebuild process.
If the Verification on Rebuild box is:
- Checked – each new face is checked for topological validity against all the existing faces in the part. For complex parts, this can increase the rebuild time by a factor of 0.3 to more than 10.
- Unchecked – each new face is checked for topological validity against the faces with which shares edges or vertices.
In our case, this setting is on, so unless we open the assembly in Large Assembly Mode, our performance will degrade.
4.2. Large Assembly Settings
It informs the user if the current assembly meets the threshold established in System Settings for automated opening in Large Assembly Mode.
It is worth noting that the Large Assembly Mode can be set to uncheck the Verification on Rebuild automatically, when that threshold is met.
This information is very valuable for applying best practices in regard to:
- Structuring the assembly for improving mating performance
- Troubleshooting cases of slow-down due to improper structured flexible assemblies (this will be the topic of a future article).
Last but not least, at the bottom of the Performance Evaluation window there are five very useful buttons.
The first one is a shortcut for opening the Assembly Visualization tool which was covered in detail in the article The X-Ray Machine for SOLIDWORKS Assemblies.
The Performance Evaluation is an excellent tool for troubleshooting parts and assemblies performance. A future article will cover the use of this tool for troubleshooting drawings performance.
For a more in-depth information on how to use this tool, please watch this video.