Define and update user-defined attributes (UDAs)
User-defined attributes (UDAs) are attributes that you can set for an object in a model or a drawing. You can use UDAs for many purposes, such as in filters, drawings, reports, export, import, fabrication, erection, and revision handling.
The property pane and many dialog boxes contain UDAs for various objects, including beams, columns, bolts and drawings. Tekla Structures shows these fields when you click the More button in the property pane or the User-defined attributes button in a dialog box.
When you define new user-defined attributes
You can create your own user-defined attributes that you need in your company, or for a specific project.
The user-defined attributes can be numbers, text, lists of options, or dates. They can be set to be unique for an object or allowed to be copied. They can also be ignored by numbering or can affect numbering.
User-defined attributes are managed in objects.inp files. To define new user-defined attributes, create your own objects.inp file in the model, project, or firm folder.
For more information about the contents of the objects.inp file, see Properties of the objects.inp file.
For information about the available object types that can be modified in the objects.inp file, see List of all available object types for objects.inp.
Do not copy the global objects.inp file in the ..\environments\common\inp\ folder. Copying the file creates unnecessary duplicates and later objects.inp updates by Tekla Structures can be lost.
Best practice for user-defined attribute names
Follow these best practices for user-defined attribute names.
-
User-defined attribute names must be unique. Make sure that the global objects.inp file does not already use the same attribute name.
-
For project-specific user-defined attributes, add the prefix P_ before the user-defined attribute name. For example, P_RESP_DESIGNER.
-
The maximum length for a user-defined attribute name is 19 characters. Tekla Structures only looks for the first 19 characters. For example, Tekla Structures does not consider TEST_ATTRIBUTE_OBJECT and TEST_ATTRIBUTE_OBJECX to be different.
-
User-defined attribute names are case-sensitive.
-
Do not use spaces or reserved characters in attribute names.
Best practices for user-defined attribute definitions
Follow these best practices for user-defined attribute definitions.
-
The definition of the user-defined attribute must be unique. A user-defined attribute cannot have different definitions for different object types, such as beams and columns.
-
After adding your own user-defined attributes, run the Diagnose and change attribute definitions command to update the definitions in the model.
Best practices for user-defined attribute translations
For user-defined attributes that will be translated, add the prefix j_
before the label text in the objects.inp file.
Example:
attribute("releases", "j_MomentConnection", label, "%s", no, none, "0.0", "0.0", 30, 310)
Add the strings to be translated to the relevant .ail message files. For more information, see Customize user interface text in message files.
Search order of objects.inp files
User-defined attributes are defined in objects.inp files. These files are located in different folders following the Tekla Structures folder setup, and they are merged together during startup.
The objects.inp file reads the user-defined attributes in order from the folders listed below, starting from the model folder:
Folder defined by advanced option | Advanced option |
---|---|
Model | Current model folder |
Project | XS_PROJECT (your defined project folder) |
Firm | XS_FIRM (your defined firm folder) |
System | XS_SYSTEM (your defined system folder) |
inp | XS_INP (your defined inp folder) |
The files are merged so that if there are user-defined attributes in any of the files, they are shown in the user interface. Tekla Structures merges the files so that duplicate attributes are removed. If Tekla Structures encounters the same attribute name in different objects.inp files, the attribute from the first read objects.inp file is used.
If you need to have several objects.inp files in the same folder, you can use a suffix in the file name to use all the files. This way you can have several objects_<suffix>.inp files in the same folder. For example, a file name with a suffix could be objects_precast.inp.
If you need to change existing user-defined attribute definitions
If you need to change the existing user-defined
attributes, such as changing the value_type
, create a new
user-defined attribute instead of modifying the current one in the objects.inp file. For example, if you change the value_type
from string
to option
, the value cannot be
changed for parts that have the property specified with the old value type, and the
value is shown incorrectly in reports or when you inquire objects.
When the advanced option XS_DIAGNOZE_AND_REPAIR_WRONG_UDA_TYPE is set to TRUE
, you can use
to detect and repair the
incorrect UDA value types by reverting the value types to the default values. The
command checks that the UDA value types, such as string
or option
,
defined in the objects.inp file match their
values defined in environment.db. A mismatch can
happen if you change the value types after the UDA values have been assigned.
Update definitions of user-defined attributes (UDAs) in a model
When you have changed definitions of a user-defined attribute by modifying the objects.inp file, update the definitions in the model.
Environment database file
To ensure consistent model behavior when a model is used with different roles, the environment database file (environment.db) contains the definitions of the user-defined attributes (UDAs) used in the model.
When you create a new model, Tekla Structures merges the definitions from your objects.inp files to the environment.db file. Later, when you add new user-defined attributes to the objects.inp file, the definitions are saved in environment.db when you open the model.
You can modify your user-defined attributes in an objects.inp file but the changed definitions are not automatically applied. If there are conflicts between definitions in an objects.inp file and definitions the environment.db file, the definitions in environment.db are used. To see the conflicts, run the Diagnose and change attribute definitions command, then select the attribute definitions that you want to update in the objects.inp file.