Here was my original inquiry. Sorry it took so long for my summary.
I was wondering if anyone has ever come across or has a good document(s) explaining why it isn't a good idea to create references across subassemblies. For example in an upper level assembly assemble an component into a subassembly using references from another subassembly. I am particularly interested in the havoc this will cause with PDMLink. Maybe I am off base here, maybe it won't cause issues.
Thanks to all that replied and here are the responses.
------- As for PDMLink havoc, it depends on your settings. If you have an association to a part, then downloading the part will also drag down the assembly. You can change your dependencies to control this but most people don't pay attention. So if the assembly is large, you could end up with a lot of files just to make a simple change. Other than this there should not be any problems with PDMLink.
------- PDM is not the reason that problems will occur. It can handle the relationships of structure since the assembly conditions are not carried up to the PDM side of things.
The problem is in the CAD side. What happens if one component that is referenced is changed and the mating reference is deleted? What happens when you use that same component in multiple assemblies and then rename it when making a change? Why create complex assembly conditions that MAY cause failures if you do something in the future without remembering what you did years ago? What if you leave the company and some new guy has to work on your assembly?
There are methods for doing some of the sub-sub relations, but you need to understand them. Skeleton parts are good for providing the reference structure for component placement.
KISS - Keep It Simple and Smart ------- Well there is the issue of references. Checking out of PDM is also going to bring the top level for regeneration.
I try to constrain my sub-assemblies and part to the top-level assembly datums, axes, etc. whenever possible. That way if a sub-assembly or part changes or fails there are no children that won't regenerate or fail also.
------- I don't know if I would consider it a problem I would say you just need to understand what it is doing. The main thing to realize is that in order for that subassembly to properly regenerate, the higher level assembly must be present and not just be present be in RAM. If it is not then you will see a warning in the message window that tells you that the references are missing and it is using the last placement. This is not a good thing because if the design is changing then you want it in the proper position and make sure that the references that it uses are still present. In other words your lower level assembly will be tied to the upper level assembly. This also becomes a problem when you go to copy that lower level assembly because it is referencing the upper level and it will drag that one along. -------