利用 Vault 編號規則,在使用者建立新的 Data Standard 檔案時強制檔案名稱。
在已安裝的範例中,「編號規則」組合方塊會展示所有已啟用的編號規則。在 XAML 檔案中,該組合方塊已連結至名為 GetNumSchms 的 PowerShell 函數。

GetNumSchms 函數可讓您輕鬆地控制應向使用者顯示哪些規則。
根據檔案類型在 Inventor 中篩選編號規則
如果沒有「Data Standard」,使用者永遠都可以在所有已啟用的 Vault 編號規則之間進行選取。使用以下 GetNumSchms 實施,元件 (IPT、IAM) 和圖面 (IDW、IPN 和 DWG) 可使用不同的規則。若要使範例運作,必須在 Vault 中定義以「COMP」或「DRAWING」開頭的編號規則:
C:\ProgramData\Autodesk\Vault 2016\Extensions\DataStandard\CAD\addinVault\Default.ps1
...
function GetNumSchms
{
try
{
$numSchems = $vault.DocumentService.GetNumberingSchemesByType('Activated')
}
catch [System.Exception]
{
#[System.Windows.MessageBox]::Show($error)
}
$fileName = $Prop["DocNumber"].Value
$fileExt = [System.IO.Path]::GetExtension($fileName)
$ret = @()
foreach ($item in $numSchems)
{
if (($fileExt -eq ".iam" -or $fileExt -eq ".ipt") -and $item.Name.StartsWith("COMP"))
{
$ret += $item.Name
}
elseif (($fileExt -eq ".idw" -or $fileExt -eq ".ipn" -or $fileExt -eq ".dwg") -and $item.Name.StartsWith("DRAWING"))
{
$ret += $item.Name
}
}
return $ret
}
...
Data Standard for Vault
假設您具有以下名為 TestScheme 的編號規則。

現在,您希望根據選取的文件類型在檔名前面加上固定的文字:
在 CreateFileDialog (「新標準檔案...」) 中按一下「確定」時,會先呼叫 PowerShell 函數 GetNewFileName,然後再將檔案加入至 Vault。此時,您有機會修改檔名並包括其他性質中的資訊。
C:\ProgramData\Autodesk\Vault 2016\Extensions\DataStandard\Vault\addinVault\Default.ps1
...
function GetNewFileName
{
$prefix = ""
if($dsWindow.FindName("NUMSCHEME").IsEnabled -eq $false)
{
$fileName = $dsWindow.FindName("FILENAME").Text
}
else{
$fileName = $Prop["_GeneratedNumber"].Value
if (($Prop["_FileExt"].Value -eq ".ipt") -or ($Prop["_FileExt"].Value -eq ".iam"))
{
$prefix = "ENG-"
}
elseif (($Prop["_FileExt"].Value -eq ".dwg") -or ($Prop["_FileExt"].Value -eq ".idw") -or ($Prop["_FileExt"].Value -eq ".ipn"))
{
$prefix = "ENGDOC-"
}
else
{
$prefix = "OFF-"
}
}
$newfileName = $prefix + $fileName + $Prop["_FileExt"].Value
return $newfileName
}
Data Standard for CAD
使用 Data Standard for Inventor 和 AutoCAD,您可以規劃性質值與所產生號碼的組合,以用於檔名。
例如,假設您要使用「N-<標題>-####.ipt」格式自動建立唯一檔名,其中 N- 永遠會套用、<標題> 是使用者輸入的「Title」性質、#### 是自動產生的號碼、.ipt 是副檔名。
修改 Inventor.cfg 或 AutoCAD.cfg 檔案中的 <FileNameDefinition> 元素即可完成此作業。
C:\ProgramData\Autodesk\Vault 2016\Extensions\DataStandard\CAD
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<PathDefinition>{Workspace}\{Prop[Folder].Value}</PathDefinition>
<FileNameDefinition>N-{Prop[Title].Value}-{Prop[DocNumber].Value}</FileNameDefinition>
<PropertyDefinitions>
<PropertyDefinition PropertyName="DocNumber" DataType="Text" InitialValue="{PathAndFileNameHandler.FileName}" />
...
Data Standard for Vault
以下 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
}
...
Data Standard for CAD
對於 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
}
}
...