SOLIDWORKS 2021: Circular Reference Detection

Have you ever rebuilt a model repeatedly and it still doesn’t update properly?  Or rebuilds alternate between different results? Or the performance if slow?  If so, it might have a circular reference.  A circular reference happens when the dimensions or relations in a part reference another part, and that second part also references the first part.  This phenomenon can happen when using “Top Down Modelling” which means parts are designed using the geometry of other parts, to ensure fit.  But Top Down Modelling isn’t the problem – in fact Top Down Modelling is a great way to use SOLIDWORKS, and the best practice is to use one part to drive all others, a methodology called “skeleton modeling”.  But what if you didn’t use just one part to drive all the other parts?  What if some parts have these circular references?

In SOLIDWORKS 2021, there is now a quick and easy check to see if your models have circular references.  Previously, you would need a good understanding on the references in your model, and you’d need to check the External References for each part to see if any those parts have references to other parts within the same assembly that reference the first part that interfere. Now SOLIDWORKS does that work for us!

In your assembly, simply go to your Command Manager, click on the Evaluate tab, then the Performance Evaluation.  Alternately, you could use the dropdown menu and go to Tools > Evaluate > Performance Evaluation.

You will find many useful tools in the Performance Evaluation tool under five headings:

  1. Open Performance

  2. Display Performance

  3. Rebuild Performance

  4. Settings Performance

  5. Statistics


Let’s design a very simple box with a lid.  The box is designed by drawing a rectangle on the top plane, and then it is extruded and shelled.  We add it to an assembly.  Then we add a new part in the context of the assembly and call it Box Lid.  We design the lid by converting the upper edges of the box, so if the box size changes, the lid also updates and always fits the box.  So far, so good.

Now we decide that part of the design requires a hole in the lid, and a boss will protrude from the box upward and through the hole.  So using Top Down Modelling, we edit the lid and add a hole and then edit the box and offset that hole to create a boss within the box.  Notice that they both have external references (the -> symbol next to each part).  Even though we have external references pointing from the box to the lid, and from the lid to the box, they don’t interfere with each other.  If you were to check for circular references, the Performance Evaluation tool would tell you there are none.  Again so far, so good.

But if we created a situation where two references force different results in our model, that would change things.  For example, if we (and I know you would never do this, but bear with me here)… if we edit the sketch plane for the hole and use a face on the box, and edit the sketch plane for the boss and use a face on the lid, well, things kind of blow up (CAD style, of course).  When we repeatedly press the rebuild button, the alternate results of the references supersede the other.  See the video below.  We press rebuild and get one result, then press rebuild again and get another result.



As expected we have a circular reference.  Open your Performance Evaluation tool to confirm.

You can then click “Show These Files” to see exactly which features and faces within the files have those circular references.

This is obviously a very simple example with only two parts.  Imagine a large assembly with thousands of parts, hundreds of sub-assemblies, many thousands of mates, dimensions and references, and multiple SOLIDWORKS users designing everything.  Everyone has a different style, and it can be hard to track down issues when they arise.

SOLIDWORKS 2021 makes tracking down circular references so much easier. Take a look at What’s New in SOLIDWORKS 2021 by clicking here!



Jenn Doerksen

Jenn Doerksen

Jenn Doerksen works for Dassault Systemes SOLIDWORKS, as a Sr. Industrial Process Consultant. She has been part of the SOLIDWORKS community since early 1997, when she bought her first license of SOLIDWORKS. She has a Bachelor’s of Engineering from the University of Victoria and lives with her husband and their dogs in Vancouver BC, Canada.