About level definitions

Level definitions (LevelDefs) are used under the HierarchyService to define hierarchies. Each hierarchy is defined as a tree of LevelDefs where there is a unique LevelDef for each node of the tree. The two basic types of LevelDefs, Group and Entity, are described here:

  • Group and list level definitions, basically placeholder folders, set up the structure.
    • A GroupLevelDef defines a node based on distinct tag values assigned to devices, points or other components, and provides simple grouping. Marker tags should not be used in a GroupLevelDef.
    • A ListLevelDef defines a node based on one or more NamedGroupDefs (named group definitions). Each NamedGroupDef has a query in which both marker and value tags can be used. ListLevelDefs require one or more NamedGroupDefs within them.

In order to view the actual data, you must add devices and child elements underneath a group or list level definition. To do this, use the Entity level definitions (either QueryLevelDef or RelationLevelDef) to set up each NEQL query.

  • A QueryLevelDef defines the tags to search on.
  • A RelationLevelDef defines a relationship with a parent element to search on.

Level elements (LevelElems) are the nodes presented in an expanded hierarchy tree in the station Hierarchy space as shown in the following image, where each node in the hierarchy is represented with a LevelElem.

LevelElems result from running the NEQL query at each level of the defined hierarchy. An individual LevelElem based on an Entity level definition typically is associated to a BComponent within the scope of the NEQL query, which is typically a station.

Figure 4.   Group and Element LevelDefs in hierarchy definition ( left) determine the individual LevelElem nodes in the resulting hierarchy tree(right)
Image