Admin asset types
An Asset Type is a definition made up of a set of attributes. You can create your own Asset types. Assets of those types can then be created.
Parent-child tree
Asset types can have parent-child relationships to each other, thus forming hierarchical trees. Assets of Parent types will contain assets of Child types.

View, edit, clone and delete asset types
Click Asset Types in the left menu:
Search or filter the asset types you want to view.
Here is an asset type example:

You can edit, clone, or delete the asset type by selecting the respective icon on the top right of the page:
Add asset type
Click Asset Types on the left menu:
Click the plus button on the top right of the page.
This is what the Details section (first one that appears) looks like:

Toggle “Asset” or “Area” to select the entity type. If you choose “Area,” you will be able to define a geofence for assets of this type.
This is what the Attributes section looks like:

This is what the Controls section looks like:

This is what the Categorize section looks like:

When done filling out the information, click the create button at the bottom of the page.
Here is a creating asset types video.
Required values
Value | Definition |
ID | The asset type’s unique ID |
Name | The asset type’s name |
Groups | The groups the asset type belongs to |
Optional values
Value | Definition |
Icon | Please select one from our icon library or upload an image |
Description | The asset type’s description |
Children | Other related asset types can be added as children of this parent asset type |
Default History View | There are different view settings for the asset type’s data history |
Device Type | The device used for the assets with this type (e.g., NimbeLink) |
Propagate location to root? | If checked, the location updates the asset and roots |
Show location on root? | If checked, assets of this type display on maps |
Store updates on root? | If checked, the updates for an asset of this type only update for the root asset and its history |
Attributes
Note: The Name value is required. Others are optional.
Value | Definition |
Name | The attribute’s name |
Label | The attribute’s displayed label |
Data Type | The attribute appearance’s data type |
Edit Widget | Sets up the widget type to edit an area’s attributes |
View Widget | How Edit Widget appears |
Keep History? | When checked, the history of changes is recorded as historical data under Areas in the Monitor tab |
Hide Attribute? | When checked, it hides the attribute |
Read Only Attribute? | When checked, the attribute cannot be edited by a user |
Image Attributes
Attributes of type Image can be added to Asset Types. The choices for Edit Widget are Text input or Text area. Then an image can be added to an asset by converting the image to a formatted base64 string and pasting the string into the Text input/area Edit widget.
The string should be formatted as follows:
data:<MIME_type>:base64,<image-as-base64-encoded-string>
For example…
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADl…
Commonly used examples of MIME_type are:
image/jpeg
image/png
image/bmp
Others can be used as well.
There are free online tools available that will convert images into properly formatted base64 strings.
Calculated Attributes
Calculated attributes are a powerful way to create new values based on multiple attributes, utilizing a powerful formula builder. These formulas can contain a number of operators, functions, and variables. When adding an attribute, after setting a name for the attribute, click the “Calculated Attribute?” checkbox at the bottom to open the formula builder.

Example formulas
Calculate Fahrenheit from a Celsius attribute -
(celsius * (9/5)) + 32
Total energy usage for a building (note: there are multiple ways to solve this)
reduce(childLightBulbs, childLightBulb.energyUsage)
sum(map(childLightBulbs, childLightBulb.energyUsage))
reduce with filterreduce(filter(childLightBulds, childLightBulb.isReporting == true), childLightBulb.energyUsage)map with filtersum(map(filter(childLightBulbs, childLightBulb.isReporting == true), childLightBulb.energyUsage))
Condition where temperature is over set point
currentTemp > (setPoint + 2)
Types of operators
Arithmetic
Type | Definition |
|---|---|
Addition (+) | To add two numbers or variables |
Subtraction (-) | To subtract one number or variable from another |
Multiplication (*) | To multiply two numbers or variables |
Division (/) | To divide one number or variable by another |
Modulo (%) | To find the remainder of the division of one number by another |
Comparison
Type | Definition |
|---|---|
Equal to (==) | To check if two values are equal |
Not equal to (!=) | To check if two values are not equal |
Greater than (>) | To check if one value is greater than another |
Less than (<) | To check if one value is less than another |
Greater than or equal to (>=) | To check if one value is greater than or equal to another |
Less than or equal to (<=) | To check if one value is less than or equal to another |
AND (&&) | To check if both conditions are true |
OR (||) | To check if at least one condition is true |
NOT (!) | To invert the truth value of a condition |
Types of Functions
Aggregate
Type | Definition |
|---|---|
SUM(array[]) | To find the sum of a list of numbers |
AVG(array[]) | To find the average of a list of numbers |
MIN(array[]) | To find the minimum value in a list of numbers |
MAX(array[]) | To find the maximum value in a list of numbers |
String
Type | Definition |
|---|---|
concat(string1, string2, …string) | To concatenate multiple strings into one |
replace(original, regex, replacement) | To replace parts of a string |
split(string, delimiter) | To split a string into an array based on a delimiter |
join(array, delimiter) | To join an array of strings into a single string with a delimiter |
match(string, regex) | To match a string against a regular expression |
Array
Type | Definition |
|---|---|
map(array, mapOperation) | To map elements of an array to another array |
reduce(array, reduceOperation) | To reduce an array to another value |
filter(array, filterOperation) | To filter elements from an array |
length(array) | To get the length of an array |
contains(array, value) | To check if an array contains a specific value |
indexof(array, value) | To get the index of a value in an array |
Conditional
Type | Definition |
|---|---|
if(condition, true_value, false_value) | To return a value based on a condition |
case(expression, value1, result1, value2, result, …, else_result) | To return a value based on multiple conditions |
Statistical
Type | Defintion |
|---|---|
median(array[]) | To find the median of a list of numbers |
stddev(array[]) | to calculate the standard deviation of a list of numbers |
variance(array[]) | To calculate the variance of a list of numbers |
percentile(array[]) | To find the percentile of a list of numbers |
Controls
Value | Definition |
ID | The control’s ID |
Widget Type | The attribute’s displayed label |
Control Type | Fire and Forget is the default |
Label | The control’s label |
Variant | The label’s display |