利用 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 } } ...