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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.omni.co/feedback

```json
{
  "path": "/modeling/dimensions/parameters/extends",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# extends

> Inherits configuration from a dimension defined in another view.

This parameter inherits configuration from a dimension defined in another view. Use it to centralize reusable field definitions — such as colors, formatting, or labels — in a template view, then apply them to dimensions in any view that needs them.

When a dimension extends another, attributes are inherited from the source. Attributes defined on the extending dimension override the inherited values.

<Tip>
  Pair this parameter with a [template view](/modeling/views/parameters/template) to keep reusable field configurations in a single, centralized location.
</Tip>

## Syntax

```yaml theme={null}
<dimension_name>:
  extends: [ <view_name>.<dimension_name> ]
```

## Properties

<ParamField path="dimension_name" type="object">
  The name of the dimension inheriting configuration. Dimension names must:

  * Be unique within the view
  * Start with a letter
  * Contain only alphanumeric characters and underscores

  <Expandable title="dimension_name properties" defaultOpen="true">
    <ParamField path="extends" type="array">
      A list of one or more fields this field extends, in the format `<view_name>.<dimension_name>`.

      When multiple fields are specified, earlier fields in the array take precedence. This allows inheriting properties from base/template fields while overriding specific values.
    </ParamField>
  </Expandable>
</ParamField>

## Example

The following example defines a reusable `status` dimension in a template view, then applies it to dimensions in other views.

First, create the color configuration. In this example, we're using a template view to centralize our definitions:

```yaml title="color_templates.view" theme={null}
template: true

dimensions:
  status:
    colors:
      conditions:
        - condition:
            is: Complete
          color: rgba(0, 255, 0, 0.3)
        - condition:
            is: Cancelled
          color: rgba(255, 0, 0, 0.3)
```

Then, extend the template dimension in any view that has a `status` dimension:

```yaml title="orders.view" theme={null}
dimensions:
  status:
    extends: [ color_templates.status ]
    sql: status
```

The `status` dimension in `orders` inherits the `colors` configuration from `color_templates.status`, while keeping its own `sql` definition. Updating the template view propagates the change to all dimensions that extend it.
