Utilizzare gli schemi di numerazione di Vault per applicare nomi di file quando un utente crea un nuovo file di Data Standard.
Nell'esempio presente con l'installazione, nella casella combinata Schema di numerazione sono visualizzati tutti gli schemi di numerazione attivi. Nel file XAML, la casella combinata è collegata ad una funzione PowerShell denominata GetNumSchms.
La funzione GetNumSchms rende più semplice il controllo degli schemi da visualizzare all'utente.
Filtraggio degli schemi di numerazione in Inventor in base al tipo di file
Senza Data Standard, è sempre possibile effettuare una selezione tra tutti gli schemi di numerazione del Vault attivati. Con la seguente implementazione di GetNumSchms, saranno disponibili diversi schemi per i componenti (IPT, IAM) e i disegni (IDW, IPN e DWG). Per eseguire il lavoro dell'esempio, gli schemi di numerazione che iniziano con "COMP" o "DRAWING" devono essere definiti nel 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 per Vault
Si consideri il seguente schema di numerazione denominato TestScheme.
Si desidera ora anteporre un prefisso al nome file con un testo fisso in base al tipo di documento selezionato:
Quando si fa clic su OK nella finestra CreateFileDialog ("Nuovo file di standard..."), la funzione PowerShell GetNewFileName viene richiamata prima di aggiungere il file al Vault. Qui si ha la possibilità di modificare il nome file e includere informazioni da altre proprietà.
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 per CAD
Con Data Standard per Inventor e AutoCAD, è possibile configurare una combinazione di valori di proprietà e un numero generato per il nome file.
Ad esempio, si supponga di voler creare automaticamente nomi di file univoci nel formato: "N-<Titolo>-####.ipt" dove N- viene sempre applicato, <Titolo> è la proprietà titolo immessa dall'utente, #### è un numero generato automaticamente e .ipt è l'estensione del file.
Questa operazione può essere eseguita modificando l'elemento <FileNameDefinition> in Inventor.cfg o nei file 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 per Vault
Il seguente esempio di implementazione di GetNewFileName utilizza lo schema di numerazione "TestScheme" come in precedenza e il valore immesso in "Titolo" come un parametro per lo schema di numerazione.
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 per CAD
Per Inventor e AutoCAD, l'implementazione è simile a quella per l'esempio sopra. Ma invece di restituire un nome file, la proprietà "DocNumber"deve essere riempita con un numero generato. Questa proprietà viene quindi utilizzata per impostare il nome del file corrente:
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 } } ...