I am a big fan of Top-Down modeling, especially when it comes to similar-but-different projects with a lot of parts sharing similar geometry, which is much easier to control via Assembly Layout or a dedicated "master" part that all other parts refer to. However, in manufacturing, it is better to have standardized parts that are entered into ERP system, that have their unique code and associated manufacturing drawings. Having a minimum number of parts is preferable to entering new parts into ERP system for every new project with different codes but likely matching geometry.
Most often changes in assembly layout / master part result only in dimensional changes in the parts, therefore one part file can carry multiple configurations, each configuration representing a certain set of dimensions that are valid for a range of assembly conditions, and each configuration carries it's own Custom Properties (including the ERP code, and a manufacturing drawing) down the system. Changing configuration is much easier than having to use Replace Components in the assembly.
Example project: a Table assembly, in which the Leg column thickness is dependent on the length of the table. Length of the table, as well as many other properties is driven by an assembly layout or a master sketch. If the able length is less than 1m, the Leg part should automatically switch to a "30mm thick" configuration. If the table length is between 1m and 2m, Leg part should switch to "40mm thick" configuration. Each of these configurations have associated ERP codes and manufacturing drawings that are already entered into ERP system. If table length is above 3m, there should be some kind of an indication that none of the available leg configurations are suitable, and therefore a new one should be created and entered into the ERP with all the associated files.
This is a very simplified example, but it illustrates what is needed. Every new project includes some customizations per customer needs, and while these dimensional changes might leave 1000 parts unchanged in the assembly, they might switch a dozen parts to a different configuration. Checking all these complicated conditions to track down which parts need to be switched manually is a nightmare.
In the essence it is still Top-Down, but the assembly layout / master part is not driving dimensions in a part, but switching configurations instead, depending on a set of conditions. On some conditions, there is a need to switch to an entirely different part, rather than just changing the configuration of an existing part. Perhaps this could be achieved with suppress/unsuppress, because I doubt that Replace Components can be automated without a macro.
I know that this is what Driveworks is usually used for, but I am wondering to what extent can this be achieved with SOLIDWORKS alone, without macros. Can anyone give any suggestions?