OK, into the fray again!! Some PDM system do indeed do a great job of handling configurations - at least SmarTeam does, so I assume Matrix probably does also (and maybe some other high end systems.
There are obviously some restrictions, but it works fine and seems to allow for most needs with ONE POSSIBLE EXCEPTION.
This is how it handles config.
You are allowed up to a fixed number of characters for config names. (Used to be 10 when we designed our naming convention and is now more - don't know how many - we are done and not changing).
The first N characters are available to define configurations which are the same PART NUMBER or ASSEMBLY NUMBER.
A SPACE character then separates the remainder of the config name which is contained in paratheses. This can be any alph-# characters fro, say special analysis/explode/developemnt/whatever configs.
We use the original 10 character form and our company part naming convention has the last four characters (starting with a -) defining part configuration (as opposed to SW configuration). Drawings have the same numbers as parts/assemblies without the configuration "dash" number.
XXXX-YYYY-001 and XXXX-YYYY-002 are different (but similar) parts or assemblies. They are detailed on the same drawing XXXX-YYYY. Examples might be same screw - different lengths, or same assembly but different powersupply/color/non-form/fit/function interchangeable/etc. The SW File Name contains the first number set (drawing number).
So for SW CONFIGs:
-001 (xall)
-001
-001 (fea)
-001 (dwg1)
-001 (stow)
-001 (oper)
would all be of the -001 part/assembly, but different SW configs.
-002
-002 (test)
-002 (fea)
-002 (stow)
would be of the -002 part/assembly, etc.
For development, non released versions, we could (but don't as it happens) also have
pdr1 (revw)
pdr1 (expl)
pdr2
cdr1
dsgn
Just as and example, we could also do this for screws (but don't because they really are different parts):
8330-1234-001 (blck)
8330-1234-001 (zinc)
8330-1234-001 (sstl)
8330-1234-002 (blck)
8330-1234-002 (zinc)
8330-1234-002 (sstl)
8330-1234-003.......etc.
This is a big logical problem for PDM systems and SmarTeam seems to have dealt with it quite well once you get the hang of it.
Here is the exception - and the reason for that strange looking config "-001 (xall)".
Since suppressed items in assemblies truely do not exist in that configuration, the PDM system has to treat them as such and not include them in the associated file list(ie. basically the vault version of the BOM). So when you check the assembly in you can "loose" parts that are suppressed in the active configuration (say -001). Trouble is that when you try to check out -002 they are not there where they should be. It is recoverable, but a real pain. We use the "-001 (xall)" config to check in assemblies sometimes. This has no suppressions at all. We then use hiding to facilitate this function. It is a compromise. SmarTeam now has an option to fix this, but we have not yet tested and implemented it. However it does mean that SmartTeam has to resolve EVERY configuration when you do a check-in (it has to know what every config has to keep the associated file list correct). This could be a time issue, since we check most files in every night at least and everything at the end of the week.
BTW: This does illustrate one big issue with PDM in general. It does drive your file and part naming conventions - so be prepared for a change there. And since these changes are painfull, once you make it work you may choose not to implement future enhancements in the PDM system to handle this. Thus it pays to test first and get it right up front before globally implementing you new PDM system.
3/4 of all the Spam produced goes to Hawaii - shame that's not true of SPAM also.......