This is a question that comes into Autodesk Support frequently. One reason might be that it comes down to how Inventor resolves (finds) files.
A popular practice is that more than one project file is used in the Vault. Maybe it was considered an appropriate workflow to place IAM's into a library folder. This does cause this problems though.
One way to explain it is as follows
In Inventor, using the Library.IPJ, the Assembly refers to an IPT
When Inventor tries to find the file it first looks at the "Location" (Workspace) plus the "Subfolder Path" (Assembly Folder\Subfolder).
BUT, and it is a VERY BIG BUT, when you switch to another project file called Designs.IPJ for example the following change happens.
When Inventor opens the Assembly, it looks in the "Location" plus the "Subfolder Path". Now, the last time the IAM was opened, it knew to look in the "Workspace\Assembly Folder\Subfolder" folder. But the file is not there. Instead it is is in the Location = "Library1" folder and subfolder "\Assembly Folder\Subfolder".
The difference is easier to see when compared together like this.
- "Workspace\Assembly Folder\Subfolder" (Library.ipj)
- "Library1\Assembly Folder\Subfolder" (Designs.ipj)
So, just changing the IPJ can change the file!
At this point, Inventor initiates its file resolution algorithm and goes through a series of steps to find the file. If you are logged into Vault, you will see a message saying that "Files are missing from your workspace. Would you like to open the database to resolve the component?" The precise wording in the message changes depending on the release of Inventor you are using.
Believe it or not, this is a Vault feature.Vault is telling you that something has changed and you better do something about it! What causes confusion is that, if you click "No" Inventor then goes on to actually find the file.( because the message pops up before Inventor goes through its algorithm to find files.)
However, if Inventor fails to find the file, it will display the file resolution dialogue box.
So, for this reason I would:-
- Never suggest it is a good idea to put IAM's into Libraries.
- Never have more than one IPJ in the Vault
- Always put the IPJ at the root of the Vault
- Always follow the best practice for setting up the Project file.
UPDATE 2/8/2011
If you really must check assemblies into the library that might later need editing you will need to check the Library IAM out, and check it back in using a project file that has the library subfolder defined as a library and not the Workspace. In other words, follow this workaround.
For Editing Assemblies in Libraries.
1. Activate the Library project from <Path>\Libraries.IPJ
1.a) Which has the workspace defined as .\Libraries
1.b) Mapped to the Project root to $
2. Check Out the assembly and Edit, Save (saved under Libraries) but DO NOT CHECK IN
3. Activate the Designs Project from <Path>\Designs.IPJ – THIS PROJECT SHOULD BE USED FOR CHECKING IN EDITED ASSEMBLIES.
3.a) Which has the workspace defined as .\Designs
3.b) Mapped to the Project root to $
4. Create a Phantom assembly and place the Library assembly (This may not be necessary if the Library assembly does NOT have iParts or Sub Assemblies)
5. Tools > Rebuild All and Save All the files in Libraries.
6. RMB on the Library assembly and Check In.