> For the complete documentation index, see [llms.txt](https://docs.layermanager.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layermanager.xyz/fundamentals/main-concepts/lamadata/lamatables.md).

# LamaTables

LamaTables store the semantic data. There are five major types of LamaTables: <mark style="color:blue;">**ElementTable**</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**DropdownTable**</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**BoolTable**</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**TextTable**</mark> and <mark style="color:blue;">**NumberTable**</mark>.

LamaTables have several <mark style="background-color:yellow;">characteristics</mark> that differ from "normal" tables:

### 1) Rhino binding

A LamaTable is closely related to Rhino. In this regard, there are two different types of LamaTables: \
\- <mark style="color:blue;">**RhinoTables**</mark> which are related to <mark style="background-color:yellow;">geometrical rhino objects</mark> (ElementTable)\
\- <mark style="color:blue;">**LayerTables**</mark> which are related to <mark style="background-color:yellow;">rhino layers</mark> (all other tables)

| RhinoTables (=> Rhino objects) | LayerTables (=> Rhino layers) |
| ------------------------------ | ----------------------------- |
| ElementTable                   | DropDownTable                 |
|                                | BoolTable                     |
|                                | TextTable                     |
|                                | ValueTable                    |

In more detail, the <mark style="background-color:yellow;">rows of a LamaTable belong to rhino objects</mark> <mark style="color:blue;background-color:yellow;">**(RhinoRow)**</mark> <mark style="background-color:yellow;">or layers</mark> <mark style="color:blue;">**(LayerRow)**</mark> respectively. In such kind of row, the rhino object or layer is referenced through its ID stored in the ObjectId column. Additionally, LayerRows store the name, color and visibility of the respective layer.

{% tabs %}
{% tab title="RhinoTables" %}

<div align="left"><figure><img src="https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FT5GVv9HLQf2WBjv60cwX%2Fimage.png?alt=media&amp;token=057cb6fd-be5c-45ca-8cdc-4162f2e1249e" alt="" width="563"><figcaption></figcaption></figure></div>
{% endtab %}

{% tab title="LayerTables" %}

<div align="left"><figure><img src="https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FgErwYtNlCiPVhZtyXJY3%2Fimage.png?alt=media&amp;token=30ac996a-c7d0-4f72-a614-9295cf816163" alt="" width="563"><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

### 2) Attributes

An attribute of a LamaTable is an <mark style="background-color:yellow;">additional column</mark> (beyond the basic structure of the table). An additional column can be described bz the Column type, UI behaviour, and Multiple setting.

**+ Column type:** An additional column is either a <mark style="color:blue;">**ClassColumn**</mark> or a <mark style="color:blue;">**LeafColumn**</mark>*.*&#x20;

{% tabs %}
{% tab title="ClassColumn" %}
A ClassColumn is created by <mark style="background-color:yellow;">relating to a another LamaTable</mark>. This is how LamaTable <mark style="background-color:yellow;">trees</mark> can be created.
{% endtab %}

{% tab title="LeafColumn" %}
LeafColumns allow to <mark style="background-color:yellow;">create attributes without creating LamaTables</mark>. Leaf columns aim to keep the number of LamaTables low.&#x20;
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Once the column is created, the column type cannot be changed.
{% endhint %}

**+ UI behaviour:** The ClassColumns and LeafColumns belong to different UI behaviour depending on the data type.

For LeafColumns the data type can be set manually.

<figure><img src="https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FrchvSdlvHX7adnaBp6we%2Fimage.png?alt=media&amp;token=7185793d-59e9-4e92-ab4b-cc76c6908417" alt="" width="547"><figcaption></figcaption></figure>

For ClassColumns the data type depends on the related LamaTable (*Hint*: That's where the names of the tables come from).

{% tabs %}
{% tab title="Element" %}
![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2Fhmmj1SrbEtN8yTYaseWs%2Fimage.png?alt=media\&token=0e2d2797-bd72-4605-a357-10d5e0ff015b)
{% endtab %}

{% tab title="Dropdown" %}
![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FTcfFyOICSOvGYS2tJr4H%2Fimage.png?alt=media\&token=18e271a0-60d3-4925-a13e-0736d09ada95)
{% endtab %}

{% tab title="Bool" %}
![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FxT4VaY8TwCi90IEemuyM%2Fimage.png?alt=media\&token=be9059b8-3c30-420d-ae00-f58560edce6a)
{% endtab %}

{% tab title="Text" %}
![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FdCxmgjluFOk2McfYxrRW%2Fimage.png?alt=media\&token=df551205-d20a-4025-831e-5eb26eee8fef)
{% endtab %}

{% tab title="Number" %}
![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FVw5TiWQOqdkO5kuv3A0e%2Fimage.png?alt=media\&token=7fff5a91-9f09-4c9c-a2a0-1603535942e2)
{% endtab %}
{% endtabs %}

| ClassColumn (Pros)                                     | LeafColumn (Pros)               |
| ------------------------------------------------------ | ------------------------------- |
| + Support deep table tree                              | + Reduces the no. of LamaTables |
| + Dropdown UI behaviour (DropDownTable)                |                                 |
| + Relations to geometrical rhino objects (RhinoTable)  |                                 |
| + Values can be visualized through Layers (LayerTable) |                                 |
|                                                        |                                 |

**+ Multiple setting:** Both ClassColumns and LeafColumns can be set as multiple (so that <mark style="background-color:yellow;">several values can be represented in one cell</mark>).

<figure><img src="https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FOhgNOFyDia66Kz1lBMLQ%2Fimage.png?alt=media&amp;token=471dba42-f4e7-4da2-af1b-a2da2e25781d" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FcHeltqo8TT5ERRNVrP1w%2Fimage.png?alt=media&amp;token=1320aa62-7808-4784-862b-be6ecfeeed4c" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
The attributes must be assigned to a <mark style="color:blue;">**LamaCategory**</mark>. LamaCategories allow to structure your attributes.
{% endhint %}

### 3) Matching

A LamaTable covers <mark style="color:blue;">**matching criteria**</mark> against which an attribute value can be <mark style="background-color:yellow;">evaluated to identify the row</mark> the attribute value belongs to.&#x20;

{% tabs %}
{% tab title="Element" %}
Returns the first row, where the attribute value <mark style="background-color:yellow;">directly matches</mark> the value of the column "ObjectId".

![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2Fyo1wKPRP2NICYe9Rr8Mw%2Fimage.png?alt=media\&token=9cb46159-df5d-4518-b32b-5741ab82320b)
{% endtab %}

{% tab title="Dropdown" %}
Returns the first row, where the attribute value <mark style="background-color:yellow;">directly matches</mark> the value of the column \[Table name].

![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FwYwtExDM6pPnCUy2eTWU%2Fimage.png?alt=media\&token=5dcc3baf-6176-4064-b646-4f72002f69c7)
{% endtab %}

{% tab title="Bool" %}
Returns the first row, where the attribute value <mark style="background-color:yellow;">directly matches</mark> the value of the column \[Table name].

![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FrnxlPfkbthk4aymMYDAO%2Fimage.png?alt=media\&token=ddecd908-80d7-4525-b197-a5fb5aa43b59)
{% endtab %}

{% tab title="Text" %}
Returns the first row, where the attribute value <mark style="background-color:yellow;">contains</mark> the value of the column "Text".

![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2Ff6dM2NlUGAPX0NglA1vd%2Fimage.png?alt=media\&token=ff61d3c6-15c2-4613-a00f-36ec39be64bf)
{% endtab %}

{% tab title="Number" %}
Returns the first row, where the attribute value <mark style="background-color:yellow;">is in the range between</mark> the values of the columns "Min" and "Max".

![](https://2912411633-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM8QsdAkZioZnHsW8B4Sc%2Fuploads%2FRpT0WAUZtugWIuMGE0Bj%2Fimage.png?alt=media\&token=353604e1-4f8d-4a23-916d-3aa554ec9429)
{% endtab %}
{% endtabs %}

| LamaTable | Matching rule         | Matching column |
| --------- | --------------------- | --------------- |
| Element   | direct match          | ObjectId        |
| Dropdown  | direct match          | \[Table name]   |
| Bool      | direct match          | \[Table name]   |
| Text      | contains              | Text            |
| Number    | between min. and max. | Min, Max        |

The layer of an attribute value can be identified through the matching criteria (since a row of a LayerTable belongs to a layer).

***

{% content-ref url="/pages/eApvaf8HavvsAMLpJxGJ" %}
[Create LamaTables](/user-manual/how-to.../management/create-lamatables.md)
{% endcontent-ref %}

{% content-ref url="/pages/ZGgKWILeDg4eiEkgAdOJ" %}
[Create attributes](/user-manual/how-to.../management/create-attributes.md)
{% endcontent-ref %}

{% content-ref url="/pages/kti0UT8LhLMhyiupLUX5" %}
[Use table trees](/user-manual/how-to.../management/use-table-trees.md)
{% endcontent-ref %}
