データ管理機能 > 部品構造の管理 > Windchill のオプションとバリエーションの機能 > オプションフィルタによるコンフィギュレーション可能な製品構造のフィルタ > オプションフィルタ時の定義式の評価
  
オプションフィルタ時の定義式の評価
親子リンクをフィルタするときには、親子リンクに対する定義式と、親子リンクの子部品に対する定義式の、2 種類の定義式が考慮されます。子部品に対する定義式が存在する場合は、コンフィギュレーション可能な子部品のフィルタには常にその定義式が使用されます。部品がコンフィギュレーション可能でない場合、プリファレンス Allow Assignment of Expressions to Non-Configurable Itemstrue に設定されている場合のみ、定義式が考慮されます (ユーザーインタフェースを使用して割当できるようになります)。
2 種類の定義式が存在する場合、そのいずれかが FALSE と評価されると、親子リンクはフィルタにより除外されます。
ブール式の評価
フィルタリング時には、オプションフィルタでの選択と比較することによって、割り当てられた定義式が評価されます。1 つのオプションに複数の選択肢を選択した場合、選択された選択肢には値 true が割り当てられ、選択されていない選択肢には値 false が割り当てられます。これらの値は定義式に代入され、この定義式が評価されます。定義式のいくつかの変数が未定義であっても、ブール式の短絡評価によって定義式の値が決められます。次の例を考えてみます。
例 1
定義式は RED && LARGE です。
変数 RED または LARGE の値が FALSE である場合は、ほかの変数の値に関係なく、定義式全体の値は FALSE になります。
例 2
定義式は RED||LARGE です。
変数 RED または LARGE の値が TRUE である場合は、ほかの変数の値に関係なく、定義式全体の値は TRUE になります。
一般的なケース
次の例は、ネストされた論理和/論理積/否定に分解できるため、ブール式の一般的なケースに拡張できます。たとえば、次の定義式を考えてみます。
(X || Y) && (Z && W) && (V || W)
変数 Z の値が FALSE である場合、変数 X、Y、W、V の値に関係なく、ブール式全体は FALSE と評価されます。
フィルタのその他の使用例
コンフィギュレーション可能構造をフィルタする場合のその他の使用例について検討します。
1 つの製品構造の異なるモジュールバリエーションに基本定義式と高度な定義式の両方を割り当てることができます。オプションフィルタは次のように動作します。
基本定義式の場合、アイテムでの選択による定義式の評価結果と親子リンクでの選択による定義式の評価結果の和がフィルタの結果になります。1 つ以上の定義式の評価結果が TRUE の場合、そのモジュールバリエーションはフィルタによって除外されません。
高度な定義式の場合、アイテムの定義式とそのアイテムの親子リンクの定義式の両方の評価結果が TRUE の場合にのみ、そのモジュールバリエーションはフィルタによって除外されません。
設定されている製品構造内のモジュールバリエーションの親子リンクとオカレンスの両方に定義式が割り当てられています。オプションフィルタは、次の順序で、親子リンクに割り当てられている定義式を先に評価してから、そのオカレンスに割り当てられている定義式を評価します。
割り当てられた定義式の評価結果が FALSE の場合、モジュールバリエーションとそのすべてのオカレンスがフィルタによって除外されます。
割り当てられた定義式の評価結果が TRUE の場合、オカレンスに割り当てられている定義式が評価されます。FALSE の場合、そのオカレンスはフィルタによって除外されます。