# Data Concepts

***

### description: Understand how MapsIndoors data is structured — from Solution down to individual Locations.

## Data Concepts

All data in MapsIndoors is organised in a hierarchy. Understanding this structure helps you know where to find things in the CMS, how changes at one level affect others, and how to think about your map before you start editing it.

***

### The hierarchy

```
Solution
└── Venue
    └── Building / Outside
        └── Floor
            └── Location (Room, Area, or POI)
```

Each level lives inside the one above it. A Solution contains Venues, Venues contain Buildings, Buildings contain Floors, and Floors contain Locations.

***

### Solution

A Solution is the top level of your MapsIndoors data. It contains everything — all your Venues, Buildings, Floors, and Locations — as well as your configuration, Display Rules, Location Types, and integrations.

Most organisations have a single Solution. Having multiple Solutions is possible but uncommon, and data is not shared between Solutions.

***

### Venue

A Venue is a geographical area — typically a campus, site, or facility. A Solution can contain multiple Venues. For example, a company with offices in several cities might have one Venue per city, all under the same Solution.

A Venue consists of one or more Buildings, plus an Outside area. You can set a default floor for a Venue, add a photo, and configure whether the Venue is searchable.

***

### Building

A Building occupies space within a Venue and is made up of one or more Floors. Inside a Venue, you can have multiple Buildings side by side.

**Outside** is treated similarly to a Building — it is the area within the Venue boundary that is not inside any Building. Locations can be placed in the Outside area just like inside a Building.

***

### Floor

Floors are the levels within a Building. Every Building has at least one Floor. Floors are identified by a display name (e.g. `0`, `1`, `B1`) and an index used internally to order them.

The Floor selector in the CMS lets you switch between floors and see which Locations exist on each one.

***

### Location

Locations are the individual items that appear on the map — the things your users will search for, navigate to, and interact with. There are three types:

**Room** — a polygon representing the physical boundaries of a space, such as a meeting room, restroom, or office. Rooms have walls and may have Doors connecting them to other Rooms or corridors.

**Area** — a polygon like a Room, but without walls or Doors. Areas are used to mark a section of a floor that has particular significance, such as a desk zone, a waiting area, or a branded space on an exhibition floor.

**POI (Point of Interest)** — a single point on the map with no polygon. POIs represent things that don't have a defined physical boundary — a coffee machine, a reception desk, a temporary event structure, or any amenity you want users to be able to find.

All Locations belong to a [Location Type](/cms/core-concepts/integrations.md), which controls their default appearance via Display Rules. Locations can also be assigned to one or more [Categories](/cms/core-concepts/interactive-blocks.md) for filtering and browsing in your app.

***

### Tiles

Tiles are the pre-rendered building blocks of your base map. Imagine your floor plan chopped into a grid of small, uniform images that fit together like a mosaic. This "tiling" technique is what allows modern map technology to load instantly and stay smooth as you pan or zoom. Tiles are created and maintained by MapsPeople from your floor plan data and are not editable directly in the CMS.

***

### Related concepts

* [Location Types](/cms/core-concepts/integrations.md) — how Locations are grouped and styled
* [Display Rules](/cms/core-concepts/display-rules.md) — how the appearance of Locations is controlled
* [Location Categories](/cms/core-concepts/interactive-blocks.md) — how Locations are grouped for browsing in your app


---

# 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/markdown.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.
