Adding properties to subcomponents of custom components

Tekla Structures
Not version-specific
Tekla Structures
Not environment-specific

How can you add a variable to a nested custom component that modifies the User Defined Attributes (UDA) of parts in a sub-component of the main component?


1. Select the sub-component and open the Custom component editor.

You will need to scroll through the hierarchy to select the subcomponent. See the following article for selecting nested objects: 
Select assemblies, cast units, and nested objects

2. Activate the UDA fields of each part that you want to link to a variable.

The following article explains how to do this:
Adding properties to a sub component’s UDA in a custom component from the main component

When this step is complete you should have formulas linking each UDA that you have activated from each part that you are interested in to a different variable in the Custom component browser. In the example below, variable P1 will change the value of the User Field 1 attribute of the first contour plate and variable P2 will change the value of the User Field 1 attribute of the second contour plate.



Close the Custom component editor, saving the changes.

3. Open the Custom component editor of the main component

In one of the Custom component editor views double-click on the sub-component to open its properties. Enter a value for each variable and click Modify.


In the Custom component browser, expand the General properties  of the subcomponent. After clicking the Refresh button it should contain the variables you have just activated..


4. Add new parameters to the main component properties by adding new parameters in the Variables dialog.


5. In the Custom component browser link the subcomponent properties to the variables you have just made.


Close the Custom component editor, saving the changes.

Add the custom component in the model and check its properties. You should now have variables that will change values of parts in the sub-component.


Was this helpful?