Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Engineering

User Defined Attribute Definitions

  • Last UpdatedAug 18, 2025
  • 6 minute read

User Defined Attribute (UDA) elements have the following attributes (besides the standard ones):

User Defined Attribute (UDNAME)
The name by which the UDA will be referred to in the AVEVA E3D Design modules that use UDAs. The name must not be confused with the standard NAME attribute of the UDA, which is the name of the UDA element within the Lexicon database. The name must be entered as a text attribute with a maximum length of twenty case-independent characters. An example of setting the UDNAME attribute would be:

UDNA ’SUPPORT’

Abbreviation Length (ABLEN)

Is the minimum number of characters for a UDNAME abbreviation - default 3. In the default case, the minimum abbreviation for the example UDNAME given above would be SUP. When two or more UDAs have the same minimum abbreviation - an error occurs when the UDAs are compiled, refer to Create New UDAs for further information.

UDA Identification Key (UKEY)

A system attribute, it can be queried but not set directly. It is the number which identifies the UDA.

It is possible to copy a UDA, with the copy having the same key as the original - refer to KEYCOPY command in Copy UDA Definitions for further information.

UDA Type (UTYPE)

Is the UDA type this can be set to the following:

REAL

Any numeric value, for example, 23.5

INTeger

Any whole number, for example, 200

REFerence

An element identifier, for example, /VESS1, =12/99

TEXT

Any characters in closing single quotes, for example, ’BOT_STEEL2

TEXTAR

An array of text strings, for example, 'string_1','string_2','last_string'

WORD

Any sequence of letters, for example, ABCD

LOGical

TRUE or FALSE.

POSition

A position, for example, E10 N50 U100. Stored as a Real Array of size 3.

DIRection

A direction, for example, E 45 U.

ORIentation

An orientation, for example, U is E and N is D.

DATEtime

A date and time in Coordinated Universal Time (UTC), for example, 15:09:16 2 December 2019

The UTYPE defines the type of data that may be entered against the UDA for an element accessed by a user module. POS, DIR and ORI types are particularly useful when used in conjunction with WRT or FROM. For example:

Q :POS OF /EQUI-1 WRT /*

Note:
When WRT is used, the base value is relative to the Owner, not the element itself. Hence this command will extract the values of :POS for EQUI-1, and concatenate the values with the values for the Zone and Site. The result will be relative to the World.

ULEN

Is the maximum number of occurrences of the given UTYPE that may be stored in the UDA. For example, a REAL UDA might be given a ULEN of 3, making it suitable for storing, say, a 3D coordinate array. For TEXT and WORD UTYPEs, ULEN is the maximum number of characters. For TEXTAR UTYPE, ULEN is the maximum number of strings in the array. The default setting of ULEN is 1, the maximum ULEN is theoretically unlimited (ULEN ‘UNLIMITED’ is now a legal setting). However, unlimited ULENs need to be used with some care.

The first consideration should be usability. The maximum integer in C# is 214783647 and the maximum length of string that can be entered directly in the command line is 1024, but more characters can be added to the UDA by using an append command in the command line. PML produces an error when attempting to concatenate strings that exceed 1024 characters if, for example, they are placed in a variable.

Additionally, Administrators should carefully consider the implications of storing this volume of data in terms of database size and performance, and be aware that early versions of our products won’t be able to support these high values for ULEN (historically, the ULEN maximum was 120 characters).

ULEN cannot be used on attributes with a UTYPE of POS, ORI or DIR, a length of 1 is always assumed.

Report text (RPTX)
Is a text attribute used to define the display name for the attribute. This is the name that is used as the default column heading in reports. RPTX may be up to 120 characters long.

UDA Unit (UUNIT)

Defines the dimension of the attribute so that the values will be unit qualified. The default is NONE, which means that the UDA value will be output exactly as it is stored and will not vary according to unit settings. The UUNIT setting is only used if the UDA type is REAL.

TUNIT

Specifies the default unit for the attribute. It only applies to REAL Attributes with UUNIT set, and must be an appropriate unit for the UUNIT dimension. The UDA value will be output in these units unless specifically overridden

Default (DFLT)

A default value for a UDA that hasn't been set or becomes 'unset'. For UDAs with a UTYPE of INT, REAL or LOG the default will only be used if ULEN is 1. DFLT is not a valid attribute for UDAs with a UTYPE of REF, POS, ORI or DIR types.

The type of setting entered should correspond to the UTYPE. DFLT may be left unset or set to NONE. In this case the UDA has no default.

Description (DESCRIPT)

Is a text attribute which may be used to give a description of the UDA.

Element List (ELELIST)

Contains the list of element types for which the UDA is valid. The number of element types that may be set is unlimited (no more than the maximum integer value of 2147483647).

The element list must be assembled using the syntax:

ELElist ADD element_type

Elements must be removed from the list by using the syntax

ELElist REMove element_type...

Example:

ELELIST ADD ZONE PIPE

add ZONE and PIPE elements

ELE REMOVE PIPE

remove PIPE elements

ELE REM ALL

remove all elements

To simplify input the keywords ALLP and PRIM can be used to cover all piping components and all primitives, respectively.

UDAs can be bound to UDETs.

UDAs may be added to the UDET in the same way that they are allocated to system element types, for example. a UDET may appear in the ELELIST for a UDA definition.

Reference List (REFLIST)

REFLIST is only relevant if UTYPE is REF. It is the list of valid element types that the UDA may reference. For example, if a REF UDA is set in MODEL to an EQUI element and the UDA element’s REFLIST is set to VALV, then an error will result. If REFLIST is not set, it is assumed that all element types may be referenced. REFLIST is set in a similar way to ELELIST, for example:

Example:

REFLIST REM PIPE BRAN

REF REM ALL

REF REM PRIM

The REFLIST may have up to 100 members.

A RELIST may also contain references to UDETs which have been directly derived from a system type.

UDA Hiding (UHIDE)

Setting this to True will indicate that the UDA will be hidden from the ‘Q ATT’ command and from the attribute form within AVEVA E3D Design. Querying of the individual UDA will not be effected by this setting.

UDA Hiding on Teams Level (UTEAMS)

If the UHIDE attribute has been set to true then the UTEAMS attribute can be used to override UHIDE for specific teams. The UDA will then be hidden for all teams other than the ones specifically declared in UTEAMS. UTEAMS can hold an array of values, for example:

Example:

UTEAMS /*TEAM1/*TEAM2/*TEAM3

Values may also be input individually for example:

Example:

UTEAMS /*TEAM1

UTEAMS NUM 2/*TEAM2

UTEAMS NUM 3/*TEAM3

UDA Hyperlink (UHYPER)

The attribute holds a logical value, setting this to the true will allow the text value of a UDA to contain a path to the external file.

UDA for Connection (UCONN)

The attribute holds a logical value, setting the value to have will signal that the UDA is a connection in the reference list.

UPSEUD

Setting this logical attribute to True will indicate the UDA is pseudo attribute. Pseudo attribute allow for dynamic values to be returned as needed rather than having static values stored in the database.

The code required to return a pseudo attribute value must be plugged in through the use of the C# API.

UDPEND

If the calculation of the pseudo attributes relies on other values on the element, and the pseudo attribute is to be used in a dynamic rule, then it is possible to denote what real attributes the pseudo attribute depends on by setting the UDPEND attribute. For example:

Add a UDA :VOLUME to a box. The provided pseudo code simply multiplies XLEN*YLEN*ZLEN, so :VOLUME is dependant on XLEN, YLEN, ZLEN. To indicate this set UDPEND attribute to 'XLEN YELN ZLEN'. If subsequently, :VOLUME is included in a dynamic rule, and XLEN, YLEN, ZLEN are modified then the result will reflect this. For most pseudo attributes the setting of UDPEND is unlikely to be needed.

UDTABL

Defines whether the attribute values are indexed for rapid access. Indexing will improve performance for searches and collections that use attribute filters. Only use indexing on attributes that are significant to such collections or searches.

ULVOPT

The attribute holds a logical value, setting this optional flag value to True will allow the value or limit of a UDA or USDA to have a value outside the set valid values or ranges.

ULVTYP

The attribute defines the use of the list of value for a UDA as single select (= 0) or multiple select (= 1).

TitleResults for “How to create a CRG?”Also Available in