## Overview
A **large assembly** in CAD software is not defined by component count or physical size alone. It is defined by its impact on **system resources** and **productivity**. Performance degradation in large assemblies is primarily caused by poor modelling practices rather than hardware or software limitations, making design strategy the most critical factor in managing assembly performance.
---
## Key Concepts
- **Large Assembly** – any assembly that consumes all available system resources and reduces design productivity
- **Performance Bottleneck** – the combination of modelling habits, file management, and system configuration that causes slow performance
- **Best Design Practice** – a set of modelling, assembly, and data management strategies that minimise performance loss
- **Simplified Representation** – reduced-detail versions of components used to lower memory and processing demands
---
## Detailed Notes
### What Makes an Assembly "Large"
- **Not** defined by component count or physical dimensions
- Defined by two primary characteristics:
- **Consumes all system resources** (memory, CPU, GPU)
- **Hurts productivity** (slow operations, long wait times)
### Traits of Large Assemblies
#### Physically Large
- Requires layout planning or engineering input to position all components
- Contains so many components that management, calculation, and memory demands reduce productivity
#### Complex
- Contains many **parametric relationships** between parts
- Has a **large number of mates/constraints**
- Taxes computing resources beyond comfortable limits
- Includes many different component types requiring active management
- Contains **imported data** that must be located and loaded at runtime
- Features **geometric complexity** that is difficult and slow to rebuild
#### Multi-Discipline / Multi-Source
- Assemblies often span multiple systems and data sources:
| Source Type | Example |
|---|---|
| Mechanical components | Custom-designed parts |
| Standard/library parts | Fasteners, fittings, hardware |
| Weldment structures | Fabricated frames, brackets |
| Routed systems | Piping, wiring, tubing |
| External vendor files | Purchased parts, subcontractor models |
| Client-supplied files | Reference geometry, enclosures |
---
### Where Performance Degrades
- Opening, closing, and saving files
- Rebuild/regeneration time
- Drawing creation and updates
- Rotating, panning, and zooming
- Inserting new components
- Switching between part, assembly, and drawing environments
- Adding or editing mates/constraints
---
### Root Cause of Performance Issues
- **~80% of performance problems are under user control**
- Poor software setup and data management options
- Failure to plan work efficiently
- Suboptimal modelling practices
- **~20% of performance problems are under software control**
- Bugs, algorithm efficiency, internal code
- **Hardware upgrades alone will not solve performance issues** caused by poor modelling practices
- Slower assemblies are an **accumulation of many small problems** — there is no single quick fix
---
### Best Design Practices
#### Effective Part Modelling
- Set a **proper origin** to simplify placement and mating
- Use **simple, easy-to-build features** — avoid unnecessarily complex geometry
- **Remove in-context relationships** where possible to reduce dependency chains
- **Eliminate circular references** between features or parts
- Create **simplified versions** of parts for use in large assemblies
#### Effective Assembly Modelling
- Organise components into logical **subassemblies**
- Use the **proper level of detail** for the task at hand
- Apply **proper mates/constraints** — avoid over-constraining or redundant mates
#### Reducing Memory Load
| Technique | Purpose |
|---|---|
| Quick open mode | Load only essential data on file open |
| Lightweight mode | Load component graphics without full model data |
| Large design review | Open assemblies in a read-only, resource-light state |
| Simplified configurations | Display only the geometry needed for the current task |
| Envelope/proxy components | Use low-detail stand-ins for complex purchased parts |
| Draft quality drawings | Reduce drawing regeneration overhead |
#### Data Sharing Best Practices
- Ensure all team members have **access to necessary files**
- Always work with the **most current version** of each file
- Make changes to files **with responsibility and traceability**
- **Protect files** from accidental overwrites by unauthorised users
---
### File Management Considerations
- All project team members must have **appropriate file access**
- Protect files from **accidental overwriting** by non-team members
- Ensure **file properties and metadata** are filled in correctly
### Avoiding Common Pitfalls
- **Inability to locate files** — use structured folder conventions or a data management system
- **Working on the wrong version** — enforce version control practices
- **Modelling problems** — follow best practice guidelines from the start
- **Hardware problems** — use certified or recommended hardware configurations
- **Network problems** — ensure reliable access to shared file locations
### Producing Parts, Assemblies, and Drawings Efficiently
- Use **in-context features** only where appropriate during initial design
- **Break in-context relationships** once the design stabilises
- Share data between engineering, manufacturing, and design teams seamlessly
- **Limit configurations** to two or three per component where possible
- Design **simplified parts** to reduce rebuild overhead
- Use **neutral-format bodies or simplified representations** for library or purchased parts
---
## Diagrams
### Large Assembly Performance Factor Breakdown
```mermaid
pie title Root Cause of Performance Issues
"User-Controlled Factors" : 80
"Software-Controlled Factors" : 20
```
### Best Practice Workflow for Large Assembly Design
```mermaid
flowchart TD
A[Plan Assembly Structure] --> B[Design Simplified Parts]
B --> C[Set Proper Origins & Easy Features]
C --> D[Organise into Subassemblies]
D --> E[Apply Proper Mates/Constraints]
E --> F[Use Lightweight/Simplified Modes]
F --> G[Implement File & Version Management]
G --> H[Optimised Large Assembly]
style A fill:#2a9d8f,color:#fff
style H fill:#2a9d8f,color:#fff
```
### Three Pillars of Assembly Optimisation
```mermaid
graph TD
A[Large Assembly Optimisation] --> B[Effective Part Modelling]
A --> C[Effective Assembly Modelling]
A --> D[Memory & Data Management]
B --> B1[Proper origins]
B --> B2[Simple features]
B --> B3[Remove in-context refs]
B --> B4[Simplified versions]
C --> C1[Subassembly organisation]
C --> C2[Proper level of detail]
C --> C3[Clean mates/constraints]
D --> D1[Lightweight modes]
D --> D2[Quick open / Design review]
D --> D3[Version control & file access]
```
---
## Key Terms
- **Large Assembly** – an assembly that exhausts system resources and impairs productivity, regardless of component count
- **In-Context Relationship** – a reference between parts created while editing one part within the context of the assembly; creates dependencies that slow rebuilds
- **Circular Reference** – a dependency loop where Feature A depends on Feature B, which in turn depends on Feature A; causes rebuild errors and slowdowns
- **Lightweight Mode** – a display state where components are loaded with graphical data only, without full model information
- **Large Design Review** – a read-only, resource-efficient mode for viewing large assemblies without loading full model data
- **Simplified Configuration** – a reduced-detail representation of a part or subassembly used to lower processing demands
- **Mate/Constraint** – a geometric relationship (coincident, concentric, parallel, etc.) that positions one component relative to another
- **Subassembly** – a self-contained group of components within a larger assembly, used to organise structure and improve performance
- **Parametric Relationship** – a dimension- or equation-driven link between features that updates automatically when inputs change
- **Neutral-Format Body** – a geometry file exported in a non-native format (e.g., STEP, Parasolid) to strip parametric history and reduce complexity
---
## Quick Revision
- A **large assembly** is defined by its impact on resources and productivity — not by component count
- **~80% of performance issues** are caused by user practices; only ~20% are software-related
- Upgrading hardware alone **will not fix** assemblies slowed by poor modelling habits
- **Effective part modelling** includes proper origins, simple features, and removing in-context/circular references
- **Subassembly organisation** and clean mating strategies are essential for assembly performance
- Use **lightweight, simplified, and quick-open modes** to reduce memory consumption
- **File management** (version control, access rights, metadata) prevents costly errors in team environments
- Limit configurations to **two or three per component** to avoid excessive rebuild overhead
- Use **simplified or neutral-format parts** for library and purchased components
- There is **no single quick fix** — performance is the result of many accumulated good (or bad) practices