# cad-booster/soliddna architecture

> Architecture diagram of the GitHub repository cad-booster/soliddna, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cad-booster/soliddna
- Repository: https://github.com/cad-booster/soliddna

## Overview

SolidDNA is a .NET framework for building SOLIDWORKS add-ins: an add-in connects to SOLIDWORKS, exposes commands and integrations, and uses higher-level wrappers for application and model operations while retaining access to the underlying API. The tree and README establish the major capabilities; excerpts directly support command creation and selection behavior. Unsampled subsystems are represented only at their existing paths, and uncertain internal wiring is omitted.

Main entry points: [`SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/CommandManager.cs`](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/CommandManager.cs) (Command manager), [`SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/SolidAddIn.cs`](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/SolidAddIn.cs) (Add-in base), [`SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/AddInIntegration.cs`](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/AddInIntegration.cs) (Add-in integration), [`SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Group/CommandManagerGroup.cs`](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Group/CommandManagerGroup.cs) (Command groups)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_integration["Add-in Integration"]
  node_addin["Add-in base<br/>[SolidAddIn.cs]"]
  node_addin_integration["Add-in integration"]
  node_plugin["Plugin integration"]
  node_taskpane["Taskpane integration"]
end

subgraph group_ui["Add-in Interface"]
  node_command_manager["Command manager<br/>[CommandManager.cs]"]
  node_command_group["Command groups"]
  node_command_item["Command items"]
  node_flyout["Command flyouts"]
end

subgraph group_models["SOLIDWORKS API"]
  node_application["Application wrapper"]
  node_model_docs["Model documents<br/>[PartDocument.cs]"]
  node_components["Assembly components<br/>[Component.cs]"]
  node_features["Model features<br/>[ModelFeature.cs]"]
  node_drawings["Drawing models<br/>[DrawingView.cs]"]
  node_selection["Selection manager"]
  node_identification["Persistent IDs<br/>[PersistentId.cs]"]
end

subgraph group_support["Framework Support"]
  node_localization["Localization"]
  node_solid_dna_object["COM object wrappers<br/>[SolidDnaObject.cs]"]
end

node_developer(("Add-in developer"))
node_solidworks{{"SOLIDWORKS"}}

node_developer -->|"implements"| node_addin
node_addin -->|"connects through"| node_addin_integration
node_addin -->|"configures commands"| node_command_manager
node_command_manager -->|"creates groups"| node_command_group
node_command_group -->|"adds items"| node_command_item
node_command_manager -->|"creates flyouts"| node_flyout
node_command_manager -->|"creates UI"| node_solidworks
node_flyout -->|"adds items"| node_solidworks
node_addin_integration -->|"integrates add-in"| node_solidworks
node_plugin -->|"integrates plugin"| node_solidworks
node_taskpane -->|"integrates taskpane"| node_solidworks
node_application -->|"wraps API"| node_solidworks
node_model_docs -->|"wraps API"| node_solidworks
node_components -->|"wraps API"| node_solidworks
node_features -->|"wraps API"| node_solidworks
node_drawings -->|"wraps API"| node_solidworks
node_selection -->|"reads selections"| node_solidworks
node_identification -->|"identifies entities"| node_solidworks
node_solid_dna_object -->|"wraps COM objects"| node_solidworks

click node_addin "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/SolidAddIn.cs"
click node_addin_integration "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/AddInIntegration.cs"
click node_plugin "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/Plugin/PlugInIntegration.cs"
click node_taskpane "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/TaskpaneIntegration.cs"
click node_command_manager "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/CommandManager.cs"
click node_command_group "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Group/CommandManagerGroup.cs"
click node_command_item "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerItem.cs"
click node_flyout "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerFlyout.cs"
click node_application "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Application/SolidWorksApplication.cs"
click node_model_docs "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Documents/PartDocument.cs"
click node_components "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Component/Component.cs"
click node_features "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Feature/Base/ModelFeature.cs"
click node_drawings "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Drawing/DrawingView.cs"
click node_selection "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/SelectionManager/SelectionManager.cs"
click node_identification "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Identification/PersistentId.cs"
click node_localization "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/Localization/Implementation/LocalizationManager.cs"
click node_solid_dna_object "https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Core/SolidDnaObject.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_addin,node_addin_integration,node_plugin,node_taskpane toneBlue
class node_command_manager,node_command_group,node_command_item,node_flyout toneAmber
class node_application,node_model_docs,node_components,node_features,node_drawings,node_selection,node_identification toneMint
class node_localization,node_solid_dna_object toneRose
class node_developer,node_solidworks toneIndigo
```

## Components

### Add-in Integration

- [Add-in base](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/SolidAddIn.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/SolidAddIn.cs`
- [Add-in integration](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/AddInIntegration.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Integration/AddIn/AddInIntegration.cs`
- [Plugin integration](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/Plugin/PlugInIntegration.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Integration/Plugin/PlugInIntegration.cs`
- [Taskpane integration](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Integration/TaskpaneIntegration.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Integration/TaskpaneIntegration.cs`

### Add-in Interface

- [Command manager](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/CommandManager.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/CommandManager.cs`
- [Command groups](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Group/CommandManagerGroup.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Group/CommandManagerGroup.cs`
- [Command items](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerItem.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerItem.cs`
- [Command flyouts](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerFlyout.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/CommandManager/Item/CommandManagerFlyout.cs`

### SOLIDWORKS API

- [Application wrapper](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Application/SolidWorksApplication.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Application/SolidWorksApplication.cs`
- [Model documents](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Documents/PartDocument.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Models/Documents/PartDocument.cs`
- [Assembly components](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Component/Component.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Models/Component/Component.cs`
- [Model features](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Feature/Base/ModelFeature.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Models/Feature/Base/ModelFeature.cs`
- [Drawing models](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Models/Drawing/DrawingView.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Models/Drawing/DrawingView.cs`
- [Selection manager](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/SelectionManager/SelectionManager.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/SelectionManager/SelectionManager.cs`
- [Persistent IDs](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Identification/PersistentId.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Identification/PersistentId.cs`

### Framework Support

- [Localization](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/Localization/Implementation/LocalizationManager.cs): `SolidDna/CADBooster.SolidDna/Localization/Implementation/LocalizationManager.cs`
- [COM object wrappers](https://github.com/cad-booster/soliddna/blob/master/SolidDna/CADBooster.SolidDna/SolidWorks/Core/SolidDnaObject.cs): `SolidDna/CADBooster.SolidDna/SolidWorks/Core/SolidDnaObject.cs`

### Other components

- **Add-in developer**
- **SOLIDWORKS**

## Connections

- Add-in developer → Add-in base: implements
- Add-in base → Add-in integration: connects through
- Add-in base → Command manager: configures commands
- Command manager → Command groups: creates groups
- Command groups → Command items: adds items
- Command manager → Command flyouts: creates flyouts
- Command manager → SOLIDWORKS: creates UI
- Command flyouts → SOLIDWORKS: adds items
- Add-in integration → SOLIDWORKS: integrates add-in
- Plugin integration → SOLIDWORKS: integrates plugin
- Taskpane integration → SOLIDWORKS: integrates taskpane
- Application wrapper → SOLIDWORKS: wraps API
- Model documents → SOLIDWORKS: wraps API
- Assembly components → SOLIDWORKS: wraps API
- Model features → SOLIDWORKS: wraps API
- Drawing models → SOLIDWORKS: wraps API
- Selection manager → SOLIDWORKS: reads selections
- Persistent IDs → SOLIDWORKS: identifies entities
- COM object wrappers → SOLIDWORKS: wraps COM objects
