Фильтрация вхождений с назначенными выражениями
Делегат фильтрации опций фильтрует вхождения в дереве структуры детали и в таблице Вхождения.
|
Делегат фильтрации опций фильтрует вхождения в дереве структуры детали, только если дерево находится в режиме вхождения (т. е. была выбрана опция меню Показать вхождения).
|
Вхождению можно назначить базовые или расширенные выражения. Для фильтрации вхождений применяется та же самая логика, что и для фильтрации связей использования. Единственное отличие заключается в том, что при фильтрации связей использования система комбинирует выражения, назначенные связи использования, и выражения, назначенные дочерней детали. При фильтрации вхождений фильтр опций основывается только на выражениях, назначенных вхождению.
Компании могут настроить стандартное и альтернативное поведение фильтрации вхождений. В частности, можно определить некоторые специальные политики фильтрации для вхождений.
Стандартное поведение отфильтровывает вхождения, если результат вычисления расширенного выражения равен "ложь" (или если базовое выражение не может быть сопоставлено с вариантами, выбранными в фильтре).
Стандартное альтернативное поведение отфильтровывает вхождения, если одно из следующих условий является истинным:
• Результат вычисления расширенного выражения имеет значение "ложь".
• Расширенное выражение не может быть вычислено.
• Базовое выражение не может быть сопоставлено с вариантами, выбранными в фильтре опций.
• Базовое выражение содержит варианты опции, которая не была выбрана в фильтре опций.
Политика фильтрации вхождений может быть определена в теге FilterNode следующим образом:
<FilterNode type="wt.part.PartUsesOccurrence" parentType=”<type of the parent type of the usage link of the occurrence>” childType=”<type of the child type of the usagelink of the occurrence>”>
Атрибуты parentType и childType элемента FilterNode ссылаются на тип родительской детали и тип разрешенной дочерней детали связи использования, для которой определено вхождение.
Например, чтобы применить стандартную логику альтернативной фильтрации вхождений, для которых связь использования соединяет детали, имеющие тип ABCPart и CBSPart, определим следующую политику:
<FilterNode type="wt.part.PartUsesOccurrence" parentType=”wt.part.ABCPart” childType=”wt.part.CBSPart”>
<ExpressionPolicy advanced="true" mode="STANDARD,UNDEFINED"/>
</FilterNode>
Можно также описать вхождения, которые должны быть отфильтрованы, если в них отсутствует выражение. Значения атрибутов type, partType и childType в FilterMissingExpression совпадают со значениями этих же атрибутов элемента FilterNode. Например, следующая политика определяет, что вхождения, для которых детали типов ABCPart и CBSPart соединены связью использования, будут отфильтрованы, если им не будет назначено выражение:
<FilterMissingExpression type="wt.part.PartUsesOccurrence" parentType=”wt.part.ABCPart” childType=”wt.part.CBSPart”/>
Обратите внимание: вхождение является подчиненным по отношению к своей связи использования - оно существует только в контексте своей связи использования. Поэтому вхождение данной связи использования будет отфильтровано делегатом фильтрации опций только после исследования связи использования делегатом фильтрации опций и сохранения в процессе фильтрации. Если все вхождения связи использования отфильтрованы, связь использования также будет отфильтрована. В результате все узлы, содержащие соответствующие связи использования и вхождения, будут удалены из дерева структуры детали.