Skip to main content
You are here:

SOLIDWORKS Circular References and How to Find Them

In SOLIDWORKS, a circular reference can occur when two or more sketches, features, or assembly components share external references. For example, rebuilding Component1 requires rebuilding Component2, but rebuilding Component2 then requires rebuilding Component1, and so on. 

  

A circular reference can also occur in the Equation Manager when an equation is completely or partially defined by another equation (or value), which that second equation (or value) is also dependent on the first. 

Viewing graphic for circular references

What is Circular Reference in SOLIDWORKS?

A circular reference can display as a recurring rebuild symbol in the FeatureManager Design Tree. Rebuilding the assembly can cause the rebuild symbol to move from one component to another. Further rebuilds may cause the rebuild symbol to cycle back to the original component. With each rebuild, the rebuild symbol loops through all affected components. However, the rebuild symbol is typically not present if one of the affected parts is opened in a separate window. 

 

Circular references can also be displayed through rebuild errors in affected components. When one part is edited in the context of the assembly, rebuild errors may appear in some or all affected components. These rebuild errors typically disappear after exiting Edit Assembly mode. 

How to Find a Circular Reference

One of the most obvious indicators of a circular reference is a rebuild symbol that appears on a feature in the FeatureManager Design Tree and does not go away after rebuilding. This is often the best starting point for identifying where changes need to be made. 

Viewing navigation to find circular reference

Here are some recommended troubleshooting steps for assemblies and parts: 

 

  1. Run Performance Evaluation (found on the Evaluate Tab) when you first open the assembly. It can identify the potential existence of a circular reference. 
  2. Click Rebuild or press Ctrl+Q to force a rebuild. You can learn more about rebuild types in our guide SOLIDWORKS Rebuild Types and How They Work. 
  3. Look for a rebuild symbol in the FeatureManager Design Tree that does not disappear. 
  4. Examine the affected feature, sketch, or component. 
  5. Suppress sketch relations, features, or components and rebuild to determine whether the rebuild symbol disappears. 
  6. Close the model without saving. 
  7. Reopen the model and correct or remove the references causing the circular dependency. 

 

Because determining the source of a circular reference can be difficult and time-consuming, it is best to avoid creating circular references whenever possible. 

 

One of the best ways to avoid circular references during design is to use layout sketches and blocks. Changes made to these sketches and blocks propagate to all referencing features, allowing them to control external references in a predictable manner. 

 

When using layout sketches, relationships are intended so that the sketch drives downstream geometry. However, nothing prevents other assembly features from driving the layout sketch itself. Avoid this type of relationship because it can create sketches that change with every rebuild, significantly impacting rebuild performance. When using in-context relationships, establish one or more driving entities that are not themselves driven by other entities. 

Tips to Avoid Circular References

      • Avoid “daisy chaining” relationships where A drives B, B drives C, and so on. A better practice is to have A drive both B and C directly. 
      • If external references must be added to components in an assembly, attach those references to key components. These key components should not themselves contain external references whenever possible, as doing so can introduce cyclic dependencies. 
      • Avoid adding relations from a top-level component to a component within a subassembly. 
      • Avoid adding an external reference to a feature that already contains an external reference. 
      • Avoid adding external references to time-dependent assembly features such as Hole Wizard/Series holes, component patterns, and assembly cuts (extrudes, revolves, lofts, and similar features). 

 

Solving these types of issues often requires a detailed understanding of the model, design intent, and how the various references interact. 

 

You can control the display of potential circular reference warnings by navigating to: 
Tools > Options > System Options > Messages/Errors/Warnings > Circular References 

Viewing navigation walkthrough to circular reference

Circular Reference Examples

SOLIDWORKS identifies equations that exhibit characteristics of potential circular references, even when the equations do not currently violate a circular reference condition. For example, reference dimensions from a child feature driving a dimension in the parent sketch can create a circular dependency. 

 

File Download Link: QA00000112858_Potential_Circular_Reference_SW2011.sldprt 

 

Show the dimensions named: View > Hide/Show > Dimension Names  

 

Note dimensions named: D1, D2, and RD1 

Viewing dimensional names

Open the Equations dialog.

Viewing equations dialog box

D1@Sketch1 is defined by the following equation: 
D1@Sketch1″ = if(“D2@Sketch1” < 6, 10, “test”) 

 

RD1 is the corner-to-corner dimension defined by Global Variable “test”, which is a driven dimension based on the length and width of the block dimensions. When the D1@Sketch1 equation evaluates as true, everything solves correctly and D2 is assigned a value of 10. However, SOLIDWORKS still generates a warning as this is a potential circular reference depending on the equation results. 

 

Change D2@Sketch1 to a value of 6 and rebuild. The D1 value originally displays 11.9 then rebuilds to 14. Switch to the Equations Manager to understand why.

Viewing dimensional sketch rebuild

The equation now evaluates as false and enters the global variable “test”, creating a circular dependency condition. In either case, SOLIDWORKS flags the equation as a potential circular reference. 

Viewing equation flags

Rebuilding the part again continues to compound the circular reference and D1 continues to increase from the circular reference of the “test” global variable being linked to the corner-to-corner driven dimension RD1. Each subsequent rebuild will continue to grow D1 until the circular reference is resolved. 

Viewing resolved solution for circular reference

One scenario that can trigger a potential circular reference warning is the use of driven dimensions within equations. Driven dimensions depend on other dimensions and therefore have the potential to evaluate incorrectly. 

 

File Download Link: QA00000115938_Potential_Circular_Reference_SW2013.sldprt 

 

Show the dimensions named: View > Hide/Show > Dimension Names  

  1. Edit Sketch1 and note the 67.62 mm dimensions: D1, D4, and D6. 
Viewing example sketch to edit
  1. Open the Equations dialog and note the equation: 
    “D1@Sketch1” = “D6@Sketch1” 
Viewing equations dialog with equations

Dimension D6@Sketch1 is a driven dimension and is marked with a yellow warning triangle, indicating a potential circular reference condition. 

 

In this example, it is easy to see that D6@Sketch1 is driven by D4@Sketch1. It’s difficult in programming to determine which dimensions drive other dimensions. As a result, SOLIDWORKS treats D6 as potentially dependent on all dimensions in Sketch1. 

 

If D1 is defined by an equation that references D6, SOLIDWORKS considers the equation potentially circular. You can mange the warning in Tools > Options > System Options > Messages/Errors/Warnings > Circular References 

Example 3: Equation Example

The following equations contain a circular reference. Changes in the first equation affect the second equation, which affects the third equation, which in turn affects the first equation again, creating an infinite loop. SOLIDWORKS detects the circular reference and displays the equations in red. 

“D1@Sketch1@part_A.Part” = “D2@Sketch1@part_B.Part” + 2 

“D2@Sketch1@part_A.Part” = “C” – 6 

“C” = “D1@Sketch1@part_B.Part” * .5 

Summary

Circular references can be difficult and time-consuming to troubleshoot. Best practices include using layout sketches to drive design intent, avoiding “daisy chaining” dependencies, and carefully managing external references, especially in assemblies and subassemblies. Establishing clear, one-directional relationships between sketches, features, and components helps maintain model stability, improve rebuild performance, and reduce the likelihood of circular dependencies.

Technical Support

Get help from our team by Calling us at 800-364-1652. You can also get assistance by clicking the Technical Support button or the Email Our Experts button below. 

Scroll to Top