ATTRIBUTE_EDITOR_CONTROL - Intergraph Smart 3D - Reference Data - Hexagon

Intergraph Smart 3D Structural Manufacturing Reference Data

Language
English
Product
Intergraph Smart 3D
Subproduct
Structural Manufacturing
Search by Category
Reference Data
Smart 3D Version
13

The <ATTRIBUTE_EDITOR_CONTROL> section controls the behavior of the Attribute Editor in terms of how attributes can be edited, how attributes should be divided into distinct sets based on object type, and how individual attributes should be validated.

<ATTRIBUTE_DEFINITIONS>

Contains the complete list of all attributes that can be viewed in the Attribute Editor. The property definitions are referenced to the SMS_PROPERTIES.xml file.

<ATTRIBUTE_GROUPS>

Defines groups of attributes based on type, such as contour attribute groups, marking attribute groups, or contour bevel attribute groups.

<ATTRIBUTE_SETS>

Defines the set of attributes to be displayed and validated for each individual type of object, such as hole or general contour type; general or location marking type.

ATTRIBUTE_DEFINITIONS

<ATTRIBUTE_DEFINITIONS> contains the definition for every attribute type that can be included in an attribute set.

Each attribute type is defined as a single <PROPERTY> node. For example:

<PROPERTY NAME="SMS_BEVEL||ANGLE_A" DISPLAY_NAME="Angle A" VALUE="0.00 deg" READONLY="0" UNIT="78" UNIT_TYPE="ANGLE" CHECK_ATTRIBUTE_TYPE="CHECK_MISSING|CHECK_VALUE_RANGE" ERROR_LEVEL="3|2" LBOUND ="0.0" UBOUND="90.0" DISPLAY_ORDER="100"/>

Each <PROPERTY> node has six required XML attributes: NAME, VALUE, DISPLAY_NAME, VALUE, UNIT, DISPLAY_ORDER, and READONLY, and ten optional XML attributes: UNIT_TYPE, ALLOWABLE, CHECK_ATTRIBUTE_TYPE, ERROR_LEVEL, LBOUND, UBOUND, DISPLAY_UNIT, DISPLAY_PRECISION, SHEET_UNIT, and SHEET_PRECISION.

NAME

Required. It corresponds to the system name of the RAD Attribute, such as SMS_EDGE||TYPE or SMS_MARKING||GUID. NAME only displays if the SMS_PROPERTIES.xml file or either the SMS_ANNOTATION.xml or SMS_VIEWER.xml files are missing. Otherwise, it is only used as a unique identifier to ensure that each property definition in the SMS_PROPERTIES.xml is unique from all the other property definitions and that the correct one can be found quickly. NAME contains three separate components:

PARENT_NODE_NAME

Comes from the parent node name of the node from which the attribute was loaded. For example, in the following figure the green line underscores the attribute that is being considered, while the red arrow points to the PARENT_NODE_NAME of that attribute. The resulting property definition name is SMS_EDGE||PART_DIR.

DELIMITER

|| is used as a delimiter because it does not conflict with the XML standards and it is not used by any other sections of the code. It acts as an effective separator between PARENT_NODE_NAME and SYSTEM_NAME.

SYSTEM_NAME

This is the system name of the attribute. In some cases this can be the same from one attribute to the next. However, when combined with PARENT_NODE_NAME they define a unique property definition. For example, SMS_ANNOTATION||TYPE, SMS_BEVEL||TYPE, SMS_PLATE_CONTOUR||TYPE, SMS_EDGE||TYPE, SMS_MARKING||TYPE, and so on.

DISPLAY_NAME

A required attribute used for display purposes in all grid view displays.

VALUE

The default value given to a RAD attribute if no value is specified. This default value is typically used when a new attribute is added to an attribute set.

READONLY

Determines whether the RAD attribute is editable in the Attribute Editor. If READONLY is set to 1, then the attribute is locked. If it is set to 0 then the attribute is editable. For example, here is an editable attribute followed by a locked attribute as displayed in the Attribute Editor:

UNIT

Determines what the unit is for a given RAD attribute. Some of the commonly used values are provided at the beginning of the SMS_PROPERTIES.xml file.

UNIT_TYPE

An optional attribute that gives the type units. It is only required for a given attribute if that attribute does not have a UNIT=”345” which defines that property as having a value that is a string. There are four types of units that are allowed: AREA, MASS, DISTANCE, and ANGLE.

<PROPERTY NAME="SMS_PART_INFO||WEIGHT" DISPLAY_NAME="Weight" VALUE="0.0" READONLY="0" UNIT="92" UNIT_TYPE="MASS"

ALLOWABLE

An optional attribute that is used when you should only be allowed to pick from a predefined list of values. ALLOWABLE should contain a text string of elements separated by commas. Because commas are used as separators, commas should not be used within individual list elements. The following is an example of the proper use of ALLOWABLE:

<PROPERTY NAME="SMS_EDGE||PART_DIR" DISPLAY_NAME="Part Direction" VALUE="L" READONLY="0" UNIT+"345" ALLOWABLE="R,L,C"

CHECK_ATTRIBUTE_TYPE and ERROR_LEVEL

Optional values that are used together to determine the types of attribute validation, if any, that should be applied to a given attribute. The types listed correspond to the check attribute types discussed above. Multiple check types can be used by separating the names by the “|” (pipe) symbol as in:

CHECK_ATTRIBUTE_TYPE="CHECK_MISSING|CHECK_ALLOWABLES"

Error levels, also separated by the “|” (pipe) symbol, should be specified for each CHECK_ATTRIBUTE_TYPE as in:

ERROR_LEVEL="2|3"

There are three error levels: 1=information, 2=warning, and 3=error.

LBOUND and UBOUND

Optional values that are used in conjunction with CHECK_VALUE_RANGE. These attributes represent a range of acceptable numerical values that are checked against the attribute upon validation. The range is specified by using the LBOUND (lower boundary) and UBOUND (upper boundary) values in the attribute definition, as in the following example:

<PROPERTY NAME="SMS_PART_INFO||SAMPLE" DISPLAY_NAME="Sample" VALUE="0.0" READONLY="0" UNIT="92" UNIT_TYPE="MASS" LBOUND="1" UBOUND="10" ERROR_LEVEL="2|2" DISPLAY_ORDER="0"/>

LBOUND and UBOUND can also be used individually to indicate only an upper or lower boundary, as in this example:

<PROPERTY NAME="SMS_PART_INFO||WEIGHT" DISPLAY_NAME="Weight" VALUE="0.0" READONLY="0" UNIT_TYPE="MASS" LBOUND-"1" UBOUND="" ERROR_LEVEL="2|2" DISPLAY_ORDER="0"

DISPLAY_ORDER

A required value that defines the sort order that the attributes should be displayed in when viewing the attributes in the attribute editor.

DISPLAY_UNIT

An optional value that overrides the system defined display unit from the Units of Measure Service. UNIT defines the units the values are stored in; it has nothing to do with display except the value must be converted from storage units to display units before it can be displayed. After making an edit, the value must be converted back from display units back to storage units so the value can be saved on the RAD object. If a DISPLAY_UNIT attribute is not specified, then the system defaults to the system defined display unit from the Units of Measure Service. This override applies to all instances of a given attribute in all grid-views and also the sheet header. To provide independent control of the units for the sheet header, use SHEET_UNIT.

In the following example, the attribute Angle B has a unit override of gradians rather than degrees, and the attribute Depth B has a unit override of inches rather than millimeters. Also notice that the unit overrides are only applied to Angle B and Depth B. They do not apply to Angle N, Depth N, Angle D, or Depth D.

DISPLAY_PRECISION

An optional attribute that overrides the system default precision of two digits past the decimal point. The values are stored with full precision; they are only rounded to two digits of precision for display purposes. This attribute gives you the ability to control how many significant digits should be included as part of this rounding process. This override applies to all instances of a given attribute in all grid-views and the sheet header. To provide independent control of the units for the sheet header use SHEET_PRECISION.

In the following example, the attribute Angle B has a precision override of three digits rather than two digits, and the attribute Depth B has a precision override of five digits rather than two. The precision overrides are only applied to Angle B and Depth B. They do not apply to Angle N, Depth N, Angle D, or Depth D.

SHEET_UNIT

An optional that can act as an override for both the system defined display unit from the Units of Measure Service or DISPLAY_UNIT. It is only applicable to the values that are loaded to the sheet header. It does not act as an override for any of the grid-views.

In the following example, the grid view displays the Weight attribute in kilograms, however, the sheet header displays the Weight attribute in grams. The Units of Measure service is set to display Weight or Mass attributes in Metric Ton.

In the following example, SHEET_UNIT remains set to grams, but DISPLAY_UNIT has been removed. The grid view defaults back to the system defined units from the Units of Measure Service.

SHEET_PRECISION

An optional attribute that can act as an override for both the system default precision of two digits and DISPLAY_PRECISION. It is only applicable to the values that are loaded to the sheet header. It does not act as an override for any of the grid-views.

In the following example, the grid view displays the Weight attribute with three digits of precision. The sheet header displays the Weight attribute with four digits of precision.

In the following example, SHEET_PRECISION remains set to four digits, but DISPLAY_PRECISION has been removed so the grid view defaults back to the system defined two digits of precision.

Every set of default Attributes contains a Reference Attributes entry. This entry is not strictly necessary, but operates as a dummy field at the bottom of the Attribute Editor. This dummy field is a workaround for an issue with the Microsoft FlexGrid Control that sometimes prevents you from editing the last attribute displayed in the grid.

ATTRIBUTE_GROUPS

Attribute groups allow commonly occurring attributes to be easily grouped together for a given object type.

Multiple attribute groups can be defined and are distinguished by NAME. For example:

<ATTRIBUTE_GROUP NAME="MARGIN">

<INCLUDE_PROPERTY NAME="SMS_PART_MARGIN_INFO||PROCESS_TYPE"/>

<INCLUDE_PROPERTY NAME="SMS_PART_MARGIN_INFO||METHOD"/>

<INCLUDE_PROPERTY NAME="SMS_PART_MARGIN_INFO||START_VALUE"/>

<INCLUDE_PROPERTY NAME="SMS_PART_MARGIN_INFO||END_VALUE"/>

<INCLUDE_PROPERTY NAME="SMS_PART_MARGIN_INFO||FINISHING_VALUE"/>

</ATTRIBUTE_GROUP>

Defined attributes are included in the group by specifying <INCLUDE_PROPERTY> with the NAME of an attribute as defined in the <ATTRIBUTE_DEFINITIONS> section. A group may include other groups by specifying <INCLUDE_GROUP> node:

<INCLUDE_GROUP NAME="MARKING"/>

Attributes that are included in a group can have their values modified if the necessary values differ from the standard definition. To modify the values, include <MODIFY_PROPERTY>, such as:

<INCLUDE_PROPERTY NAME=" SMS_EDGE||TYPE" VALUE="marking" READONLY="1" CHECK_ATTRIBUTE_TYPE="CHECK_MISSING|CHECK_DEFAULT" ERROR_LEVEL="2|1"/>

Any values included in <MODIFY_PROPERTY> overwrite the values in the original attribute definition when that attribute is included in the group and does not disturb the original definition in other contexts.

ATTRIBUTE_SETS

There are three <ATTRIBUTE_SET> types defined in the configuration document: General, Contour, and Marking. Each <ATTRIBUTE_SET> is further divided into multiple <TYPE> nodes, representing each permutation of an attribute set based on the type of object. For example:

<ATTRIBUTE_SET NAME="Contour">

<TYPE NAME="general">

<TYPE NAME="hole">

<TYPE NAME="hole_subgroup">

<TYPE NAME="corner">

<TYPE NAME="slot">

<TYPE NAME="edge">

<TYPE NAME="scallop">

<TYPE NAME="feature">

<TYPE NAME="BevelProperties">

<TYPE NAME="GrindProperties">

<TYPE NAME="MarginProperties">

</ATTRIBUTE_SET>

Each TYPE specifies the groups and attributes included for that type. For example:

<TYPE NAME="hole">

<INCLUDE_PROPERTY NAME="SMS_INNER_CONTOUR||INNER_CONTOUR_GUID"/>

<INCLUDE_PROPERTY NAME="SMS_INNER_CONTOUR||INNER_SYM_GUID"/>

<INCLUDE_PROPERTY NAME="SMS_INNER_CONTOUR||INNER_BOARDSIDE"/>

<INCLUDE_PROPERTY NAME="SMS_EDGE||TYPE" VALUE="hole"/>

</TYPE>

The definition of an individual attribute set TYPE uses the same syntax as the definition of an attribute group, and uses <INCLUDE_GROUP> and <INCLUDE_PROPERTY>.

Individual attributes are included in the group by specifying <INCLUDE_PROPERTY> with the NAME of an attribute as defined in <ATTRIBUTE_DEFINITIONS>.

<INCLUDE_PROPERTY NAME="SMS_INNER_CONTOUR||INNER_SYM_GUID"/>

A group can include other groups by specifying an <INCLUDE_GROUP> node:

<INCLUDE_GROUP NAME="MARKING"/>

Individual attributes for a given property definition that need to have defaults modified from the defaults provided in the SMS_PROPERTIES.xml file, must be specified in =<INCLUDE_PROPERTY>. The value specified in <INCLUDE_PROPERTY> is used by default over the values provided in the SMS_PROPERTIES.xml file. For example:

<INCLUDE_PROPERTY NAME="SMS_MARKING_INVERSE_BENDING_TABLE_INFO||OFFSET" VALUE="25" READONLY="0" UNIT="345" UNIT_TYPE=""/>

Default Part Attributes

The general part attributes can be customized to meet your needs. However, caution should be taken with several of the attributes:

  • SMS_PART_INFO||PART_TYPE for plate parts and built-up profile parts, and SMS_SMS||PROFILE_TYPE for profile parts, are used by the Attribute Editor to load the default part attributes from SMS_VIEWER.xml. Removal of these attributes from SMS_VIEWER.xml or alteration of the NAME of the attributes prevents the Attribute Editor from loading the default attributes properly.

  • GUID for profile and plate parts and the THICKNESS for plate parts are used by the Part Editor to calculate predefined bevels and grinds. Therefore, modification of those attributes can cause inaccurate results when assigning predefined bevels and grinds

Default Contour Attributes

The Contour part attributes can be customized to meet your needs. However, caution should be taken with the following attribute:

  • SMS_EDGE||TYPE is used by the attribute editor to determine which default contour attribute set should be loaded. Similarly, SMS_BEVEL||TYPE, SMS_GRIND||TYPE, and SMS_PART_MARGIN_INFO||MARGIN_TYPE are used to determine whether bevel, grind, or margin attributes are included on a contour. Removal of these attributes from SMS_VIEWER.xml or SMS_PROPERTIES.xml files, alteration of ALLOWABLES by removing the "(null)" entry, or alteration of the NAME of the attributes prevents the Attribute Editor from loading the default attributes properly.

Default Marking Attributes

The Marking part attributes can be customized to meet your needs. However, caution should be taken with several of the attributes:

  • SMS_MARKING||TYPE is used by the Attribute Editor to determine which default marking attribute set should be loaded.

  • SMS_MARKING||MARKED_SIDE is used by the Part Editor Toggle Marking Side command.

  • For location marks, SMS_EDGE||PART_DIR and SMS_MARKING_PART_LOCATION||THICKNESS_DIR are used by the Part Editor Toggle Thickness Direction command.

  • For profile location marks, SMS_MARKING_PART_LOCATION||FLANGE_DIR and SMS_MARKING_PART_LOCATION||FLANGE_DIR_2D are also used by the Part Editor Toggle Flange Direction command.

  • Removal of these attributes from PartEditorDefaultAttributes.xml or alteration of the NAME of the attributes causes the Attribute Editor to not load the default attributes properly and may prevent the commands that use those attributes from executing.