The Feature Modelling extension view makes working with feature models easy. Using the view, users can add, edit and delete a product's features in the same way that they can do this in the structure tree. They can also, enter feature variation attributes and specify restrictions between features. This article describes how to work in the view. 


Note: With the R32 release, this extension view replaces the built-in Feature Model Editor view in swExplorer.


Prerequisites

  • The Feature Model meta model. The view activates on a Variability model item
  • The SWExtension.FeatureModelling extension file is located in the Client's swExplorerExtensions directory
  • The SWExtension.FeatureModelling extension is activated by an Architect in Configure the explorer


To access the extension view, select a Variability Model in the structure tree and load the view by either clicking on the menu option on the Items ribbon or selecting it in the Views drop-down.


The top-left pane in the view displays Structure, Variability Families and Features (A). When you select an item in this pane, the part's default attributes, if there are any, will display in the top-right Attributes pane (B)


The bottom pane in the view is used for Feature restrictions (C).



You can also rename a selected item in the variability tree in the view. To change the name, the item must be in "Work" Status. Select the item and make the change in the Name field just above the Attributes. (D)


Press the Enter key to save your changes. 


Creating a New Feature Family or Structure

In the model, Features are grouped into Families. The model also offers an option to group Families together into a Feature Structure. Feature Model Managers may, for example, want to package together all Families having to do with a specific functional domain into a Feature Structure. 

To create a new Variability Family (or an optional Feature Structure where you can group Families), right-click on the Variability Model item and select New > Family (or Structure). 


Choose a Library, enter a Name and click OK. The new feature family will appear in the view and in the structure tree.


Note: If you add a new Family to a Feature Structure, such as "GRP 1" as shown below, the new Family will be added and appear both to the Feature Structure and in the list of all Variability Families in the model.


Result of the Add as Seen in the Structure Tree


Adding an Existing Feature Family to a Grouping 

To add an existing Feature Family to a Feature Structure, select the Feature Structure, right-click and select Add > Family.



A Select Items dialog will appear and display all Feature Families in the model. You can then select one to add to the Feature Structure. 


The feature family will appear in the view and in the structure tree.


Creating a New Feature

To create a new feature within a family, select the feature family item, right-click and select New > Feature.


Choose a Library, enter a Name and click OK. The new feature will appear in the view and in the structure tree.


Adding an Existing Feature

To add a feature that already exists in the server, right-click on the feature family to which you want to add a variability feature and select Add >Feature

A Select Items dialog will display all existing feature in the variability model. A filtering option is available if needed as shown below. Select the feature to add and click OK


The feature will appear in the view and in the structure tree.


Removing Features

The view allows you to remove Features from the model. To remove a feature, right-click on it and select Delete > Feature




Click Yes to remove it from the view and the Variability Model. 


Removing Families 

To remove a Family, you must first remove all of its Features. You can then remove the Family item in the same way as described above.


It will be removed from the view and the Variability Model. 


Removing Families from Feature Groupings

Families that are grouped together in a Structure item are also included in the model's list of Variability Families as shown below. If you were to remove a Family from a Feature Structure grouping, you should be aware that it will still remain in the model's list.


If you want to entirely remove a Family from the Variability Model, the most efficient way to do this is to right-click on the Family in the list in the view. 

 

Click Yes to remove it from the Model and also from the Structure grouping. 


Note: If you want to permanently delete Variability Families, Features and/or Structure grouping items from the server, see Deleting Items and Parts.

Entering Attribute Values

Part attributes are displayed directly in the view to make working with the variability model more efficient. Select a feature family or feature and the default attributes will display to the right. 

The attributes can be updated directly in the view. 


Adding Feature Restrictions

The view provides an option for setting variant restrictions in terms of which feature combinations. There are two Types of restrictions: "Requires" and "Excludes". "Requires" are for scenarios when one Feature requires another Feature. "Excludes" is for when one Feature cannot be combined with another Feature. These relationships are defined using a Start Feature item and an End Feature item. 


To add a Feature Restriction, click Add restriction.


In the New Restriction dialog, choose a Library, enter a Name and click OK. The new Restriction will appear in the view and in the structure tree.


Next, you will select the two features to be included in the restriction. 

If a Feature requires another Feature, select the first one from the Start list. The Feature that is required by the Start Feature should be selected in the End list. Select "Requires" as the Type

If a Feature must always be excluded when another Feature is used, select the Feature that has an exclusion requirement from the Start list. The Feature that must always be excluded from use when the Start Feature is used should be selected from the End list. Select "Excludes" as the Type. 



In the first example above, when CCM1 is used, ASDM1 should not be used, i.e., it should always be excluded. 

In the second example, when ASDM2 is used, CCM2 must be used with it, i.e., CCM2 is required. 


The restriction combinations appear in the model as shown below, with the Type as an attribute on the Feature restriction.



Removing Feature Restrictions

To remove a restriction, right-click on the entry and select Delete


Handing Mapping Errors

If a Family is removed from the model, but are still used in a Feature Structure groupings, an error will be provided in the view. In the below example, the "ECM" Variability Family has been removed in the tree, but it is still referenced in the "GRP 1" Structure. 


To correct, remove it from the Feature Structure grouping or copy it from the Feature Structure grouping and add it to the Variability model, depending on your need.