Data Standard 自定义对象管理

配置创建对话框和选项卡以显示自定义对象数据。

要求

使用预配置的自定义对象“Task”

默认情况下,所有这三个组件都会随 Data Standard 一同提供。这些组件都经过了预配置,可与 Vault 中名为 Task 的自定义对象配合使用。

注: 仅当存在自定义对象时,才会提供针对自定义对象的关联菜单支持。
  1. 通过 Vault 配置,创建一个自定义对象定义并将其命名为 Task。
    注: 有关详细信息,请参见自定义对象管理
  2. 将 Title 和 Description 特性指定给 Base 类别。
  3. 重新启动 Vault Explorer 并登录 Vault 两次:
    • 首次登录时,确认 Task 对象类型可在 Vault Client 中使用。
    • 注销并再次登录以初始化“数据表”选项卡和菜单项,以创建和编辑 Task。
    • 新的自定义对象 Task 被完全初始化并准备就绪,可以使用。

  4. 使用“新建”命令创建新自定义对象并为其指定任意名称。
  5. 在新自定义对象上单击鼠标右键。关联菜单现在将“新建 Task”和“编辑 Task”显示为菜单选项。
注: 在定义新的自定义对象并首次登录后,将创建文件 CustomEntityDefinitions.json%programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault)。该文件中的定义用于初始化自定义对象的选项卡和菜单项。该文件不应手动修改。要避免用户必须多次登录,可以部署该文件。如果您无法初始化自定义对象,可删除该文件。当您下次登录到 Vault 时,将创建该文件。

配置其他自定义对象

要定义您自己的自定义对象,请复制 Task 样例中的三个组件,并且根据需要进行修改。

下面是一个名为 Person 的自定义对象的示例。

菜单条目

    以下位置定义了用于创建和编辑对话框的关联菜单项:

    %programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\MenuDefinitions.xml

    必须创建菜单项定义:

  1. 从 Task 样例中复制定义(MenuItem NewTask、MenuItem EditTask)。
  2. 将所有变量中的 Task 替换为 Person。
  3. 修改 Description、Hint、Label 和 Navigation Types。
    注: 对于这些变量,可以使用原始样例中的 UIString 语法。有关详细信息,请参见本地化
  4. 	<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"/>
      

      接下来,为新的自定义对象创建菜单站点。

    1. 从 Task 样例中复制站点 (CommandSite Task)。
    2. 将所有变量中的 Task 替换为 Person。
    3. <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 文件:

  1. 复制 CreateCustomObject.ps1EditCustomObject.ps1 菜单定义文件并将其重命名为 CreatePerson.ps1EditPerson.ps1
  2. 与其他脚本类似,创建和编辑自定义对象脚本都指向关联的 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 version>\extensions\datastandard\vault\configuration

    默认的 CustomObject.xaml 适用,无需进行任何更改。但是,您必须使用 CustomObject.xaml 文件作为模板,为新的自定义对象创建 XAML 文件。

  1. 复制 CustomObject.xaml 文件并将其命名为 Person.xaml
  2. 通过下列步骤修改新的 XAML 文件:
    • TaskWindow 的所有实例替换为 PersonWindow
    • 通过将 New PersonEdit Person Datasheet 添加至 UiStrings.xml 并将 ID 替换为新文本字符串 UIString[LBL61]UIString[LBL62] 的 ID,更正对话框标题。
    • 根据需要,添加或删除特性控件。
  3. 通过配置下列各项更改 %programdata%\Autodesk\<Vault 版本>\Extensions\DataStandard\Vault\addinVault\Default.ps1 中的下列函数:
    • 配置 InitializeWindow 以控制对话框的尺寸。
    • 配置 GetCategories 以支持基于类别的动态特性。
    • 配置 Validate 以实施验证规则。

为新的自定义对象获取 Datasheet 选项卡

  1. 复制 Task 文件夹并将其命名为 Person。
  2. 如果需要,更新 Person 文件夹中的 Datasheet.xaml(例如,添加或删除特性)。