配置创建对话框和选项卡以显示自定义对象数据。
要求
为了支持自定义对象,需要以下三个组件:
默认情况下,所有这三个组件都会随 Data Standard 一同提供。这些组件都经过了预配置,可与 Vault 中名为 Task 的自定义对象配合使用。
通过 Vault 配置,创建一个自定义对象定义并将其命名为 Task。
将 Title 和 Description 特性指定给 Base 类别。
重新启动 Vault Explorer 并登录 Vault 两次:
新的自定义对象 Task 被完全初始化并准备就绪,可以使用。
使用“新建”命令创建新自定义对象并为其指定任意名称。
在新自定义对象上单击鼠标右键。关联菜单现在将“新建 Task”和“编辑 Task”显示为菜单选项。
要定义您自己的自定义对象,请复制 Task 样例中的三个组件,并且根据需要进行修改。
下面是一个名为 Person 的自定义对象的示例。
以下位置定义了用于创建和编辑对话框的关联菜单项:
%programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\MenuDefinitions.xml
必须创建菜单项定义:
从 Task 样例中复制定义(MenuItem NewTask、MenuItem EditTask)。
将所有变量中的 Task 替换为 Person。
修改 Description、Hint、Label 和 Navigation Types。
<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"/>接下来,为新的自定义对象创建菜单站点。
从 Task 样例中复制站点 (CommandSite Task)。
将所有变量中的 Task 替换为 Person。
<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 文件。
通过将 Task 替换为 Person,修改用于定义 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 以实施验证规则。