Search Order for SOLIDWORKS Assemblies
Occasionally with large assemblies, especially those that are shared amongst coworkers or externally, there is a chance you will come across this warning message:
The warning message above is indicating that a part or sub-assembly being used in the top-level assembly file cannot be found. The likely cause of this is that the file was moved to a new location, renamed, or possibly deleted entirely. When this occurs, SOLIDWORKS uses a specific order to search for the missing part or sub-assembly, knowing this search order can help to reduce errors when opening assemblies. The steps below outline the search order.
- RAM: If the file already exists in SOLIDWORKS memory, SOLIDWORKS will use that file. It is important to note that naming conventions can affect this. If you open an assembly that has a file in it that shares a name with an already open file, a message will display saying that “the Internal ID’s are different, would you like to use it?”. From here you can chose to replace the part if you like, or browse to the correct file.
- Reference Documents Path: This path can be found under the system options within SOLIDWORKS. Go to TOOLS > OPTIONS > General Tab > FILE LOCATIONS and then select REFERENCE DOCUMENTS from this list. Important note, if this location is set SOLIDWORKS will look here before looking at the original path or in the same folder as the assembly. From here you can add in a file location that contains your assembly parts, or if you have a standard parts folder saved on a server location you can point to this here.
- Last Path Used: To save issues with having others open up our assemblies, SOLIDWORKS will look in the same location as the assembly to search for parts and sub-assemblies. Even if the actual path or folder location is different from someone else, if you unzip all of the parts and sub-assemblies into the same folder as the top level assembly, once SOLIDWORKS reaches this step in the search process it will find them here.
- Last Path Used by the System: Assuming step 3 failed (SOLIDWORKS was unable to find the parts or sub-assemblies in the last path used for the assembly), the next search location is the last path used by SOLIDWORKS to open a referenced file. Important note, this will be skipped if SOLIDWORKS was freshly opened and no other paths have been used in this session of SOLIDWORKS.
- Last Path (Relative) When Parent Document Was Saved: Next, SOLIDWORKS will search in the last path the part was found the last time the assembly was saved. Another important note here, the path SOLIDWORKS uses is saved without the drive letter. For example, if you received a folder that was on someone else’s G: drive, and you put it on your C: drive, it would search the folders as if it was in the original drive location (i.e., the G: drive on someone else’s computer).
- Last Path (Absolute) When Parent Document Was Saved: Like the above step, assuming the part file was not found there SOLIDWORKS will now use the absolute file location from when the last time the part was saved. Again, using our above example, SOLIDWORKS will look in the new users G: drive as if it was searching on the original machine that the file was saved on.
- Browse: At this point, SOLIDWORKS has exhausted all of it’s options to try and find the missing part without user input. From here, you can now manually browse to the folder on your computer where the part is saved. When you browse to the part on your computer, SOLIDWORKS will ‘temporarily’ add that folder to the ‘Reference Documents’ path (see step 2 above). This allows SOLIDWORKS to find any other parts that may be missing to search in the same location. This can help you resolve any errors that may be happening (for instance, if the part was renamed you can now point SOLIDWORKS to the correct part with it’s new name).
Once the part or sub-assembly is opening correctly and the error is no longer occurring, once the assembly is saved all of the absolute paths to the parts and sub-assemblies will be updated within the parent assembly to prevent future errors.
Application Engineer II
Computer Aided Technology