# Best Practices & Performance Optimization
## Overview
Part modeling in parametric CAD software involves creating 3D geometry from 2D sketches using features such as extrudes, revolves, patterns, and fillets. Producing high-quality parts requires upfront planning around design intent, symmetry, origin placement, and feature efficiency. Poor modeling practices compound into slow rebuild times, fragile models, and assembly-level performance issues. These notes cover best practices for part creation, feature management, configurations, in-context modeling, and error handling.
---
## Key Concepts
- **Design Intent** — a deliberate plan for how a part should behave when dimensions or features change
- **Feature Tree** — the ordered list of operations that define a part's geometry; order and structure directly affect rebuild speed
- **Configurations** — variations of a single part file (e.g., simplified vs. full-detail) managed within one document
- **In-Context Modeling** — creating or editing part geometry while inside an assembly, referencing surrounding components
- **External References** — cross-part links created during in-context modeling that tie a feature to geometry in another component
---
## Detailed Notes
### Planning a Part
Before modeling, establish design intent by considering:
- **Origin placement** — position it based on geometry and symmetry; affects how the part mates in assemblies
- **Symmetry** — identify planes of symmetry; model half (or a fraction) and mirror/pattern the rest
- **Features** — decide which elements deserve dedicated features vs. being combined
- **Patterns** — plan repeating geometry as patterns to reduce manual work
- **Mating requirements** — anticipate how the part connects to other components
- **Properties** — attach metadata (material, weight, description) early for accurate BOMs
- **Templates** — use pre-configured document templates with standard settings, materials, and custom properties
- **Document settings** — set image quality and display to balance visual clarity with performance
### Feature Management
- **Plan before modeling** — fewer, well-combined features rebuild faster and are easier to edit
- **Place fillets and chamfers last** in the feature tree
- Allows faster rebuilds when adding features above them
- Enables grouping into folders for quick suppression
- **Feature Statistics / Performance Evaluation** — identifies slow-rebuilding features; suppress those features in simplified configurations
- **Feature Freeze** — prevents selected features from rebuilding; significantly reduces rebuild time for complex parts
- Setting the freeze bar at the bottom of the tree stops all features from rebuilding
### Patterns
- Patterns can speed up or slow down rebuilds depending on usage
- **Benefits:** serve as sources for assembly-level feature-driven patterns and smart fastener placement
- **Best practices:**
- Avoid patterning on top of other patterns — combine into a single pattern
- Move large patterns to the bottom of the feature tree to allow other features to build first and to simplify suppression
### Symmetry
- Reduces the number and complexity of assembly mates
- Particularly useful when parts must be centered on each other
- **Mirroring bodies** speeds up rebuild time — surfaces are patterned rather than individually regenerated
### Part Origins
- Typically determined by part geometry and symmetry
- **Exceptions:**
- Origin positioned to align with a layout grid (no mates needed on insertion)
- Origin projected from the assembly origin during in-context part creation
- Placing a sketch's absolute center on the origin and extruding from midplane produces reference planes at the part's center automatically
- In-context parts may have origins far from their geometry — fix this or create in-context relationships differently
### Remodeling Parts
- Over time, iterative edits can make a part inefficient (slow rebuilds, fragile geometry)
- **Rebuilding from scratch** is sometimes the best option:
- Takes less time than expected since the final shape is already known
- Inefficient models can fail on minor changes and compound rebuild times across an assembly
- Weigh remodeling cost vs. risk of failure — especially for parts reused in future designs
---
### Configurations
- Allow managing multiple variations within a single file (sizes, detail levels, states)
- **Trade-off:** more configurations = larger file size = slower network transfers
- Only the configurations used in an active assembly are loaded into memory
- **Save As** with only the active configuration to reduce file size
#### Simplified Configurations
- Include **only** mating surfaces and interference surfaces
- **Exclude:** fillets, chamfers, engravings, and fine detail features (these generate excessive triangles similar to FEA mesh)
- Standardize the simplified configuration name across the team (names are case-sensitive)
- **Simplify tool** — selects features by size relative to the part; creates a derived configuration with selected features suppressed
#### Configuration Types Summary
| Configuration Type | Purpose | What to Include |
|---|---|---|
| **Default / Full** | Manufacturing detail | All geometry needed to manufacture the part |
| **Simplified** | Assembly performance | Mating and interference surfaces only |
| **Drawing** | 2D documentation | Suppress features that create unnecessary tangent edges (e.g., some fillets) |
| **SpeedPak** | Large assembly performance | Lightweight representation with major computational savings |
| **Analysis** | Simulation / FEA | Selective feature suppression based on analysis requirements |
---
### Fasteners & Standard Components
#### Toolbox Setup Methods
| Method | How It Works | Advantage | Disadvantage |
|---|---|---|---|
| **Master Parts** | Inserts configurations of a shared master file | Single source of truth | File grows with configurations; slow over network |
| **Copied Parts** | Creates a new file per insertion | Small files, stored locally | More files to manage |
#### Thread Display Options
| Display Type | Use Case |
|---|---|
| **Simplified** | Best performance; use when thread visuals are unnecessary |
| **Cosmetic** | Applies thread appearance to the surface for rendering purposes |
| **Modeled (Helical)** | Avoid unless functionally required — generates 5× the surface triangles |
---
### Level of Detail — Performance Guidelines
- **Do not model helical threads** unless functionally required — use cosmetic or texture map display
- **Avoid modeled text** — TrueType fonts can generate hundreds of entities per character
- **Minimize unnecessary detail** — combine equal-size fillets; avoid lofts/sweeps when extrude or revolve suffices
- **Do not model springs** — use a bounding cylinder for mating and interference checking; add a decal for visual representation
- **Fully define all sketches** before using a part in an assembly — under-defined sketches cause rebuild errors and unintended changes
---
### In-Context Modeling
- Parts created and edited **within an assembly** using geometry from surrounding components
- Changes to referenced geometry propagate automatically through in-context features
#### Benefits
- Speeds up design phase — changes carry through predictably
- Allows referencing edges, faces, and dimensions of neighboring parts
#### Risks & Limitations
- **Performance impact** — external references add overhead to assembly solve time
- **Confusion** — later users may not understand the in-context dependencies
- **Origin displacement** — in-context parts may have origins far from their geometry
- **Best suited for** one-of-a-kind parts used only in a single assembly
- **Not recommended for** reusable parts across multiple assemblies
#### Best Practices
- Remove in-context references before releasing parts to manufacturing
- Lock external references after creation; unlock only when updates are needed, then re-lock
- To reuse an in-context part: **Save As Copy** → remove all external references
### Creating In-Context Features
1. Select a plane or planar face in the assembly → a new part is created
2. The selected plane orients the new part's Front reference plane
3. An **InPlace mate** is added automatically to fix the part's position
4. The assembly origin is projected onto the new part's Front plane to set its origin
5. The selected face becomes the active sketch in **Edit Part** mode
6. Features are created using standard methods plus references to surrounding geometry
### InPlace Mates
- **Purpose:** prevent in-context parts from moving (external references depend on position)
- **Replacing:** use standard mates to allow controlled movement; select a face perpendicular to motion direction
- **Deleting:** triggers a warning — base sketch references may update unexpectedly; prompted to remove references (geometry is preserved)
---
### Assembly-Level Tools
- **Convert Entities / Offset Entities** — project or offset geometry from surrounding parts into a sketch
- **External References setting** — disable to duplicate converted geometry without constraints (no cross-part links)
- **Hole Series** — creates assembly-level holes that propagate through referenced components; solved at the assembly level
---
### Error Handling
- **Fix errors immediately** — compounding errors become exponentially harder to resolve
- **Import Diagnostics** — run on every newly imported model; flags geometry errors before further edits; only available on unmodified imported bodies
- **Check tool** — locates geometry errors and undesirable geometry (e.g., short edges) at any time; accessible via Evaluate menu
---
### External References Management
| Action | Effect | Symbol in Feature Tree | Reversible? |
|---|---|---|---|
| **In-Context** | References function normally | Standard icons | N/A |
| **Lock All** | Freezes references; changes do not propagate | `->*` | Yes (unlock to resume) |
| **Break All** | Permanently severs references | `->x` | **No** — irreversible |
| **Save As Copy** | Creates independent duplicate with no references | N/A | N/A |
- **Lock All is recommended** over Break All in most situations
- In-context features require the parent assembly to be open for updates
- Out-of-context features can be restored via **Edit In Context** from the right-click menu
---
## Key Terms
- **Design Intent** — the plan for how a model should respond to changes in dimensions or features
- **Feature Tree (FeatureManager)** — hierarchical list of all modeling operations that define a part
- **Feature Freeze** — prevents features from recalculating during a rebuild
- **Configuration** — a named variant of a part or assembly stored within the same file
- **SpeedPak** — a lightweight configuration that loads only selected faces/edges for large assembly performance
- **In-Context Modeling** — creating features in a part while working inside an assembly, referencing other components
- **External Reference** — a link between a feature and geometry in another component, maintained at the assembly level
- **InPlace Mate** — an automatic mate that locks an in-context part's position in the assembly
- **Import Diagnostics** — a tool that checks imported geometry for errors before additional features are added
- **Mate Reference** — pre-defined mating conditions stored on a reusable part to speed up assembly insertion
---
## Diagrams
### Part Planning Decision Flow
```mermaid
flowchart TD
A[Start New Part] --> B{Symmetry Present?}
B -- Yes --> C[Identify Planes of Symmetry]
C --> D[Model Partial Geometry]
D --> E[Mirror or Pattern]
B -- No --> F[Model Full Geometry]
E --> G[Place Fillets & Chamfers Last]
F --> G
G --> H[Create Configurations]
H --> I[Full Detail]
H --> J[Simplified]
H --> K[Drawing]
H --> L[SpeedPak]
```
### In-Context Modeling Lifecycle
```mermaid
flowchart TD
A[Create Part In-Context] --> B[InPlace Mate Added]
B --> C[Build Features Using Assembly References]
C --> D[External References Created]
D --> E{Part Reusable?}
E -- No --> F[Lock External References]
E -- Yes --> G[Save As Copy]
G --> H[Remove All External References]
F --> I{Changes Needed?}
I -- Yes --> J[Unlock → Rebuild → Re-Lock]
I -- No --> K[References Stay Locked]
```
### External Reference States
```mermaid
stateDiagram-v2
[*] --> InContext : Feature created
InContext --> Locked : Lock All
Locked --> InContext : Unlock
InContext --> Broken : Break All
Locked --> Broken : Break All
InContext --> Independent : Save As Copy
Broken --> [*] : Irreversible
Independent --> [*] : No references remain
```
---
## Quick Revision
- Plan design intent **before** modeling — consider origin, symmetry, mating, and feature strategy
- Place fillets and chamfers at the **end** of the feature tree; combine them to minimize feature count
- Use **Feature Freeze** and **Feature Statistics** to identify and manage slow-rebuilding features
- Avoid patterning on top of patterns — create a single combined pattern instead
- Create **simplified configurations** with only mating and interference surfaces for assembly performance
- Standardize configuration naming across the team (names are case-sensitive)
- Avoid modeling helical threads, springs, and text — use cosmetic alternatives or bounding geometry
- Use in-context modeling only for **one-of-a-kind parts**; remove or lock external references before manufacturing release
- Fix rebuild and import errors **immediately** — compounding errors are exponentially harder to resolve
- Prefer **Lock All** over **Break All** for external references — locking is reversible, breaking is not