> For the complete documentation index, see [llms.txt](https://docs.hamina.com/hamina/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hamina.com/hamina/simulation/align-floors.md).

# Align Floors

## Creating a Building

When a map is added to a building, the maps can be stacked up, ordered, and aligned to create the building.

{% hint style="success" %}
We recommend renaming all of the maps in your project and deleting any extras before creating a building and aligning floors, which makes for more organized projects with cleaner deliverables.
{% endhint %}

There are three workflows that can be used to create a building:

1. **Construct building** (blue button): Looks at **all floors in the project**, moves them into the building, and uses AI to sort them from lowest to highest based on the map names. It then runs AI scaling on every floor (overwriting any manual scale), draws walls, and applies building edges.
2. **Align floors** (grey button): For every floor currently **in the building**, runs AI-based scaling on each floor (overwriting any manual scale previously set on that floor), then aligns all of those floors to each other. Floors that are not in the building are left untouched.
3. **Manual floor alignment**: Where the user manually adds floors to the building, sets the floor order, and manually aligns the floors with each other.

### Automatic Building Construction

Using the **Construct Building** (blue button) in the **Align floors** pane will:

* Decide which floors to include or not include in the building.
* Order the floors from top to bottom, based on the map names.
* Set the scale of the floors using machine learning.
* Align the floors, including applying rotation.

<div align="left"><figure><img src="https://1547340717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzUQ3TfKTYBeb6nf9W8Hv%2Fuploads%2FhL2OUWrCW72CG0XwnWnl%2Fconstruct_building_button.png?alt=media&amp;token=482a29c8-7658-425d-ad60-3448b6eef166" alt="" width="563"><figcaption></figcaption></figure></div>

To use Automatic Building Construction:

1. Add the maps to the project.
2. While not technically required, it's recommended to rename maps and delete extras that you don't need.
3. Activate the **Align floors** tool.
4. At the bottom of the **Align floors** pane, click the blue **Construct Building** button.
5. Wait for the building construction to complete.
6. Optionally, manually set the scale on one of the floors. Since all of the floors in the building are now linked, setting the scale on will propagate to all of the other floors.
7. Set the floor height and attenuation. See [#floor-height-and-attenuation](#floor-height-and-attenuation "mention") for details.

### Automatic Floor Alignment

Using the **Align floors** (grey button) in the **Align floors** pane will scale and align the floors, including applying rotation. It will not change which floors are included, nor will it change the floor order. If a manual scale is set on one or more floors, then the lowest floor in the building with a manual scale will be used to set the scale.

<div align="left"><figure><img src="https://1547340717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzUQ3TfKTYBeb6nf9W8Hv%2Fuploads%2FnQMUMHr6XCPsutFDNfkP%2Falign-floors-button.png?alt=media&amp;token=09725132-d31b-43eb-b4a2-5ee6d0f64cc7" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
For automatic floor alignment to, Hamina Network Planner needs to be able to find automatic walls on every floor, as the walls are used for alignment.
{% endhint %}

To use Automatic Floor Alignment:

1. Optionally, manually set the scale on a known floor.
2. Add any relevant maps to the building by dragging them up into building. Optionally, use the **Assign all to building** link.
3. Wait for Hamina to finish finding walls on all of the floors.
4. At the bottom of the **Align floors** pane, click the grey **Align floors** button.
5. Wait for the floor alignment to complete.
6. Optionally, if you didn't already set a manual scale on a known floor, manually set the scale on one of the floors. Since all of the floors in the building are now linked, setting the scale on will propagate to all of the other floors.
7. Set the floor height and attenuation. See [#floor-height-and-attenuation](#floor-height-and-attenuation "mention") for details.

### Manual Floor Alignment

To add floors to the building for alignment:

1. Ensure that at least one map has the correct scale, and select it with the **Floor** menu at the top.
2. Click on the **Floor alignment** tool in the toolbar on the left.
3. In the **Floor alignment** pane on the left, drag any desired floors into the build area at the top.
4. Drag the floors into the correct order within the building, with the lower floors on the bottom of the list.

<div align="left"><figure><img src="https://1547340717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzUQ3TfKTYBeb6nf9W8Hv%2Fuploads%2FuaOrhdeNJ0JLyy8PWFtM%2Fadd_floors.gif?alt=media&amp;token=7182de07-7206-446b-87b4-85093cfe02d2" alt="" width="360"><figcaption></figcaption></figure></div>

#### Aligning Floors

Floor alignment is accomplished by dragging the yellow map until it aligns with the black map.

* The **black map** is the the current floor, e.g. the map that is selected with the **Floor** menu on the top.
* The <mark style="color:yellow;">**yellow map**</mark> is the floor that is currently being moved and resized. The position and scale of the yellow map is changed in relation to the position and scale of the black map. You can change which map you want to move and resize by clicking on other maps in the **Floor alignment** pane.

<div align="left"><figure><img src="https://1547340717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzUQ3TfKTYBeb6nf9W8Hv%2Fuploads%2F0f56ZJp0KCqrXebmhxV4%2Falignment_colors.png?alt=media&amp;token=7d97faa4-e3ad-42f1-9195-37057539a65c" alt=""><figcaption></figcaption></figure></div>

Align the floors by identifying common features between floors, such as elevators and stairwells.

<div align="left"><figure><img src="https://1547340717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzUQ3TfKTYBeb6nf9W8Hv%2Fuploads%2F9uEUaDM1nDkpmPEv2VNx%2Fdrag_floors_to_align.gif?alt=media&amp;token=2169309b-0fc9-4fb6-a8df-9bda3f036733" alt="" width="525"><figcaption></figcaption></figure></div>

#### Resizing Floors

In addition to clicking and dragging the yellow map around, you can also use the corner handles to resize the map. The <mark style="color:yellow;">**yellow map**</mark> scale will change, respecting the scale of the **black map**.

{% hint style="danger" %}
It's a good idea to set the known scale on an "anchor" floor, select it in the **Floor** dropdown, and use that as the source of truth for scaling in the project.
{% endhint %}

## Floor Height and Attenuation

The height of each floor and the attenuation of each floor is editable. The attenuation value is for the the space between the current floor and the ceiling of the floor below.

Hamina Network Planner models a static floor thickness of 0.5 meters, and calculates loss on a per-meter basis as the RF travels through the floor.

The input value is the total loss for a vertical RF path through the floor, in other words, the shortest possible path through the floor.

The more oblique (slanted) the RF path through the floor is, the longer a distance the RF must travel to get through the floor, and the more loss the signal will experience.

{% hint style="info" %}
**Why doesn't Hamina Network Planner offer floor thickness and loss per meter controls?**

While some tools do offer the ability to configure the exact floor thickness, and to input how many dB of loss per meter the floor has, getting those measurements from a real building is very challenging. The network designer must be able to measure the floor thickness, calculate how much dB of loss there is from floor to floor, and understand how far the RF had to travel to get through the floor (if at an angle) to be able to calculate how many dB of loss per meter there is in the floor.

Hamina decided to take a more practical approach, and accept a simple vertical RF loss value.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hamina.com/hamina/simulation/align-floors.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
