規劃建立對話方塊與頁籤,以顯示自訂物件資料。
需求
需要三個元件才能支援自訂物件:
依預設,Data Standard 隨附了全部三個元件。這些元件已預先規劃為與 Vault 中名為「工作」的自訂物件配合使用。
透過 Vault 規劃,建立自訂物件定義並將其命名為「工作」。
將「標題」和「描述」性質指定給「基準」品類。
重新啟動 Vault Explorer 並登入 Vault 兩次:
新自訂物件「工作」已完全初始化,隨時可供使用。
使用「新建」指令建立新的自訂物件,並將其命名為任意名稱。
在新自訂物件上按一下右鍵。關聯式功能表現在會展示「新工作」和「編輯工作」做為功能表選項。
若要定義您自己的自訂物件,請從「工作」範例中複製三個元件,並依需要進行修改。
以下是稱為「個人」的自訂物件範例。
用於建立和編輯對話方塊的關聯式功能表項目在此處進行定義:
%programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\MenuDefinitions.xml
必須建立功能表項目定義:
從「工作」範例中複製定義 (MenuItem NewTask、MenuItem EditTask)。
將所有變數中的「工作」取代為「個人」。
修改描述、提示、標示和導覽類型。
<NewTask Label="CreatePerson..."
Description="New Person"
Hint="Create a new person object"
PSFile="CreateCustomObject.ps1"
Image="NewCustomObject.ico"
ToolbarPaintStyle="TextAndGlyph"
NavigationTypes="Person"
MultiSelectEnabled="false"/>
<EditTaskLabel="Edit Person..."
Description="Edit Person"
Hint="Edit a person object"
PSFile="EditCustomObject.ps1"
Image="EditCustomObject.ico"
ToolbarPaintStyle="TextandGlyph"
NavigationTypes="Task"
MultiSelectEnabled="False"/>
接下來,為新自訂物件建立功能表站台。
從「工作」範例中複製站台 (CommandSite Task)。
將所有變數中的「工作」取代為「個人」。
<TaskLabel="Person"
DeployAsPullDown="False"
Location="Person">
<ItemName="NewPerson">
</Item>
<ItemName="EditPerson">
</Item>
請參閱〈自訂 Data Standard MenuDefiniftions.xml 檔案〉,以取得有關功能表語法的更多詳細資料。
MenuDefinitions.xml 檔案中的功能表定義指向 PowerShell 檔案。這些檔案位於 %programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\addinVault\Menus。
預設 CreateCustomObject.ps1 和 EditCustomObject.ps1 PowerShell 檔案適用於每個自訂物件。不需要建立其他 PowerShell 檔案。但是,仍可以執行以下工作,來為新自訂物件自訂和建立 PowerShell 檔案:
複製 CreateCustomObject.ps1 和 EditCustomObject.ps1 功能表定義檔案,並將其更名為 CreatePerson.ps1 和 EditPerson.ps1。
與其他腳本類似,建立和編輯自訂物件腳本會指向相關的 XAML 檔案。
將「工作」取代為「個人」,來修改用於定義「Data Standard」對話方塊的 XAML 檔名。
...
$xamlFile = New-Object CreateObject.WPF.XamlFile "PersonXaml", "%ProgramData%\Autodesk\Vault 2016\Extensions\DataStandard\Vault\Configuration\Person.xaml"
$dialog.XamlFile = $xamlFile
...
用於自訂物件建立和編輯對話方塊的 XAML 檔案在 PowerShell 檔案中進行指定 (請參閱上文)。依預設,用於建立和編輯對話方塊以及頁籤的 XAML 檔案位於此處:
%programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\Configuration
預設 CustomObject.xaml 可正常運作,而不發生任何變更。但是,您必須使用 CustomObject.xaml 檔案做為樣板,為新自訂物件建立 XAML 檔案。
複製 CustomObject.xaml 檔案,並將其命名為 Person.xaml。
使用以下步驟修改新的 XAML 檔案:
TaskWindow 的所有複本取代為 PersonWindow。UIString[LBL61] 和 UIString[LBL62] 的 ID。規劃以下各項,在 %programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\addinVault\Default.ps1 中變更以下函數:
InitializeWindow,以控制對話方塊的大小。GetCategories,以根據品類支援動態性質。Validate,以實施驗證規則。