File Referencing in Solidworks – How it Works
Knowing how Solidworks searches for individual parts of an assemblies is important in being able to troubleshoot any issues with wrong reference files as quickly as possible.
Everytime a part is created in Solidworks, two sets of IDs are associated with it which are the External ID and Internal ID. The external ID is the name you assign to the part, for example Part1.sldprt. The Internal ID is a naming convention given by Solidworks for each unique part, and this can’t be seen or changed by the user.
The external ID is used whenever a search for a file is done. When an assembly is opened, the individual parts are searched based on their External ID. Though this may lead to some problems as if there are 2 parts with the same name, the assembly might start referring to the wrong part. This is where the Internal ID comes in, and tells the user that the assembly does not have this part with the particular Internal ID.
So how do we avoid Solidworks from referencing the wrong file due to filename changes and parts with the same file name? By knowing the order that Solidworks searches for files, which is in this order:
1) Random Access Memory (files in the RAM)
2) The directory paths specified in the Reference Documents list in Tools >> Options under System Options >> File Locations
3) The last path you specified to open a document (same path as the assembly file)
4) The last path the system used to open a document
5) The path where the referenced document was located when the parent document was last saved
6) The path where the referenced document was located when the parent document was last saved with the original disk drive designation
7) If a referenced file is still not found, Solidworks gives you the option to browse for it.
Knowing this, we should be aware of effects 2 and 3. Sometimes the path location we specify is to a general folder, such as drive C or D. What this means is that if we start putting alot of files in there, with same file names, we might start facing referencing issues.
So always remember to name your files correctly!