Data Management Capabilities > Managing Part Structures > Windchill Options and Variants Capabilities > Filtering a Configurable Product Structure with the Option Filter > Standard and Alternate Option Filter > Customizing Filtering Behaviors for the Option Filtering Delegate > Configuring Standard and Alternate Behaviors > Custom Filtering Configuration File Example
  
Custom Filtering Configuration File Example
In this scenario, a user defined the subtypes of a WTPart (ABCPart, CBSPart, and NBCPart), a subtype FOXPartUsageLink of WTPartUsageLink, and created the following configuration file.
<?xml version="1.0" encoding="UTF-8"?>
<FilterStrategy handler="com.ptc.windchill.option.filter.DefaultFilterStrategyHandler">

<FilterNode type="wt.option.ExpressionAssignable" parentType="wt.part.ABCPart" childType="wt.part.ABCPart">
<ExpressionPolicy advanced="true" mode="STANDARD,UNDEFINED"/>
</FilterNode>

<FilterNode parentType="wt.part.CBSPart" childType="wt.part.NBCPart">
<ExpressionPolicy advanced="true" mode="STANDARD,UNDEFINED "/>
</FilterNode>

<FilterNode type="wt.part.ABCPart">
<ExpressionPolicy advanced="true" mode="STANDARD "/>
</FilterNode>

<FilterMissingExpression type="wt.part.FOXPartUsageLink"/>
<FilterMissingExpression type="wt.part.PartUsesOccurrence" parentType=”wt.part.CBSPart” childType=”wt.part.NBCPart”/>

</FilterStrategy>
The configuration file defines the filtering algorithm with basic and advanced expressions as follows. For basic expressions, the choices are collected and matched against the choice in the filter only for the supporting child part of the usage link, if they are of types ABCPart or NBCPart. Choices from usage links and child parts of other types are ignored. There are four policies for the advanced expressions. In the order of appearance in the file, they mean the following:
If the parent and child part of the usage link are of type ABCPart, filter out the usage link if the expression evaluates to FALSE or UNDEFINED.
If the parent and child part of the usage link are of types CBSPart and NBCPart, respectively, filter out the usage link if the expression evaluates to FALSE or UNDEFINED.
If the item (child) part is of type ABCPart, filter out the usage link if the expression evaluates to FALSE.
If the usage link is of the type FOXPartUsageLink, filter out the usage link if neither the usage link nor its child part has a basic or advanced expression assigned.
If an occurrence for a usage link between the parts of the types CBSPart and NBCPart does not have an expression assigned, filter out the occurrence.