Assembly takes UDA's from main part
Question:
When I add a user-defined attribute (UDA) to the main part of an assembly it seems to also be automatically transferred to the assembly itself. Is this a bug or is it supposed to work like that?
Answer:
When you assign a value to a user-defined attribute of the main part of an assembly, this value is automatically passed up (inherited) to the assembly level if the corresponding user-defined attribute at the assembly level is not filled in. The inherited value from the main part will be displayed in brackets.
Inheritance occurs only in a bottom-to-top direction: from the main part to the assembly, and not in the opposite direction.
Typically, user-defined attributes (UDAs) at the assembly level differ from those at the part level. If you are using UDAs at both levels that require distinct values, it is important to first assign the value at the assembly level, followed by the value at the main part level. Due to a known issue, if you set the main part's UDA value first and then the assembly's UDA value, the main part's UDA value will be erased. To avoid this problem, always input the assembly level UDA value before the main part's UDA value.
The advanced option XSR_DISABLE_ASSEMBLY_UDA_INHERITANCE only influences how UDAs are handled in reports and templates. With this option set to FALSE (default value), you can use the simple notation USERDEFINED.UDA_NAME to access the main part's UDA value at the assembly level. However, if you set this option to TRUE, you must use the more specific notation MAIN_PART.USERDEFINED.UDA_NAME to retrieve the inherited value. In this case, using USERDEFINED.UDA_NAME alone will not yield any result.