Использование схемы нумерации Vault, чтобы использовать имена файлов, когда пользователь создает нового файла Data Standard.
В этом примере в поле со списком "Схемы нумерации" отображаются все активированные схемы нумерации. В файле XAML поле со списком привязано к функции PowerShell с именем GetNumSchms.
Функция GetNumSchms позволяет с легкостью управлять отображением схем для пользователей.
Фильтрация схем нумерации по типам файлов в Inventor
Пользователи всегда могут выбирать схемы из всех активированных схем нумерации без использования Data Standard. Следующие варианты реализации функции 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 для Vault
Предположим, что имеются следующие схемы нумерации с именем TestScheme.
Перед началом имени файла требуется добавить фиксированный текст в зависимости от типа документа:
Нажатие кнопки "ОК" в диалоговом окне создания файла ("Новый файл стандартов...") перед добавлением файла в Vault вызывает функцию PowerShell GetNewFileName. Таким образом можно изменить имя файла и включить информацию из других свойств.
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 для САПР
С помощью Data Standard для Inventor и AutoCAD можно настроить комбинацию значений свойств и созданный номер для имени файла.
Предположим, что требуется автоматически создавать уникальные имена файлов в формате N-<Title>-####.ipt, где N применяется всегда,<Title> — введенное пользователем свойство Title, #### — автоматически созданный номер, а .ipt — расширение файла.
Это можно сделать, изменив элемент <FileNameDefinition> в файле Inventor.cfg или AutoCAD.cfg.
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 для 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 для САПР
Реализация для 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 } } ...