When working on a large assembly that many users have access to and edit, or you send an assembly or drawing file to a colleague, there is a chance you can see the following warning:
This warning means that a part or sub-assembly being referenced by an overhead assembly or drawing file has been moved, renamed, or even deleted and now SOLIDWORKS cannot find the part. Understanding the search routine that SOLIDWORKS performs to find a parts can help reduce the chance of replacing important parts, or explain why your assembly opened up with a different projects parts. But what is the order SOLIDWORKS uses to find a part to help pin-point where the reference broke?
The search routine for SOLIDWORKS, done every time you open an assembly or drawing that references a part, is as followed:
1. Search in memory for a document
2. Search in specified File Locations that have been added in Tools/Options/File Locations
3. Search recursively near paths specified in step 2
4. Repeat step 2/3 for all designated File Locations
5. Search in the last known saved location
If all the above steps have been done and the part still cannot be found, you will be asked to browse to the part manually.
Search in memory
The first place SOLIDWORKS will look for a reference document is within the computers RAM, which is whatever files are opened at the moment. This often causes problems if you have a part opened with the same name than the one being referenced by an assembly or drawing.
Example: If you open an assembly that references a file named DOOR.SLDPRT but currently have a part with the same name opened, used for another assembly or project, then SOLIDWORKS will give you a message that states “the Internal ID’s are different, would you like to use it?” You can then choose to replace the DOOR.SLDPRT being referenced with the file opened or continue to open the correctly referenced ones.
Search in specified File Locations
The next place SOLIDWORKS will look for a file is in whatever folder that's listed as a reference folder in the systems options File Location section. To view your referenced documents go to Tools -> Options -> File Location, you can then click "Add" to browse to a folder and add it as a Referenced Document folder.
Example: You open an assembly that references a part named DOOR.SLDPRT. If you happen to have a file named DOOR.SLDPRT, regardless of its intended assembly, it will use the DOOR.SLDPRT within the Referenced Document folder. SOLIDWORKS will also look into sub-folders of the referenced document for the parts as well, not just the folder specified in the Systems Options.
As a warning, you do not receiving the Internal ID warning message if the referenced document has the incorrect part file, it will just open the assembly with whatever part is in there.
Search recursively near paths (last path used by the assembly or drawing)
This is where SOLIDWORKS usually starts to look for a part file being referenced. The assembly or drawing will look within whatever folder it currently resides in for the referenced parts. This is what the pack-and-go feature takes advantage of when sending files, it places the assembly or drawing and all referenced parts into a single folder that is sent off.
Example: You have an assembly and references 3 part files, one named DOOR.SLDPRT, all in the same folder. If you remove the original DOOR.SLDPRT file from the folder and replace it with another part with the same name it will reference the new one instead of the original that use to be in the same folder. All other referenced parts will remain the same.
Search in the last known saved location
If the referenced files are not within the same folder SOLIDWORKS will search for the last location that part file resided in when the assembly or drawing was saved (on the same drive as the assembly or drawing).
Example: An assembly references the DOOR.SLDPRT file, that file was last located in the folder path C:\swparts\project1 when the assembly was last saved. If you replace the DOOR.SLDPRT in the project1 folder with a part that has the same name the assembly will open the new one instead of the original.
If it cannot find that file path on the same drive it will look in other drives for that file path. Continuing from the previous example, if you happen to have a folder with the file path D:\swparts\project1 you can move the DOOR.SLDPRT into there and the assembly can still find the file, as long as there is not a DOOR.SLDPRT within the file path C:\swparts\project1. This is handy trick to take advantage of when moving files from a local drive to a network.
If SOLIDWORKS still cannot find the referenced file you can browse to the file and select it. This will add that file location temporarily to the Referenced Documents directory in the systems options for future missing parts as well during your session. After browsing to the correct file you can save the assembly so now SOLIDWORKS knows to look at that location in the future (the 5th search routine).
Example: The DOOR.SLDPRT that an assembly references was moved to a completely new location, along with other referenced files. You can browse to the location of these files, select the DOOR.SLDPRT, and SOLIDWORKS knows to now look at this folder for the files.
Having to browse for the file also happens if the file was not renamed properly using SOLIDWORKS Explorer, even if it remains in the same folder as the assembly.
Example: The DOOR.SLDPRT file was renamed (not moved) to DOOR_tall.SLDPRT. The next time you open an assembly that references the DOOR.SLDPRT file it will ask for you to browse to the file. You can select the DOOR_tall.SLDPRT, save the assembly, and SOLIDWORKS knows to now find DOOR_tall.SLDPRT for that assembly.