Aproveite os esquemas de numeração do Vault para Forçar nomes de arquivo quando um usuário cria um novo arquivo do Data Standard.
Na amostra instalada, a caixa combo Esquema de números mostra todos os esquemas de numeração ativados. No arquivo XAML, a caixa combo é vinculada a uma função PowerShell denominada GetNumSchms.
A função GetNumSchms facilita o controle de quais esquemas devem ser exibidos para o usuário.
Como filtrar os esquemas de numeração no Inventor com base no tipo de arquivo
Sem o Data Standard, o usuário pode sempre selecionar entre todos os esquemas de numeração ativados do Vault. Com a implementação a seguir do GetNumSchms, diferentes esquemas estarão disponíveis para os componentes (IPT, IAM) e os desenhos (IDW, IPN e DWG). Para fazero trabalho de amostra, esquemas de numeração que começam com "COMP" ou "DRAWING" devem ser definidos no Vault:
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 para o Vault
Imagine que você tem o seguinte esquema de numeração, denominado TestScheme.
Agora, você deseja elaborar o nome do arquivo com um texto fixo de acordo com o tipo de documento selecionado:
Quando clicar em OK na CreateFileDialog ("Novo arquivo padrão..."), a função PowerShell GetNewFileName é chamada antes de adicionar o arquivo ao Vault. Aqui você tem a oportunidade para modificar o nome de arquivo e incluir informações de outras propriedades.
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 para CAD
Com o Data Standard para o Inventor e o AutoCAD, é possível configurar uma combinação de valores de propriedade e um número gerado para o nome do arquivo.
Por exemplo, imagine que você deseja criar automaticamente nomes de arquivo exclusivos no formato: "N-<título>-####.ipt, onde N- sempre é aplicado, <título> é a propriedade de Título informada para o usuário, #### é um número gerado automaticamente e .ipt é a extensão do arquivo.
Isso pode ser feito ao modificar o elemento <FileNameDefinition> nos arquivos Inventor.cfg ou 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 para o Vault
A amostra de implementação a seguir do GetNewFileName usa o esquema de numeração "TestScheme" acima e o valor inserido em "Título" como um parâmetro para o esquema de numeração.
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 para CAD
Para o Inventor e o AutoCAD, a implementação é similar ao exemplo cima. Contudo, em vez de apresentar um nome de arquivo, a propriedade "DocNumber" deve ser preenchida com um número gerado. Em seguida, essa propriedade é usada para definir o nome do arquivo atual:
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 } } ...