You reference a display state in a drawing view. A component in that display state is hidden. You right-click the view, go to Properties > Hide/Show Components, and try to show the component. Nothing happens. You try Show Component from the FeatureManager. Still nothing. The drawing view ignores you.
This is by design, and it got stricter in SolidWorks 2026.
The Visibility Hierarchy
SolidWorks has two separate mechanisms for hiding and showing components in a drawing view. Engineers frequently run into problems because they assume these mechanisms are equivalent, or that one overrides the other in a predictable direction. They are not equivalent.
Level 1 — Assembly display state: The visibility setting stored in the assembly file for a named display state. When a display state marks a component as hidden, that is a property of the assembly document itself. It gets serialized into the .sldasm file under the display state record.
Level 2 — Drawing view hide/show: The per-view component visibility override stored in the .slddrw file. This is what the View Properties dialog and the right-click Show/Hide context menu control. These entries live in the drawing document.
Level 1 always wins. If a component is hidden at the display-state level (Level 1), the drawing view’s Level 2 controls cannot show it. The drawing view’s hide/show mechanism can only hide additional components beyond what the display state already hides — it cannot reveal components that the display state has hidden.
The result: right-clicking a component and selecting Show Component in a drawing view does nothing visible, because the display state is overriding it. No error is shown. The operation appears to succeed but has no effect on the view.
Why SW2026 Changed the Behavior You Notice
This hierarchy existed before 2026. But prior to SW2026, the enforcement was inconsistent. The hide/show state in the drawing file could sometimes interact with the display state reference in ways that let certain edge cases slip through — components would show when they shouldn’t, or the drawing would not reliably pick up changes made to the display state.
SW2026 tightened this: according to GoEngineer’s SW2026 Assemblies What’s New coverage, “toggling referenced display states in components is more consistent, and the global hide/show option works more reliably.” TriMech similarly notes that display states “behave more predictably.”
For users who had accidentally found working workarounds exploiting the inconsistency, the SW2026 update breaks those approaches. Components that showed up through drawing-level overrides when the display state said they should be hidden will now correctly stay hidden.
The “Hide New Components When Inactive” Feature
SW2026 also formally documented a display state option that was less prominent before: “Hide new components when inactive.”
When this option is enabled on a display state (right-click the display state in ConfigurationManager > Properties > enable “Hide new components when inactive”), any component added to the assembly while that display state is not the active one is automatically hidden in it. The automation makes sense for design management — you’re building a subset display state and don’t want new components to appear by default.
The drawing interaction is where engineers get surprised. If a component was auto-hidden because it was added while the display state was inactive, a drawing view referencing that display state shows the component as hidden. Going into the drawing view’s Hide/Show dialog and showing it manually does not work — the hiding is governed by the display state, not by the drawing.
If you’re seeing a newly added component missing from a drawing view and don’t remember hiding it, this is often why.
What the Drawing View API Actually Controls
For context from the API perspective:
IView::HideComponent(componentModelPath, hiddenState)andIView::ShowComponent(componentModelPath, hiddenState)are the drawing-level API calls. These operate at Level 2 — the drawing file’s per-view visibility list.- These methods cannot override the assembly display state. If
IComponent2::VisiblereturnsFalsein the assembly context because the active display state hides it, callingShowComponenton the view does nothing effective. IView::GetVisibleComponents()returns only components that are visible at the drawing view level — it respects the display state. A component hidden by the display state will not appear in this list even if your drawing-level code attempted to show it.- The correct API location for changing display state visibility is
IComponent2(orIDisplayStateSetting) in the assembly document context, not in the drawing view context.
This matters if you’re writing macros to automate drawing view setup. If your macro calls ShowComponent on a view and expects the result to reflect in the rendered output, it will fail silently on any component that is hidden by the assembly’s display state. The macro succeeds without error; the component stays hidden.
What Actually Works — Five Approaches
When you need a component visible in a specific drawing view but hidden in the assembly display state, the fix is always on the assembly side, not the drawing side.
Approach 1 — Edit the assembly display state
This is the correct fix when the display state is wrong. Open the assembly, activate the display state being referenced by the drawing view, and unhide the component (Shift+Tab, or right-click > Show Component). Save the assembly. The drawing view updates automatically.
This is the right long-term answer when the display state doesn’t match what you actually want to show.
Approach 2 — Change the drawing view’s referenced display state
In the drawing view’s PropertyManager (double-click the view border), the Display State dropdown lets you switch which assembly display state this view references. If a different display state shows the component you need, point the view at it.
This is useful when you have multiple display states with different subsets visible, and you chose the wrong one for the view.
Approach 3 — Create a drawing-specific display state in the assembly
In the assembly, duplicate the display state you’re using (right-click in ConfigurationManager > Copy), name it something like “Drawing View 2 — Detail,” make the specific component visible in the copy, and reference that copy in the drawing view. The original display state is unchanged.
This is the right approach when you want a display state that exists specifically for one view’s context — an exploded detail, a partial section, a subset view with specific components highlighted.
Approach 4 — Disable “Hide new components when inactive” (SW2026)
If the issue is a newly added component that was auto-hidden, right-click the display state in ConfigurationManager > Properties, and uncheck “Hide new components when inactive.” Then manually show the component in that display state and save.
Going forward, understand the tradeoff: disabling this option means new components appear in the display state by default, which may not match your intent for the subset state.
Approach 5 — Use a different view for the component
If you only need the component in one specific drawing view, create a separate view with a display state that shows it. Not all views in a drawing need to reference the same display state. A detail view or auxiliary view can reference a different display state and show the component in isolation, even while the main view keeps it hidden.
Display States vs Configurations: the Related Confusion
Display states and configurations are related but distinct. A display state stores hide/show, display mode, appearance, and transparency settings. A configuration stores dimensional state, suppression state, and custom properties.
A single configuration can have multiple display states. When a drawing view references a configuration, it also references a display state within that configuration. If the display state is not explicitly set in the view’s PropertyManager, SolidWorks uses the display state that was active when the view was created, or the last-saved display state in the assembly.
This creates the hidden-by-default trap: you open an assembly, switch to a display state with many components hidden to focus on a subassembly, then create a drawing view while that display state is active. The drawing view captures the hidden-heavy display state. You later add components to the assembly from the full display state, those components appear in the assembly, but they’re hidden in the drawing view because the view references the focused display state. You try to show them in the drawing and find the mechanism does nothing.
The tell: in the drawing view’s FeatureManager, hidden components appear greyed out with an eye-with-slash icon. If the greyout is coming from the display state, toggling it at the view level appears to change the icon momentarily but reverts on rebuild. That revert is the display state enforcement taking effect.
Flat Pattern and Sheet Metal Drawing Views
One related area where display states affect DXF export and sheet metal drawing workflows: if you have an assembly display state that hides a sheet metal component, and a drawing view references that state, the flat pattern view derived from that drawing view will also not show the hidden component’s flat pattern. The flat pattern view inherits visibility from its parent view’s display state.
For assemblies where you’re using display states to manage visible subsets during export, this means your flat pattern DXF export from a drawing view is only as complete as what the display state makes visible. If CadShift is reading from the assembly rather than from drawing views, it bypasses this limitation by working directly with the sheet metal part files — display state visibility in the drawing view doesn’t affect the batch DXF output. The export is driven by the part files themselves, not by what the assembly display state shows in a drawing view.
Behavior to Expect Going Forward in SW2026
If you’re upgrading from SW2024 or earlier:
- Existing workarounds that relied on drawing-view show/hide overriding display states will stop working.
- The “Hide new components when inactive” option is now more prominently accessible in the display state properties, meaning more teams will enable it by default — and more teams will encounter the auto-hiding behavior in drawings.
- The consistency improvement is net positive for reliability but requires understanding the hierarchy. If components disappear from drawing views after upgrade, check which display state the view references, not the drawing view’s own hide/show list.
The fundamental rule hasn’t changed: if something is hidden in the display state, the drawing view shows it hidden. The SW2026 change is that this rule now applies consistently, where before it applied most of the time.
For how SolidWorks stores and structures drawing files internally — including where display state references are stored within the .slddrw OLE Structured Storage container — the drawing file format reference covers the internal representation.
For managing flat pattern views in drawings from assemblies, where display state assignment to drawing views becomes important for controlling what shows in the flat layout, the flat pattern view assembly drawing guide covers the View Palette and PropertyManager setup in detail.