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

# Device templates and modeling

> Create reusable device configurations with point mappings, tags, and normalization rules to standardize equipment across your portfolio.

Device templates are reusable configurations that define the standard point structure, normalization rules, and tags for a specific type of equipment. Instead of manually configuring each device, you create a template once and apply it to all similar devices across your building or portfolio.

## How templates work

A device template defines:

* **Point mappings** that associate raw point names from the data source with standardized names in the Cloud BMS <Tooltip tip="A standardized model of equipment types, points, and relationships used across Cloud BMS modules.">ontology</Tooltip>
* **Normalization rules** that standardize units, naming conventions, and data types
* **Tags and classifications** based on the <Tooltip tip="An open-source schema for describing building equipment, points, and relationships.">Brick Schema</Tooltip> or <Tooltip tip="An industry tagging model for building systems and points, commonly used alongside Brick.">Haystack</Tooltip> ontology
* **Entity type definitions** that categorize the device (for example, AHU, VAV, FCU)

When you apply a template to a device, Cloud BMS maps the device's discovered points to the template's standardized definitions. This ensures consistent naming and classification across devices from different manufacturers.

## Point modeling

Point modeling is the process of mapping raw point names to standardized ontology fields. You access Point Modeling from a device's detail page. The interface displays each point group with its raw name, mapped ontology field, point count, and template status.

<Frame caption="The Points Modeling page shows each point group with its field mapping, template status, and a panel of compatible ontology fields on the right">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-points-modeling-overview.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=79f002e58331e8df9d073269c8fc3fda" alt="Points Modeling page for a VAV device showing point groups like DA_Flow, DA_Flow_SP, and DA_T with their mapped ontology fields, and a right panel listing compatible fields filtered by category" width="1024" height="527" data-path="images/kode-os/devices/kode-os-devices-points-modeling-overview.png" />
</Frame>

Toggle **Group by Ontology** to organize point groups by their ontology categories (such as Discharge Airflow Control, Discharge Damper, or Discharge Temperature Control) instead of a flat list.

<Frame caption="Group by Ontology organizes point groups under their ontology category headings">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-group-by-ontology.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=5d7b0c28f94b27adc3cebf280507e8f3" alt="Points Modeling page with Group by Ontology enabled, showing point groups organized under Discharge Airflow Control, Discharge Damper, and Discharge Temperature Control headings" width="1024" height="588" data-path="images/kode-os/devices/kode-os-devices-group-by-ontology.png" />
</Frame>

The standardized field format follows this structure:

`[aggregator]_[descriptor]_[component]_[measurement descriptor]_[measurement]_[point type]`

For example, a raw point named `SA-T` might map to `supply_air_temperature_sensor`.

### Entity types

The Cloud BMS ontology defines four entity types:

* **Canonical** entities are equipment templates (the primary device definitions) that contain mandatory field groups
* **Abstract** entities compose canonical types and define reusable field groups
* **General** entities apply to all canonical types and define common fields like running status and operation commands
* **Virtual** entities represent calculated fields that do not correspond to physical sensors

## Create a device template

<Steps>
  <Step title="Navigate to point modeling">
    From the building view, go to **Devices** and select a device. Open the **Points Modeling** tab to see all discovered point groups. Use the **device type** dropdown at the top of the page to select the ontology device type (for example, `vav`, `ahu`, `boiler`). This determines which ontology fields are available for mapping.

    <Frame caption="The device type dropdown lets you select the ontology type that defines available fields for this device">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-ontology-device-type.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=c5571c24aec90f8cdbe1517381701323" alt="Device type dropdown expanded showing a searchable list of ontology types including ahu, airCompressor, airQuality, ats, av, blinds, boiler, boosterPump, bridge, camera, and cav" width="686" height="505" data-path="images/kode-os/devices/kode-os-devices-ontology-device-type.png" />
    </Frame>
  </Step>

  <Step title="Map points to ontology fields">
    Select an unmapped point group to expand it. Cloud BMS shows the inline field selector where you can accept a suggested mapping or choose a different one.

    <Frame caption="The inline field selector lets you accept, reject, or get more details on a suggested ontology mapping">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-inline-field-suggestion.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=f2831b49830a76f4e4f0b380be66001c" alt="Inline field suggestion for DA_T showing Discharge Air Temp with accept, cancel, and info icons, and templated status 0 of 1" width="1024" height="333" data-path="images/kode-os/devices/kode-os-devices-inline-field-suggestion.png" />
    </Frame>

    <Info>
      When selecting a point group, fields will be filtered based on:

      * **Point Kind**
      * **Unit Category** (Number Points)
    </Info>

    You can also use the **field panel** on the right side of the page to search and filter for ontology fields. Use the search bar, unit category tags, and the **Compatible Only** checkbox to narrow results, then click **Apply** to assign a field.

    <Frame caption="The field panel lets you search, filter by unit category, and apply an ontology field to the selected point group">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-field-search-panel.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=1214fb082d23895ae70c70a041496afa" alt="Field search panel filtered by Number and temperature showing Discharge Air Temp, Discharge Air Temp Setpt, Max Discharge Temp Setpt, and Min Discharge Temp Setpt with an Apply button" width="1024" height="319" data-path="images/kode-os/devices/kode-os-devices-field-search-panel.png" />
    </Frame>

    Use the **sort and view** menu in the field panel to control how fields are listed. Sort by **Most Used**, **Name: A to Z**, or **Name: Z to A**, and toggle between **Ungrouped** and **Ontology Groups** views.

    <Frame caption="The field panel sort menu lets you order fields and switch between ungrouped and ontology-grouped views">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-field-panel-sort-options.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=0a3ff7a56383748f32df5143dec91395" alt="Field panel sort menu showing Sort by options for Most Used, Name A to Z, and Name Z to A, and View Options for Ungrouped and Ontology Groups" width="595" height="417" data-path="images/kode-os/devices/kode-os-devices-field-panel-sort-options.png" />
    </Frame>
  </Step>

  <Step title="Use AI-powered suggestions">
    Hover over a mapped point group to reveal the action toolbar. Click the **Suggest with AI** icon to get mapping recommendations. Cloud BMS offers two suggestion modes:

    * **Suggest with AI** recommends fields based on general AI knowledge and common naming patterns
    * **Historical** recommends fields based on how similar points were modeled in your organization

    <Frame caption="The Suggest with AI menu provides AI-based and historical mapping recommendations">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-suggest-with-ai.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=a4e853a61c6ff3a172fac12cc6612d04" alt="Suggest with AI dropdown showing two options: Suggest with AI based on general AI knowledge and common patterns, and Historical based on how similar points were modeled in your organization" width="1024" height="327" data-path="images/kode-os/devices/kode-os-devices-suggest-with-ai.png" />
    </Frame>
  </Step>

  <Step title="Map enum points">
    For points with enum values (such as occupancy mode), Cloud BMS displays a mapping panel where you configure each enum state. Select the correct value for each state (for example, **Occupied**, **Unoccupied**, or **None**) and set writability per occupancy mode.

    Map enum values for Boolean and string points before you use devices in FDD or FTT. Unmapped enum values can block compatibility and command logic.

    <Frame caption="The enum mapping panel lets you map each enum state and configure writability per mode">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-enum-mapping.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=13a3fbc05a3440c2d57c19e1da06a002" alt="Enum mapping panel for Occ_Mode showing UnOccupied and Occupied Point Enum states with Occupied, Unoccupied, and None radio options, and Writability settings per mode with Suggest with AI and Save buttons" width="1024" height="412" data-path="images/kode-os/devices/kode-os-devices-enum-mapping.png" />
    </Frame>
  </Step>

  <Step title="Review issue indicators">
    Before you save, review issue indicators on point groups:

    | Indicator                   | Meaning                                                                                      |
    | --------------------------- | -------------------------------------------------------------------------------------------- |
    | **Duplicate Points**        | Two or more points on a device share the same name                                           |
    | **Multiple-Fields Applied** | Field, unit, display name, or precision differs within the group. Hover the `?` for details. |
    | `Missing Enums`             | Boolean or string points are missing enum values                                             |
    | `Not Mapped`                | Enum values are not mapped to ontology fields                                                |
    | `Partially Mapped`          | Some enum values are mapped, but not all                                                     |
    | `Mapped`                    | All enum values are mapped                                                                   |

    Resolve duplicates and complete enum mapping when devices must work with FDD or FTT.
  </Step>

  <Step title="Save the template">
    After mapping all points, save the configuration as a reusable template. Name the template to reflect the equipment type and configuration (for example, `AHU-Standard-4Pipe`).
  </Step>
</Steps>

## Edit field configurations

When a point group is mapped, you can fine-tune its field settings. Hover over the point group and click the **edit** icon to open the field configuration panel.

<Frame caption="The field configuration panel lets you update display name, COV tolerance, graph defaults, and writability">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-edit-field-configs.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=fe28faba27d789fd1e94e1df966a3cec" alt="Edit field configs panel showing Original Name, Display Name with Prefix, Suffix, Name in Connector, and Data Interval tags, COV Tolerance set to 1, Default on Graph checkbox, Allow writability toggle, and Override checkbox" width="550" height="494" data-path="images/kode-os/devices/kode-os-devices-edit-field-configs.png" />
</Frame>

The configuration panel includes:

| Setting               | Description                                                                                                                                                                                                                        |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Original Name**     | The raw point name from the data source                                                                                                                                                                                            |
| **Display Name**      | A human-readable label shown across the platform, with optional Prefix, Suffix, Name in Connector, and Data Interval tags                                                                                                          |
| **COV Tolerance**     | The change-of-value threshold that controls when new data is recorded                                                                                                                                                              |
| **Default on Graph**  | Whether this point appears on trend graphs by default                                                                                                                                                                              |
| **Allow writability** | Whether the point accepts write commands from users. When enabled, choose which actions the point accepts: `Override`, `Set`, and optionally `Set in Slot16`. Enable writability for command points that FTT workflows must write. |
| **Override**          | Whether the point accepts `Override` commands (typically priority 8)                                                                                                                                                               |
| **Set**               | Whether the point accepts `Set` commands (fallback or default value by default)                                                                                                                                                    |
| **Set in Slot16**     | Whether `Set` writes to priority 16 instead of the fallback or default (Niagara only)                                                                                                                                              |

## Manage point groups

The action toolbar on each point group provides controls for managing mappings.

### Multi select

Click **Multi Select** to select multiple point groups at once. A bulk action toolbar appears at the bottom of the page with options to **Suggest with AI**, **Delete Groups**, **Clear Modeling**, **Map Enums**, or **Apply Field to Selected**.

<Frame caption="Multi Select mode lets you select multiple point groups and apply bulk actions from the bottom toolbar">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-multi-select.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=dc4c23580f6f6b515519e1cded8859f6" alt="Points Modeling in Multi Select mode with two point groups checked, showing a bottom toolbar with Suggest with AI, Delete Groups, Clear Modeling, Map Enums, and Apply Field to Selected buttons" width="1024" height="838" data-path="images/kode-os/devices/kode-os-devices-multi-select.png" />
</Frame>

### Individual actions

<Tabs>
  <Tab title="Delete points">
    Click the **delete** icon to remove all points in the group from their corresponding devices.

    <Frame caption="The delete confirmation prompts you before removing points from devices">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-delete-points.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=655b5fc8e842dda05406b9b4f8e15376" alt="Delete Points confirmation dialog stating all points from the group will be deleted from the corresponding devices, with Cancel and Delete buttons" width="640" height="341" data-path="images/kode-os/devices/kode-os-devices-delete-points.png" />
    </Frame>
  </Tab>

  <Tab title="Clear ontology field">
    Click the **clear** icon to remove the ontology field mapping from the point group. Use this when a mapping is incorrect and needs to be reassigned.

    <Frame caption="Clearing an ontology field warns about potential impacts on FDD, FTT, and BBI">
      <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-clear-ontology-field.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=cf7335098d84cef223ce17551a94e179" alt="Clear Ontology field confirmation dialog warning that clearing the field may cause issues if the points are already used on FDD, FTT, or BBI, with Cancel and Clear buttons" width="649" height="388" data-path="images/kode-os/devices/kode-os-devices-clear-ontology-field.png" />
    </Frame>

    <Warning>
      Clearing an ontology field may cause issues if the points are already used in FDD, FTT, or BBI applications.
    </Warning>
  </Tab>
</Tabs>

## Apply a template to devices

You can apply a template to one or multiple devices at a time.

<Steps>
  <Step title="Open batch update">
    Go to **Devices** and click **Batch Update Devices** in the upper right corner.
  </Step>

  <Step title="Select target devices">
    Filter and select the devices that match the template's equipment type.
  </Step>

  <Step title="Apply the template">
    Choose the template from the available list and apply it to the selected devices. Cloud BMS maps each device's discovered points to the template definitions.
  </Step>

  <Step title="Review results">
    Verify that points were mapped correctly. Devices with unmatched points are flagged for manual review.
  </Step>
</Steps>

## Review modeling

After mapping points, use the **Review** menu to validate your modeling work. Click **Review** in the top toolbar to choose between two review modes.

<Frame caption="The Review menu lets you review mapped fields or matched entities">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-review-menu.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=fac6414c9b9615d93a1a052352f9cb4a" alt="Review dropdown menu showing Review Fields and Review Entities options" width="512" height="204" data-path="images/kode-os/devices/kode-os-devices-review-menu.png" />
</Frame>

### Review fields

Select **Review Fields** to open the Review Modeling dialog. The left panel lists all mapped ontology fields with their point counts. Use the **Filter mode** dropdown to find devices that either contain all selected fields or are missing specific fields.

<Frame caption="Review Modeling shows all mapped fields and the devices that match your filter criteria">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-review-modeling.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=2dcaffb63cb36378f2aae082b37340e9" alt="Review Modeling dialog showing a list of ontology fields on the left with point counts, a Contains All filter mode dropdown, and a device table on the right showing VAV_407 with 11 of 11 points on Floor 3" width="1024" height="606" data-path="images/kode-os/devices/kode-os-devices-review-modeling.png" />
</Frame>

### Run an ontology report

Select **Review Entities** to run an ontology report that validates whether the mapped points correctly match entity definitions.

<Frame caption="The ontology report shows matching and non-matching devices with their associated entities">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-ontology-report.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=b14756ed7c40dd8fbf38c691b23f4e5b" alt="Ontology Report for VAV showing 1 Matching and 0 Non-Matching, with VAV_407 expanded to show entities including RM, ZTS, DAF, DTS, STS, OCCLGDAFC, and others" width="677" height="534" data-path="images/kode-os/devices/kode-os-devices-ontology-report.png" />
</Frame>

The report displays a count of **Matching** and **Non-Matching** devices. Expand a device entry to see all associated entities. Each entity tag represents a recognized classification based on the mapped points.

<Tip>
  The ontology report validates that templates correctly describe device behavior. It verifies whether a point is a command or status, a number or enum, and whether the template is the right fit for the device's actual point structure.
</Tip>

## Import and export modeling

The **more actions** menu (vertical three-dot icon) provides bulk operations for managing modeling data across devices.

<Frame caption="The more actions menu provides options to remove ontology mappings, remove devices, and import or export modeling">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-more-actions-menu.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=ce9aa31a00fc5672e7b1903f5bba42a1" alt="More actions menu showing Remove Ontology, Remove Devices, Import Modeling, and Export Modeling options" width="586" height="286" data-path="images/kode-os/devices/kode-os-devices-more-actions-menu.png" />
</Frame>

| Action              | Description                                              |
| ------------------- | -------------------------------------------------------- |
| **Remove Ontology** | Clears ontology field mappings from the selected devices |
| **Remove Devices**  | Removes the selected devices from the modeling view      |
| **Import Modeling** | Imports point mappings from a template file              |
| **Export Modeling** | Exports current point mappings to a template file        |

To import modeling, click **Import Modeling** to open the import dialog. Download the template file, fill in the ontology information, then upload it to apply the mappings.

<Frame caption="The Import Modeling dialog walks you through downloading a template, adding ontology data, and uploading the completed file">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-import-modeling.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=63fa0f3c7d0bcea58c0aa0f9c2479d8d" alt="Import Modeling dialog showing three steps: Download Template, Add ontology information in provided template, and Upload template below and import your ontology, with a file upload area" width="761" height="514" data-path="images/kode-os/devices/kode-os-devices-import-modeling.png" />
</Frame>

The downloaded template file contains one row per point with the following columns:

| Column                        | Description                                                 |
| ----------------------------- | ----------------------------------------------------------- |
| **Point Name**                | The raw point name from the data source                     |
| **Point Kind**                | The data type of the point (for example, Number, Boolean)   |
| **Point Writable**            | Whether the point accepts write commands                    |
| **Point Unit**                | The unit of measurement                                     |
| **Point Enum**                | Enum values for the point, if applicable                    |
| **Canonical Type**            | The device's canonical entity type                          |
| **Ontology Field**            | The standardized ontology field name to map to              |
| **Ontology Display Name**     | The human-readable display name                             |
| **Ontology Precision**        | The number of decimal places for display                    |
| **Cov Ign Unit**              | Whether to ignore the unit for change-of-value calculations |
| **Ontology Cov Tolerance**    | The change-of-value threshold                               |
| **Ontology Default In Graph** | Whether the point appears on trend graphs by default        |
| **Ontology Prefix**           | A prefix added to the display name                          |
| **Ontology Suffix**           | A suffix added to the display name                          |
| **Ontology Write Map**        | The write value mapping for enum points                     |
| **Ontology Read Map**         | The read value mapping for enum points                      |

When you export modeling, the **Activity Log** in the bottom-right corner tracks the export progress. Once complete, click **Download .csv** to save the file.

<Frame caption="The Activity Log shows export status and provides a download link when the export completes">
  <img src="https://mintcdn.com/kodelabs/njejy12QoNdTJ3U4/images/kode-os/devices/kode-os-devices-export-activity-log.png?fit=max&auto=format&n=njejy12QoNdTJ3U4&q=85&s=fd1f06a190003933938a85db7a7b3af9" alt="Activity Log showing Exporting Modeling as .xslx with Completed status and a Download .csv button" width="338" height="164" data-path="images/kode-os/devices/kode-os-devices-export-activity-log.png" />
</Frame>

## Update a template

When you modify a template, you can propagate changes to all devices that use it. Update the point mappings, save the template, and reapply it to the affected devices through batch update.

## Next steps

<CardGroup cols={2}>
  <Card title="Batch update devices" icon="layers" href="/products/kode-os/devices/device-batch-update" arrow={true} cta="Scale">
    Apply templates and make mass edits across multiple devices.
  </Card>

  <Card title="Points" icon="circle-dot" href="/products/kode-os/points/points" arrow={true} cta="Explore">
    Understand the data values that templates organize and standardize.
  </Card>
</CardGroup>
