A supplier discontinues a product line. You need to find every SKF bearing in a 600-part machine assembly and evaluate alternatives. With the standard Select menu you can hunt them down individually — or you can open Advanced Component Selection, type vendor = SKF, click Apply, and have every matching component highlighted in 3 seconds.
Most SolidWorks users have never touched this tool. It sits one click off the cursor menu and handles property-based selection that would otherwise require a macro or a full PDM search.
Where to Find It
Two access points:
- Cursor dropdown: Click the small dropdown arrow on the cursor (arrow) icon at the top of the screen. The dropdown shows predefined groups (Select Toolbox, Select Hidden, etc.) and Advanced Select… at the bottom.
- Tools menu: Tools > Advanced Component Selection — same dialog.
The dialog opens as a modal window. You build criteria in the table, click Apply, and SolidWorks selects the matching components in the assembly graphics area and FeatureManager simultaneously.
The Five-Column Criteria Structure
Every row in the criteria table has five columns:
| Column | Purpose |
|---|---|
| And / Or | Logical operator linking this row to the next. “And” requires both conditions to match; “Or” requires either. |
| Category 1 | The primary property to filter by (mass, volume, configuration name, custom property, etc.) |
| Category 2 | A refinement of Category 1. Required for Custom Property — this is where you type the property name. |
| Condition | The comparison operator: equals, contains, greater than, is blank, etc. |
| Value | The specific value to match against. |
You can add as many rows as you need. The And/Or logic is evaluated top-to-bottom in order — SolidWorks does not support parenthetical grouping in the UI, so complex multi-group logic needs a macro.
Category 1 Options
The full list of Category 1 filters:
- Mass — component mass in kilograms (reads from material properties and model geometry)
- Volume — bounding volume or precise body volume
- Density — material density
- Surface area — total surface area
- Configuration Name — the name of the active configuration in this assembly context
- File Status — In context, Saved, Out of date, Missing, etc.
- In Context Relations — whether the component has in-context mates or external references
- Custom Property — any custom property defined in the component’s file properties
- Toolbox — whether the component is a Toolbox library item (true/false)
- Suppressed — whether the component is suppressed in this assembly context
- Is Virtual — virtual (in-context) components vs. external files
- Has BOM Entry — whether the component appears in the bill of materials
- Level — depth in the assembly hierarchy (1 = top-level, 2 = one sub-assembly deep, etc.)
- Layer — layer assignment (used in drawing contexts more than assembly)
For most practical filtering tasks — vendor lookup, material consolidation, missing-property audits — Custom Property is the one you want.
Filtering by Custom Property
Select Custom Property in Category 1. This activates Category 2, where you type the exact property name as it appears in the model’s custom properties (File > Properties > Custom tab). Property names are not case-sensitive, but the value match can be depending on condition.
Available conditions for custom properties:
| Condition | Behavior |
|---|---|
| is | Exact full-string match |
| is not | Exact full-string match, inverted |
| contains | Substring match — 304 matches 304 SS, AISI 304, EN 1.4301 |
| does not contain | Substring match, inverted |
| is blank | Property exists but has no value, or property does not exist on this component |
| is not blank | Property has any non-empty value |
Practical examples:
Find all parts from a specific vendor:
- Category 1 = Custom Property
- Category 2 = Vendor
- Condition = is
- Value = SKF
Find all 304 stainless steel parts (regardless of notation):
- Category 1 = Custom Property
- Category 2 = Material
- Condition = contains
- Value = 304
Find all purchased parts missing a part number:
- Category 1 = Custom Property
- Category 2 = PartNumber
- Condition = is blank
Find heavy parts from a specific supplier (two-row AND):
- Row 1: Custom Property | Vendor | is | Misumi — And
- Row 2: Mass | (none) | greater than | 2 (kg)
This selects only the heavy Misumi components — useful if you’re reviewing whether to machine standard profiles in-house above a certain weight threshold.
What Happens After Selection
After clicking Apply, SolidWorks selects the matching components. From there:
- Right-click > Component Properties — to review or edit the properties that matched
- Right-click > Set Resolved to Lightweight — to performance-lighten a batch of heavy purchased parts
- Right-click > Suppress — to suppress a group of out-of-spec components while evaluating replacements
- Right-click > Add to New Display State — to isolate the vendor group visually
- Edit > Invert Selection — to select everything except the matched group
- File > Export — with CadShift installed, batch-export DXF files for only the selected sheet metal components without exporting the whole assembly
The selection also propagates to the FeatureManager, so you can expand a sub-assembly and see which of its children matched. For a 600-part assembly with 40 SKF bearings spread across 12 sub-assemblies, this is the fastest way to see the distribution.
Saving and Reusing Searches
The Name of Search field at the top right of the dialog saves your criteria configuration:
- Set up your criteria rows
- Type a name in the Name of Search field (e.g., “Find SKF Bearings”)
- Click the save icon (disk)
Saved searches appear under Manage Searches in the dialog. From there you can:
- Set as Favorite — adds the search to the cursor dropdown menu alongside the predefined groups like “Select Toolbox”. This means a one-click run without opening the dialog at all.
- Export as .sqy file — a portable XML-based format. Share it with team members; they import it via the same dialog. Useful for a team that maintains a consistent set of vendor audit searches.
- Import .sqy file — loads another engineer’s saved search.
For a team running regular BOM audits — checking that all components have Part Numbers filled in, or that all purchased parts have a vendor assigned — saving these searches and adding them to favorites turns a five-minute manual hunt into a two-second operation.
Limitations
Custom property names must exist on the component. If you search for Vendor = SKF but some parts use Supplier instead of Vendor, those won’t match. The is blank condition helps find inconsistencies — run it on both Vendor and Supplier to find parts that are missing one or the other.
No parenthetical grouping. Multi-row logic evaluates sequentially. If you need (Vendor = SKF OR Vendor = NSK) AND Mass > 0.5, the UI doesn’t support that grouping directly. Workaround: run two separate searches and use Edit > Add to Selection between them.
Doesn’t search into suppressed components. Suppressed components are excluded from the selection results by default. If you need to audit suppressed components, unsuppress first or handle it via the API.
Configuration-specific properties. The tool reads the active configuration’s properties. If your assembly uses multiple configurations per component and property values differ between configurations, the results reflect only the currently active configuration.
Extending with the API
For cases where the UI limitations matter — particularly complex boolean logic or bulk property modification — the API path is IModelDoc2.GetSelectionMgr() combined with a manual component iteration:
' Iterate all components and filter by custom property
Dim swAssy As SldWorks.AssemblyDoc
Dim vComps As Variant
Dim swComp As SldWorks.Component2
Dim selMgr As SldWorks.SelectionMgr
swAssy = swApp.ActiveDoc
vComps = swAssy.GetComponents(False) ' top-level only
Dim i As Integer
For i = 0 To UBound(vComps)
swComp = vComps(i)
Dim swCompModel As SldWorks.ModelDoc2
swCompModel = swComp.GetModelDoc2()
If Not swCompModel Is Nothing Then
Dim vendorProp As String
vendorProp = swCompModel.CustomInfo2("", "Vendor")
If InStr(LCase(vendorProp), "skf") > 0 Then
swComp.Select4 True, Nothing, False ' add to selection
End If
End If
Next i
The CustomInfo2 method takes a configuration name (empty string = document-level) and a property name. For large assemblies, this loop runs in a few seconds if components are resolved; longer if lightweight components need to be resolved first.
This approach handles the parenthetical grouping limitation and lets you write arbitrary logic — matching against multiple vendors, combining with geometry criteria, or cross-referencing against an external parts database before selecting.
Why This Is Underused
Advanced Component Selection has existed in SolidWorks since at least 2015, but it rarely appears in standard training courses. The cursor dropdown entry point is not obvious (you have to know to click the dropdown arrow on the cursor tool, not just the cursor itself). And for small assemblies, manual selection is fast enough that no one looks for an alternative.
At 200+ components, the math changes. A single large assembly performance audit typically involves identifying which components are contributing most to rebuild time — which involves selecting by mass, volume, or suppression state, exactly what this tool is built for. The engineers who discover it tend to keep using it.
For teams that maintain consistent custom properties across their library — well-structured CAD file naming and organization is a prerequisite for this to work reliably — Advanced Component Selection becomes part of the regular BOM review workflow.