I'm tediously creating an assembly which contains every component (with some rare exceptions) in our design library.
First off, is there any existing automatic way to do this, with or without a macro or API?
Secondly, is every concern here addressed by PDM already? We are not using PDM.
But why? Primarily, because I cannot search the library. This is the simplest management tool, and it is lacking.
I am conforming references to have the very same name across similar products. When a past user (myself included) has failed to conform items similarly, it slows down the Replace Component process by requiring the entities to be selected anew to recreate its mates. This only works well if designs are mated using reference geometry, for example, a coincident mate upon an Axis instead of a concentric mate upon a face. Faces are extremely varied. A named Axis is accepted and reassigned automatically if it carries the exact same name as the one it is replacing. Axis1 just doesn't cut it. I will be assessing and likely renaming every Axis1 which is present, to Axis, Through Axis, Branch Axis, Mount axis, or whichever applies to that item type's shared standard. This effort should go a long way to keep components easily interchangeable across projects and revisions.
What can I accomplish with such a uniquely non-applicable mega-assembly?
* Load it once and save it once to upgrade every component after an installation upgrade, so users have one less click-thru when component is first used thereafter.
* Search to find if something may be mis-categorized or if it is even present, before adding it as duplicate.
* Filter by any name, entity, reference, or custom property value. (I'm also applying improved material definitions over 'close enough' selections used before.)
* Performance evaluation can identify the worst cases in the entire library, as targets for simplification or repair.
* I can create a custom BOM to review (and sort) all relevant custom properties in one view, to identify where blanks have been left unfilled, incorrect, outdated, or populated with default values.
.. and probably more, to handle a complex data set with all of the tools available to me in an assembly. What would you do with it?
If some of these tasks can be accomplished in Solidworks Explorer, that's interesting but irrelevant to my use. I find it to be either slow and troublesome, or restricted in focus and troublesome. Maybe it will help someone else, though.
Library and assembly are not entirely equivalent. I am recreating the library's folder structure within the assembly, to cross-reference an item's location once found in the assembly. One limitation of assemblies is that every folder must be named uniquely, whereas the design library which represents a file system allows any folder to be named anything which is not already present in that location alone. I have subdirectories by category, then item type, then brand. Clearly, some brands produce multiple item types. I'm simply appending a suffix of the parent directory where the folder name has already been used in the assembly.
The uniqueness issue also applies to component names. I've found that some assemblies contain the same named part found elsewhere (not same actual file), which in my case only identifies where something was imported as an assembly when it should be more effectively handles as a part. This is another way that this process helps to reduce redundancy and improve performance by applying lessons learned to past mistakes, by identifying potential conflicts.
This effort also may be useful for preparing to develop and expand the design library into a new routing library subset.