# Location Types

Every Location in MapsIndoors must belong to exactly one Location Type. Types are the primary way to group Locations of the same kind — and they are the middle layer in the Display Rule hierarchy, sitting between the Solution-wide Main Display Rule and individual Location overrides.

***

### What Types do

Types serve two purposes:

**Styling** — each Type has its own Display Rule, which controls the default icon, label, polygon, and other visual settings for every Location of that Type. When you change a Type's Display Rule, every Location of that Type inherits the change — unless a Location has its own override set.

**Grouping** — Types give Locations a semantic identity. Examples include "Meeting Room", "Restroom", "Coffee Machine", or "Emergency Exit". This identity is used when filtering Locations in the CMS and when targeting Locations by Type in the SDK at runtime.

> Types are for styling and identity. If you want to group Locations for browsing or filtering in your app, use [Categories](https://docs.mapsindoors.com/products/cms/location-categories) instead.

***

### Types in the Display Rule hierarchy

Types sit at the middle level of the three-level Display Rule hierarchy:

```
Main Display Rule  (Solution-wide defaults)
└── Type Display Rule  (overrides for all Locations of this Type)
    └── Location Display Rule  (overrides for a single Location)
```

A Type only needs to define the settings it wants to differ from the Main Display Rule — everything else is inherited. Similarly, individual Locations only need to override what differs from their Type.

For a full explanation of how inheritance works, see [Display Rules](https://docs.mapsindoors.com/products/cms/display-rules).

***

### Type settings

Each Type has the following configurable properties in the CMS:

**Name** — the display name of the Type, translatable into all languages defined on your Solution.

**Icon** — the default icon shown for all Locations of this Type. Inherited from the Main Display Rule unless overridden here.

**Selectable** — whether Locations of this Type are clickable on the map. Can be set to selectable, not selectable, or inherit from Solution Settings.

**App User Role restrictions** — restrict which App User Roles can see Locations of this Type.

**Custom Properties** — key-value pairs that can be used to attach structured metadata to all Locations of this Type. See [Custom Properties](https://docs.mapsindoors.com/products/cms/custom-properties).

**Display Rules** — the full set of visual styling options for this Type. Accessed via the Edit Display Rules button in the Types list.

***

### Managing Types

Types are managed in **Solution Details → Types**. From the Types list you can:

* Create a new Type
* Edit a Type's name, selectability, restrictions, and Custom Properties
* Edit a Type's Display Rules
* Delete one or more Types

When you create a new Location, you must assign it a Type. The Location will inherit all Display Rule settings from that Type until you override them individually.

***

### Related concepts

* [Display Rules](/cms/core-concepts/display-rules.md) — how the visual hierarchy works
* [Location Categories](/cms/core-concepts/interactive-blocks.md) — grouping Locations for app filtering and browsing
* [Data Concepts](/cms/core-concepts/markdown.md) — how Locations fit into the broader data hierarchy


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mapsindoors.com/cms/core-concepts/integrations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
