Best practices for building a lightweight, fully configurable custom product assembly

Hello everyone,

I’m currently working on a project in SolidWorks for a custom-made product. These products are manufactured to order, which means they can have multiple sizes and a wide range of accessory options that may or may not be included depending on the customer’s requirements.

The goal is to have a base assembly that automatically generates the correct model based on input data. The input values come from a Java program: designers enter the required parameters there, and the program calculates the main dimensions, accessories, and other variables. With that output, I want SolidWorks to create the corresponding model as quickly and efficiently as possible.

My main priority is speed of design generation, since we need to deliver many variations quickly, more than focusing on model aesthetics or rendering details. I’m also looking for a solution that is scalable in the long term, able to handle potentially hundreds of size and accessory combinations without the assembly becoming unmanageable.

I’d like to ask for your recommendations on:

  • Best practices to keep assemblies lightweight and efficient when they need to handle many variations.
  • Whether it’s better to use design tables, configurations, global variables and equations (equation manager), or DriveWorks, or if there are other methods you’d recommend for managing this type of parametric data.
  • Clean and reliable ways to manage the suppression/activation of accessories.
  • Tips to ensure fast model generation when dealing with many possible sizes and optional features.
  • Examples or guidance on how to integrate an external program (Java in this case) with SolidWorks so the models update automatically from external input data.
  • Is there a recommended workflow for fast accessory assemblies? For example, depending on the size of the main product, the accessory size changes. Is there a way to make this a one-click / plug-and-play insertion that adapts automatically?
  • Are there ways to define connection points or reference locations in the base model so that when inserting accessories they position automatically, without having to set all the mates manually each time?
  • Is there a method to set up conditional accessory selection (e.g., the software automatically inserts the correct type/size of accessory depending on the input data)?
  • Would you recommend using Smart Components / Smart Parts, a custom Design Library, or any other approach to manage accessory assemblies effectively?
  • What is the best practice for handling repeated components whose quantity changes depending on design size (e.g., fasteners, supports, cooling elements)?
  • Is there a way to parametrize mates so that when the main dimensions of the product change, accessories can automatically adjust or reposition without breaking relationships?

Any advice, workflows, or examples would be greatly appreciated. Thanks in advance!