Breadcrumbs

Main datasheet columns

A Data Sheet is composed of specific columns. Each column has a name (first row) and a description (second row, you can actually put any description you want).

For all columns except the dynamic ones, the name is a keyword which is used to determine the column’s function. Some columns may have one or more SubColumns (third row).

image2019-8-19_11-15-17.png

Some columns are:

  • Dynamic: column reflection defined by the associated SubColumn, the name doesn’t matter, all the information is in the subColumn

  • Mandatory: the data in the cell is needed to target the component in the row, without it, the row is ignored

  • Multiple: the column can have several SubColumns

  • Simple: the column has no SubColumns

  • Unique: there can be only one column with this name, if there are more than one, only the first one will be taken into account

  • SubComponent: multiple columns associated to a subComponent. They can accept dynamic SubColumns


Example:

Name

Display Name

Tags

Address

subcomponent:$ModbusAsyncDevice

Name of the instance to create

Display Name of the instance to create

Define the tag key in the column header or in the cells separated with ;

See Help sheet to get the syntaxes

Name of the Sub component to create



markers

address1

address2

address3

name

info:{%enabled%}

  • The Name and Display Name columns don’t have any information in the third row, they’re simple columns

  • The Address column has three values in the third row (three SubColumns), the Tags column has one value, but can have other subColumns depending on the needs

  • The subcomponent column, as its name implies is a SubComponent Column, it can accepts dynamic subColumns


Each line under this header will be associated to a component.

At the export the components will be sorted in the alphabetical order on the slotPaths.

We will now describe each main column.


Be careful with the order of columns, this may be important because columns are evaluated from left to right. Thus, you can reuse something defined in a column only in following columns on the right.

Column Internal Id


image2019-8-19_11-28-37.png
Accepted values
  • Id (String beginning with # )

Description

The goal of this column is to reference a component (the one defined on the current line) to reuse it later as a base or to add relations, links or inheritances to it from other rows. An Id must begin with the # character and must be unique in the whole excel file (You can’t have two identical ids even in different sheets). Example: #myId.

You can call for an id from another Sheet.

The value is NOT mandatory, but the column IS mandatory in a Data Sheet, without this column, the sheet won’t be considered as a Data Sheet.


IMPORT

  • Before the operation, all the ids are checked. No duplicates are allowed and each id must correspond to a valid slot path

  • The ids are not saved on station side

  • If some ids are duplicated, the system will stop the import and warn you.

EXPORT
  • Each row will have a generated id using it’s display name or the sformat taken in the structure sheet. If two components have the same display name, the system adds a number between brackets to differentiate them. Example: #displayName and #displayName (1)


Column Base


image2019-8-19_11-34-2.png
Accepted values (by priority during the export):
  • Id

  • Variable

  • Absolute slot path

  • A mix of an id with a subpath

Description:

The parent in which the component is located or where it will be created.

  • The variable value must be an absolute slot path

  • You can create a slot path by using an id or variable prefix. Example: You have a $Drivers=slot:/Drivers variable, and a myNetwork inside the Drivers folder. You can access this network by setting the cell value to $Drivers/myNetwork

Column Template


image2019-8-19_11-31-36.png
Accepted values (by priority during the export):
  • Variable

  • Path to a bog or a component inside a bog.

  • Path to a Niagara Template

  • A Niagara TypeSpec

Description:

If you want to create a new component, the system needs to know what to create. This is the purpose of this column. This is not mandatory if you want just to set value of an existing component.

  • The simplest syntax is the TypeSpec. Just put the desired TypeSpec and a component of this TypeSpec will be created. Example: control:ControlPoint

  • To use a bog file, you should add a “bog:” prefix. It’s not mandatory, but for a better understanding and a more uniform template column, we advise you to use it.
    The path to a bog starts from the shared/templates folder in the user home.
    Example: C:/Users/xxx/Niagara4.6/tridium/shared/templates
    There is no need for the “.bog “ in the cell value. 
    Example: You have a mybog.bog file inside a myFolder folder in the template folder. This file contains a “myComponent” component which itself contains a “mySubComponent” component, you can access myComponent by setting the cell value to”bog:myFolder/mybog/myComponent” or you can access mySubComponent by setting “bog:myFolder/mybog/myComponent/mySubComponent“. 
    You can also access the first component of a bog by directly setting the name of the bog. 
    Example: bog:myFolder/mybog will refer to the myComponent component (if it's the first one in the bog file).

  • To use a Niagara template file, you must add a “ntpl:” prefix. 
    The path to a template starts from the templates folder in the user home. 
    Example: C:/Users/xxx/Niagara4.6/tridium/templates
    There is no need for the “.ntpl“ in the cell value. Example: You have a myTemp.ntpl file inside a myFolder folder in the templates folder. You can access myTemp.ntpl by setting the cell value to”ntpl:myFolder/myTemp”

  • The variable must be associated to a path or a TypeSpec. 
    Example if $MyVar = myFolder/mybog/myComponent, you can directly put the variable instead of the whole path.


If the component already exists, you cannot change its type through the template

Special use case for points, define a specific proxyExt for points

To simplify the creation of communicating control points, instead of creating a template and reusing it, you can simply add a suffix to the template.

The format is the following:

  • pathToABog {proxyExtSlotName=DesiredTypeSpec} or

  • TypeSpec {proxyExtSlotName=DesiredTypeSpec}

You can also put this value in a variable and reuse it

Example:

$MyModbusPoint = control:BooleanWritable{proxyExt=modbusCore:ModbusClientBooleanProxyExt} will create a BooleanWritable with a ModbusClientBooleanProxyExt instead of its standard NullProxyExt

BREAKING CHANGE: since the 46.13.1 you must put the suffix between curly braces: {   }


You CANNOT put $MyVar {slot name=TypeSpec} in the template cell, the brackets and their content must be IN the variable value


Example: If you have a variable $MyVar= control:BooleanWritable and you put

$MyVar{proxyExt=modbusCore:ModbusClientBooleanProxyExt}, the import won’t work


This suffix can only be used at the creation of the component, an existing component won’t be updated


To add a new sub component in a NON EXISTING slot, use the subComponent column, this syntax can only be used to change already present slots.


Actions:

There are two available actions that you can trigger in the template column:

  • Remove: simply add the {remove} keyword in the cell, to delete the component.

  • Replace: write the desired template, followed by the {replace} keyword. The previous component will be deleted and a new one with the desired template will be created.

To use one of those actions the targeted component MUST exist.

IMPORT:

The template value is saved inside an “excelTemplate” slot in each imported component so it can export the template value. For an example, go to "Proxy extensions" in  Step 3 Import your first Excel file

EXPORT:

If there is a value inside the “excelTemplate” slot, the value is exported.

If there is no value, it checks if the TypeSpec matches a variable. If it does match one, the cell value will be set to the variable, otherwise, the cell will be left blank

Column Name 


image2019-8-19_11-34-44.png
Accepted values:
  • A name (just a string)

Description:

Will set the name of a component.

IMPORT:

The read value will be escaped before using it.


If you change the name of an existing component into Excel, the system will create another component in the station since it doesn't record your change.

EXPORT:

The exported value will be unescaped


Column DisplayName


image2019-8-19_11-35-38.png
Accepted values:
  • A display name

Description:

Will set the display name of a component.

EXPORT:

If the value is the same as the unescaped name, the value won’t be exported



Other columns


To learn how to use the other columns, see the different available features.