Aproveche los esquemas de numeración de Vault para forzar nombres de archivo cuando un usuario crea un nuevo archivo de Estándar de datos.
En el ejemplo instalado, el cuadro combinado Esquema de numeración muestra todos los esquemas de numeración activos. En el archivo XAML, el cuadro combinado está enlazado con una función PowerShell denominada GetNumSchms.
La función GetNumSchms facilita el control de los esquemas que se deben mostrar al usuario.
Filtrar esquemas de numeración en Inventor en función del tipo de archivo
Sin Estándar de datos, el usuario puede realizar siempre la selección entre todos los esquemas de numeración de Vault activos. Con la implementación siguiente de GetNumSchms, habrá diferentes esquemas disponibles para componentes (IPT, IAM) y dibujos (IDW, IPN y DWG). Para que el ejemplo funcione, los esquemas de numeración que comienzan con "COMP" o "DRAWING" deben estar definidos en 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 } ...
Estándar de datos para Vault
Supongamos que tiene el siguiente esquema de numeración denominado TestScheme.
Desea añadir al principio el nombre de archivo con un texto fijo basado en el tipo de documento seleccionado:
Al hacer clic en Aceptar en CreateFileDialog ("Nuevo archivo estándar..."), se invoca la función GetNewFileName de PowerShell antes de añadir el archivo a Vault. Aquí tiene la oportunidad de modificar el nombre de archivo e incluir información de otras propiedades.
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 }
Estándar de datos para CAD
Con Estándar de datos para Inventor y AutoCAD, puede configurar una combinación de valores de propiedad y un número generado para el nombre de archivo.
Por ejemplo, supongamos que desea crear automáticamente nombres de archivo únicos con el formato: "N-<título>-####.ipt donde N- se aplica siempre, <título > es la propiedad Título especificada por el usuario, #### es un número generado automáticamente e .ipt es la extensión de archivo.
Para ello, modifique el elemento <FileNameDefinition> en los archivos Inventor.cfg o 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}" /> ...
Estándar de datos para Vault
La implementación de ejemplo siguiente de GetNewFileName utiliza el esquema de numeración "TestScheme" anterior y el valor introducido en "Título" como un parámetro para el esquema de numeración.
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 } ...
Estándar de datos para CAD
Para Inventor y AutoCAD, la implementación es similar al ejemplo anterior. No obstante, en lugar de devolver un nombre de archivo, la propiedad "DocNumber" tiene que rellenarse con un número generado. A continuación, esta propiedad se utiliza para definir el nombre para el archivo actual:
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 } } ...