示例 - 使用 Data Standard 对话框中的编号方案

利用 Vault 编号规则来强制文件名称,当用户创建新的 Data Standard 文件。

过滤编号方案

在安装的示例中,编号方案组合框中显示了所有激活的编号方案。在 XAML 文件中,该组合框被绑定到名为 GetNumSchms 的 PowerShell 函数。

使用 GetNumSchms 函数,您可以轻松控制应将哪些方案显示给用户。

根据文件类型在 Inventor 中过滤编号方案

自定义文件名

适用于 Vault 的 Data Standard

适用于 CAD 的 Data Standard

特性 DocNumber 中包含生成的编号,因为在 Inventor.xaml 文件的 DSNumSchemeCtrl 控件中的属性 GeneratedNumberProperty="DocNumber" 中对其进行了定义。

使用 Vault 编号而不显示对话框中的编号方案控件

通过从默认的 File.xaml 文件中删除 DSNumSchemeCtrlNumSchms 组合框,用户便再也不能选择编号方案。

适用于 Vault 的 Data Standard

    在以下实施 GetNewFileName 的示例中,使用了上面的编号方案“TestScheme”,并将“Title”中输入的值用作该编号方案的参数。

    C:\ProgramData\Autodesk\Vault 2016\Extensions\DataStandard\Vault\addinVault\Default.ps1

    ...
    function GetNewFileName
    {
        $numSchemes = $vault.DocumentService.GetNumberingSchemesByType([Autodesk.Connectivity.WebServices.NumSchmType]::Activated)
        $testNumScheme = $numSchemes | Where-Object { $_.Name.Equals("TestScheme") }
        $NumGenArgs = @()
        $NumGenArgs += $Prop["Title"].Value
        $genNum = $vault.DocumentService.GenerateFileNumber($testNumScheme.SchmID, $NumGenArgs)
        return $genNum + $Prop["_FileExt"].Value
    }
    ...

适用于 CAD 的 Data Standard

    对于 Inventor 和 AutoCAD,实施与上面的示例类似。但不会返回文件名,而是必须在特性“DocNumber”中填写生成的编号。随后,此特性将用于设置当前文件的名称:

    C:\ProgramData\Autodesk\Vault 2016\Extensions\DataStandard\CAD\addinVault\Default.ps1

    ...
    function OnPostCloseDialog
    {
        if ($Prop["_CreateMode"].Value)
        {
            $numSchemes = $vault.DocumentService.GetNumberingSchemesByType([Autodesk.Connectivity.WebServices.NumSchmType]::Activated)
            $testNumScheme = $numSchemes | Where-Object { $_.Name.Equals("TestScheme") }
            $NumGenArgs = @()
            $NumGenArgs += $Prop["Title"].Value
            $genNum = $vault.DocumentService.GenerateFileNumber($testNumScheme.SchmID, $NumGenArgs)
            $Prop["DocNumber"].Value = $genNum
        }
    }
    ...