Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can subscribe to a forum, label or individual post and receive email notifications when someone posts a new topic or reply. Learn more! X

Improve Alias and Calculated Attributes

Improve Alias and Calculated Attributes

Hi Everyone,


Given that one of the major points of a PLM system is to eliminate duplication, Windchill's in-built attribute synchronizing and manipulation abilities seem limited. Please correct me if anything I say below is incorrect, or if there is a way around it.


Firstly, the main help page on Alias Attribute Mapping is daunting. It only makes sense if you already know what is being talked about. It's obvious when I list them, but these are some crutial missing puzzle pieces:

  • All versioned objects have a masterReference link to their Master object.
  • uses/usedBy (e.g. WTPart-WTPart structure and CAD-CAD whereused) relationships are from the higher level object to the lower level object's Master. (This is so that the latest version of the lower level object is always updating in the structure)
  • describes/describedBy (e.g. content) and built/builtBy (e.g. owner) relationships are from non-master object to non-master object


Problems with Alias Attributes:

  1. The main problem is when you are traversing a many-to-one relationship. If you have played with Alias attributes you will notice the symptom of this is multiple comma separated values. For example, if you are holding Material on your WTPart, and you want to pull it to the WTPartMaster so that it can then be pulled through a uses/usedBy link to a higher level WTPart (i.e. for a single line BOM, e.g. Machining is made from Casting); because there are many WTParts (i.e. all versions) linked to the WTPartMaster, you will get many comma separated Material values. Ideally there would be some way of only pushing the attribute of the latest version. If there was a versionInfo.latest attribute, then Aliasing a Calculated Attribute based upon the original attribute could theoretically achieve this. (Problem: see [2].)
    • A similar problem occurs when pushing attributes back from the WTPart to CAD; there can be multiple WTPart versions linked to the CAD (this refreshes when the CAD is next checked in, as this causes its owner linked WTPart to iterate; however checking in a WTPart does not cause its owner linked CAD to iterate).
  2. Null Global Attribute values are not pulled through Alias Attribute mapping, however Null Calculated Attribute values are. Thus, even if you did pull a calculated attribute (to exclude non-latest values), you instead get the value, followed by several commas i.e. <value>, , , , , , , , , ,
  3. They do not show in the WorkGroup Manager.
  4. Alias attributes based on Alias attributes need to be re-saved if the lower one changes (minor, but be aware).

Problems with Calcualted Attributes

  1. Cannot function multi-valued/comma-separated attributes (can be overcome if the Alias Attribute problems [1] and [2] are solved)
  2. No ability to alter the attribute value e.g. search for a character (eg the first comma, underscore, dash, or slash) and drop everything after/before.
  3. They do not show in the WorkGroup Manager.

The following are useful examples that could be done if the above were fixed:


  • Pushing attributes from a WTPart to its owner/image/content linked CAD
  • Roll-up calculations through WTPart structures (e.g. weight, cost)
  • Calculate whether a lower level object is used in any Released End Items (i.e. if it isn't used anywhere, then should this part be Obsoleted?)
  • Calculate a Primary Drawing Number for a WTPart (for when part and drawing numbers are not the same, as the company has multiple similar parts defined on a single drawing). Often WTParts will have multiple linked CAD Documents / WTDocuments, e.g. Primary Definition Document (which can be linked different ways, e.g. via content, or owner then CAD uses/usedBy), wiring diagram, manufacturing specifications, Technical Data Sheet (TDS) for purchased parts. If you had a Primary Definition Document: Y/N on all documents, as well as a calculated attribute along the lines of:

         (PrimaryDefinitionDocument==1) ? number : <attributewithnullvalue>

         then a calculated attribute on the WTPart could search through all of the various values coming via different Alias link routes, and find the non-null value.


It should be also possible to create an association based on an IBA and not only based on a model attribute


Navigate to objects with the same value as this object
Only modeled attributes Smiley Sad which are of types Boolean, Integer, String, and Date, can be specified for the attribute entries in the <attribute>=<attribute>@<type> mapping. Modeled attributes are those stored in the LWCHardAttDefinition table.
Status changed to: Acknowledged