Managing Windchill Attributes.

Syndeia makes it possible for system engineers working with SysML to get, compare, sync, and populate attributes on Windchill parts to/from the SysML model. The following sections present details of the new capabilities. 
Get attributes of Windchill parts to the SysML model
In the Syndeia Dashboard, when you drag a Windchill part version (or part master) to a SysML package to generate SysML block structure from Windchill part structure, Syndeia brings up the Select Part Attributes window, as shown in Figure 67 below. Select the specific attributes you need and click OK.

Select Windchill part attributes when generating SysML block structure

This will generate a SysML blocks structure from the Windchill part structure. The part attributes will be generated as value properties on the SysML blocks. The values of Windchill part attributes will be set as default values of the SysML block value properties, as shown in Figure 68 below. The units on Windchill part attributes are also brought over where applicable. The values and units are brought together as a String in the SysML model. This is primarily because Windchill 's web services provides those values as a string with a value and unit together.

Part attributes created as Block value properties. Attribute values brought over as default values of value properties.

Syndeia applies the WC_Part_Attribute stereotype (from the Syndeia Profile) to every value property generated for Windchill part attributes (Figure 69), and sets the _windchill_name tag from the stereotype to the internal name of the Windchill part attribute.

WC_Part_Attribute stereotype applied to value properties generated from WC part attributes

Figure 70: Syndeia sets the _windchill_name tag on the value property with the internal name of the Windchill part attribute

Users can change the name of the block value properties once they are generated from the Windchill part attributes. The internal name set on the value property will make it possible for Syndeia to correlate them with Windchill part attributes during compare/sync operations. This approach also makes it possible for users to add new value properties to the SysML blocks connected to Windchill parts. If the _windchill_name tag is not populated on these value properties, then they will be ignored during compare/sync operations. 

Create parts in Windchill with attribute values from the SysML model
Syndeia also makes it possible for system engineers using SysML to define blocks with value properties and set their values such that when SysML blocks are used for generating Windchill parts, the block value properties can be used to populate corresponding Windchill part attributes. This is especially useful when enterprise Windchill repositories are customized with business rules that mandate certain attributes be populated when creating parts. In those cases, SysML blocks with mandatory value properties can be setup before generating Windchill parts. Syndeia makes it possible to set the mandatory attributes on Windchill parts at the time of part creation. In addition, users can also create different types of Windchill parts by setting the custom part type on the SysML block. This is a very powerful feature of Syndeia. Follow the instructions below to learn about this feature.

  1. Right click on any SysML model element and select Syndeia > Utils > Windchill Utils.


    Launch Windchill utils

  2. This will launch the Windchill Utils window. Select your Windchill repository, select the base type as Windchill part, and click OK. It may take a few seconds for the results to appear in the window, as shown in Figure 72 below.


    Windchill Utils

The base type of parts in out-of-the-box Windchill PLM system is WTPart. Organizations can develop their extensions of the base type and also add new attributes to those types. The result window above lists the base part type and all its extensions, and lists the attributes (out-of-the-box and custom) for each type. For example, it shows a custom part type (LPart), specifically WCTYPE|wt.part.WTPart|com.intercax.IPart|com.intercax.ipart.LPart that has an attribute with display name Bounding box size which you can see in the Windchill browser client, and internal name com.intercax.lpart.boundingBoxSize which is used for getting and setting its values programmatically. 

The part type and attribute results show the data dictionary for Windchill parts. This information will be used for generating custom Windchill parts and setting their attributes from SysML blocks in the following steps.

  1. Create a SysML block (e.g. My New Part) in your SysML model.

    Follow the remainder of the instructions in this step only if you want to set the part number for the Windchill part to be generated, or if you want to create a Windchill part of a specific type that is defined by your organization and which is not the base type (WTPart) defined out-of-the-box with PTC Windchill installation. If you don't follow the remainder of the instructions in this step, then a Windchill part of the base type (WTPart) will be generated and a part number will be automatically assigned by Windchill. 
    Apply the Windchill_Part stereotype, available from the Syndeia Profile, to the SysML block. Set the _part_number tag value to your desired value, and set the _part_type tag value to the type for the custom Windchill part (Figure 72) you want to create, e.g. WCTYPE|wt.part.WTPart|com.intercax.IPart|com.intercax.ipart.LPart, as shown.


    Apply the WC_Part stereotype


    Set the _part_number and _part_type tag values

  2. If you want to set one or more Windchill part attributes when generating a Windchill part, especially if these attributes are mandatory attributes, create a value property with a name of your choice typed by String value type in the SysML block for each of those attributes. For example, create 2 value properties (typed by String value type) in the SysML block created in the previous step for each of the 2 Windchill part attributes you want to set. For Rhapsody, use the String value type in the ValueTypes package under the Syndeia Profile.
  3. Set the default values of the value properties. This should be in the exact format as the default values set when SysML blocks and value properties are generated from Windchill parts (Figure 68 and Figure 69). For example, set the value of estimated mass as 45 kg.
  4. Apply the WC_Part_Attribute stereotype available from the Syndeia Profile to each of the value properties (Figure 75). Set the _windchill_name tag to the internal name of the Windchill attribute, e.g. com.intecax.lpart.mass.estimated. Look up the results in step 2 to get the internal names of Windchill attributes.



    Figure 75: Apply the WC_Part_Attribute stereotype to the value property


    Set the _windchill_name tag for the value property

  5. Drag and drop the SysML block to a Windchill product or folder in the Connection Manager tab of the Syndeia Dashboard. This will generate a new Windchill part from the SysML block, as shown for the My New Part in the Windchill client (web browser). Note that the name of the Windchill part is the same as SysML block name, the type of the Windchill part is LPart (as set in the stereotype tag), the part number of the Windchill part is MY NEW PART 1 (as set in the stereotype tag), and the value of estimated mass attribute is 45 kg (as set in the stereotype tag).



    New part generated in Windchill with the given name, type, part number and attribute value

Compare/Sync SysML block structure with value properties with Windchill part structure with attributes
When a user invokes compare/sync operations on Syndeia connections between SysML blocks and Windchill parts, the Windchill-specific value properties of the SysML blocks and the attributes of the connected Windchill parts are also compared / synchronized. For example, Figure 78 shows the compare results for a Syndeia connection between a SysML block and a Windchill part. It shows that the value property Mass (estimated) in the SysML block is out-of-sync with the corresponding attribute on the Windchill part.



Compare and sync capabilities use SysML block value properties and Windchill part attributes