> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs contain multiple Speckle product experiences. For Speckle 2026.9, prefer /next/ pages for the topics and changes they cover. The navigation label Current does not override this version-specific precedence.
> Coverage under /next/ is incremental. Use Current documentation for unchanged topics and when a /next/ page says coverage is unavailable or explicitly refers you to Current. Do not infer a feature was removed from a missing page.
> Read the page-specific documentation status, applicability, affected guidance and replacement links in agent-only content. Impacted, changed and superseded apply only to the stated scope; they do not mean the entire feature is deprecated. Historical connector guides apply only to the legacy connector described.
> Match guidance to the customer's deployment version, model data format and connector. Respect plan, permission and compatibility restrictions. If an unknown version or data format changes the answer, ask a focused clarification; do not infer deployment version from the date alone.

# ViewModes

> This extension simplifies working with stock [rendering pipelines](/developers/viewer/rendering-pipeline-api/pipeline-api)

<Warning>
  For correct behavior of SHADED view mode, a FilteringExtension is required to be present when
  adding this extension
</Warning>

## Accessors

### viewMode

```typescript theme={null}
get viewMode(): ViewMode
```

Gets the current view mode.

**Returns**: [*ViewMode*](/developers/viewer/extensions/view-modes-api#viewmode)

### viewModeOptions

```typescript theme={null}
get viewModeOptions(): ViewModeOptions
```

Gets the current view mode options.

**Returns**: [*ViewModeOptions*](/developers/viewer/extensions/view-modes-api#viewmodeoptions)

## Methods

### on

```typescript theme={null}
on<T extends ViewModeEvent>(
    eventType: T,
    listener: (arg: ViewModeEventPayload[T]) => void
): void
```

Method for subscribing to view mode events.

Parameters:

* **eventType**: [*ViewModeEvent*](/developers/viewer/extensions/view-modes-api#viewmodeevent)
* **listener**: The handler for the events with [*ViewModeEventPayload*](/developers/viewer/extensions/view-modes-api#viewmodeeventpayload) arguments

**Returns**: void

### setViewMode

```typescript theme={null}
setViewMode(viewMode: ViewMode, options?: ViewModeOptions): void
```

Sets the provided [ViewMode](/developers/viewer/extensions/view-modes-api#viewmode) along with the options.

Parameters:

* **viewMode**: [*ViewMode*](/developers/viewer/extensions/view-modes-api#viewmode)
* *optional* **options**: [*ViewModeOptions*](/developers/viewer/extensions/view-modes-api#viewmodeoptions)

**Returns**: void

## Typedefs

### ViewMode

```typescript theme={null}
enum ViewMode {
  DEFAULT,
  SOLID,
  PEN,
  ARCTIC,
  SHADED
}
```

Defines the supported view modes.

### ViewModeEvent

```typescript theme={null}
enum ViewModeEvent {
  Changed = 'view-mode-changed'
}
```

Defines the supported view modes events.

### ViewModeOptions

```typescript theme={null}
type ViewModeOptions = PipelineOptions & EdgesPipelineOptions
```

A union of available [rendering pipeline options](/developers/viewer/rendering-pipeline-api/pipeline-api).

### ViewModeEventPayload

```typescript theme={null}
interface ViewModeEventPayload {
  [ViewModeEvent.Changed]: ViewMode
}
```

Defines the supported view modes events payloads.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.