Дополнительные возможности Windchill > Управление производственным процессом > Настройка редактора структуры изделия (PSE) > Настройка PSE для подтипов
  
Настройка PSE для подтипов
Задача
Вы использует утилиту Управление типами и атрибутами, чтобы определить подтипы WTPart и, возможно, атрибуты, добавленные в WTPartUsageLink. Хотя эти типы и атрибуты обычно применяются в PSE без настройки, необходимо управлять их отображением в проводнике PSE.
Вводная информация
Выбор типа детали в PSE обычно автоматически обнаруживает, были ли подтипы определены утилитой Управление типами и атрибутами. Атрибуты автоматически запрашиваются и отображаются. Это обеспечивается в XML-файлах PSE записями, ссылающимися на определения атрибута со следующими идентификаторами:
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Хотя эти записи полезны, они не позволяют управлять порядком отображения. Кроме того, некоторые значения могут задаваться программно на сервере, и поэтому пользователю нельзя разрешить указывать значения.
Рассмотрим простой пример, в котором у WTPart есть повторно используемый атрибут myDescription, добавленный в основное определение. Деталь myMechanical была определена в утилите Управление типами и атрибутами с атрибутами myCost и myWeight, тип WTPartUsageLink был расширен, чтобы добавить повторно используемый атрибут myColor.
Шаги для вставки новой детали myMechanical в сборку показаны на следующих экранах.
Мастер Вставить новую отображает выпадающий список допускающих создание экземпляров типов. Пользователь выбирает деталь myMechanical.
После того как Наименование и другие свойства будут определены, мастер на последнем шаге запросит повторно используемый атрибут, и хотя столбец атрибутов можно сортировать, порядком сортировки по умолчанию управлять нельзя.
Вкладка Информация для детали myMechanical представляет все атрибуты, но не использует какой-либо порядок. Атрибуты в верхней части отображения представляют фиксированный набор, применимый для идентификации данного объекта; некоторые из них могут быть лишними. В расположенную ниже редактируемую таблицу включены атрибуты, унаследованные от WTPart; их порядок не контролируется.
Атрибут myColor не появится на вкладке использования, но для пользователя могло бы быть полезно видеть его значение вместе с другими атрибутами UsageLink.
При настройке XML-файлов PSE можно явно определить атрибуты, которые будут представлены пользователю. Обычно при этом затрагиваются информационная вкладка и мастеры создания и вставки детали.
Контекст, применимость и допущения
Поскольку эти изменения вносятся в XML-файлы редактора структуры изделия, они будут применены для всех пользователей редактора структуры изделия.
Ожидаемый результат
Рассмотрим пример, описанный выше.
При определении атрибутов новой детали атрибуты на последнем шаге мастера отображаются в порядке, определенном в XML-файлах PSE.
Атрибуты в расположенной ниже таблице вкладки Информация также можно упорядочить.
Таблицу ведомости материалов на вкладке использования можно настроить на отображение атрибута связи использования.
Решение
Для dataType определен новый ExplorerElementGroup с применением контекста ptc.wnc. StructureExplorer. В этом элементе определите содержимое таблиц атрибутов.
Вероятно, что при выполнении этой настройки уже определено множество типов WTPart. Эти определения элемента можно добавить в следующий файл:
<Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer/Explorer ForTablesAndPanels.xml
Но этот файл становится большим, что затрудняет идентификацию клиентских расширений. Поэтому рекомендуется создать отдельный файл для каждого программного типа детали и хранить настройки в нем.
AttributeTables с идентификаторами ptc.wnc.exp.CreatPartTab3, ptc.wnc.exp.CreatePartNoUsageLinkTab3 и ptc.wnc.exp.EditPropertiesTable определяется для каждого типа данных dataType.
Добавление атрибутов на вкладку использования достигается включением соответствующего определения ячейки (CellDefinition) для таблицы с ID ptc.wnc.exp.PartUsesLinkTable в ExplorerForTablesAndPanels.xml
Необходимые предварительные знания
Чтобы выполнить это техническое требование, необходимо иметь основные знания в следующих областях:
Управление настройками XML-файла
Элементы решения
Элемент
Тип
Описание
ExplorerForTableAndPanels.xml
Файл XML
Содержит определение таблиц и панелей PSE
Находится в папке
<Windchill>/codebase/config/logicreposi
tory/xml/structureexplore
LogicContext
XML-элемент
Указывает приложение и тип данных, к которым должно быть применено определение
AttributeTable
XML-элемент
Определение таблицы атрибутов и содержимого
CellDefinition
XML-элемент
Атрибут с его соответствующим поведением, который должен отображаться в AttributeTable.
Placement remove="true"
XML-элемент
Используется для того, чтобы прекратить отображение свойства в результате наследования.
Процедура
Или создайте новый файл, представляющий программную деталь (myMechanical.xml), в каталоге
Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer
и вставьте следующие строки, или добавьте ExplorerElementGroup в файл
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE LogicRepository SYSTEM
"/config/logicrepository/dtd/LogicRepository.dtd">
<LogicRepository>
<ExplorerElementGroup>
<LogicContext application="ptc.wnc.StructureExplorer"
dataType="com.aprilia.www.myMechanical"/>
<AttributeTable id="ptc.wnc.exp.CreatePartTab3">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in
the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/uses
Tab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable
id="ptc.wnc.exp.CreatePartNoUsageLinkTab3">
<Table id="Table" displayMode="edit">
<!-- These 2 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts in the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable id="ptc.wnc.exp.EditPropertiesTable">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="source">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="partType">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition>
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in the
specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/usesTab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.EditPropertiesTableAA"/>
</AttributeTable>
</ExplorerElementGroup>
</LogicRepository>
В результате атрибуты будут запрашиваться мастером и информационной вкладкой, как показано в разделе ожидаемого результата.
Чтобы добавить повторно используемый атрибут на вкладку использования, отредактируйте файл
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Найдите в таблице запись с ID ptc.wnc.exp.PartUsesLinkTabTable и добавьте следующее:
<CellDefinition id="myColor" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myColor">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
* 
Ссылка на любое определение <AttributionDefinition> для объекта, отличного от WTPart, должна быть либо полной, либо с использованием определенного логического атрибута.
Чтобы изменения вступили в силу, необходимо перезапустить сервер методов.
Дальнейшая настройка
Чтобы расширить приведенный выше пример, рассмотрим добавление атрибута myDescription на вкладку "Использует". При редактировании этого строкового атрибута пользователю может потребоваться ввод множества символов, однако сделать это в ограниченном пространстве ячейки таблицы затруднительно. Поэтому с атрибутом можно связать другое средство рендеринга, которое при редактировании значения откроет диалоговое окно и позволит пользователю ввести многострочный текст.
Отредактируйте файл
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Найдите в таблице запись с идентификатором ptc.wnc.exp.PartUsedLinkTabTable и добавьте
<CellDefinition id="myDescription" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
rendererClass="com.ptc.windchill.explorer.structureexplorer.renderer.component.
MultilineStringComponent">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
В примере с гольфмобилем результатом будет следующее диалоговое окно, которое появится при нажатии в ячейке кнопки "…".
Это средство рендеринга можно применить и к атрибутам на информационной вкладке.
Точки настройки
В разделе "Вводная информация" приведено множество специальных атрибутов, которые определены в LogicalAttributes.xml и позволяют PSE показывать множество атрибутов для единственного определения. К их числу относятся следующие атрибуты.
Логическая форма
Описание
ALL_SOFT_ATTRIBUTES
Все повторно используемые атрибуты, сохраненные для объекта
ALL_SOFT_CLASSIFICATION_ATT RIBUTES
Все повторно используемые атрибуты, связанные с классификацией объекта.
ALL_SOFT_NON_SCHEMA_ATTRI BUTES
Все повторно используемые атрибуты, сохраненные для объекта и не связанные с типом объекта.
ALL_SOFT_SCHEMA_ATTRIBUTES
Все повторно используемые атрибуты, связанные с типом объекта.
ALL_SOFT_NON_CLASSIFICATION _SCHEMA_ATTRIBUTES
Все повторно используемые атрибуты, связанные с типом объекта и не связанные с классификацией объекта.
ALL_SOFT_NON_CLASSIFICATION _ATTRIBUTES
Все повторно используемые атрибуты, сохраненные для объекта и не связанные с классификацией объекта
ALL_SOFT_USAGE_LINK_SCHEMA _ATTRIBUTES
В контексте детали все повторно используемые атрибуты для связей использования детали, которые связаны с типом связи использования детали
ALL_SOFT_SCHEMA_ATTRIBUTES _FOR_INPUT_TYPE
Все повторно используемые атрибуты, связанные с типом, указанным в фильтре, который может быть супертипом текущего объекта
В ревизии 9 PSE использует следующее в определении таблицы атрибутов на вкладке Информация (а также в диалоговом окне Новый вкладки Информация):
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Использование ALL_SOFT_ATTRIBUTES вместо ALL_SOFT_SCHEMA_ATTRIBUTES или добавление записи для ALL_SOFT_NON_SCHEMA_ATTRIBUTES позволяет отображать атрибуты, программно заполненные из CAD-приложения.