Tirez parti des schémas de numérotation Vault pour exiger des noms de fichiers lorsqu'un utilisateur crée un nouveau fichier Data Standard.
Dans l’exemple indiqué, la zone déroulante Schéma de numéro affiche tous les schémas de numérotation activés. Dans le fichier XAML, la zone déroulante est liée à une fonction PowerShell nommée GetNumSchms.

La fonction GetNumSchms permet de contrôler facilement quels schémas sont visibles pour l’utilisateur.
Filtrage des schémas de numérotation dans Inventor en fonction du type de fichier
Sans Data Standard, l’utilisateur a toujours la possibilité de choisir parmi l’ensemble des schémas de numérotation Vault activés. Si la fonction GetNumSchms est mise en œuvre selon le scénario ci-après, différents schémas seront disponibles pour les composants (IPT, IAM) et les dessins (IDW, IPN et DWG). Pour que cet exemple fonctionne, les schémas de numérotation commençant par "COMP" ou "DRAWING" doivent être définis dans Vault :
C:\ProgramData\Autodesk\
...
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
}
...
Supposons que vous possédiez le schéma de numérotation suivant, nommé TestScheme.

Vous souhaitez maintenant ajouter au nom du fichier, en tant que préfixe, un texte fixe en fonction du type de document sélectionné :
ENG- pour les pièces et ensembles Inventor (par exemple, ENG-A-00004.ipt)ENGDOC- pour les dessins AutoCAD/Inventor et les présentations Inventor (par exemple, ENGDOC-B-00001.idw)OFF- pour tous les autres fichiers (par exemple, OFF-C-00002.docx)Lorsque vous cliquez sur OK dans la boîte de dialogue de création de fichier (Nouveau fichier de normes), la fonction PowerShell GetNewFileName est appelée avant l’ajout du fichier à Vault. Vous avez alors la possibilité de modifier le nom du fichier et d’inclure des informations provenant d’autres propriétés.
C:\ProgramData\Autodesk\<version de Vault>\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
}
Avec Data Standard pour Inventor et AutoCAD, vous pouvez configurer une combinaison de valeurs de propriétés et un numéro généré pour le nom de fichier.
Par exemple, supposons que vous souhaitiez automatiquement créer des noms de fichiers uniques au format N-
Cette opération peut être effectuée en modifiant l’élément <FileNameDefinition> dans le fichier Inventor.cfg ou AutoCAD.cfg.
C:\ProgramData\Autodesk\<version de Vault>\Extensions\DataStandard\CAD\Inventor.cfg
<?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}" />
...
La propriété DocNumber inclut le numéro généré, car il est défini dans l’attribut GeneratedNumberProperty="DocNumber" dans le contrôle DSNumSchemeCtrl du fichier Inventor.xaml.
Lorsque le contrôle DSNumSchemeCtrl et la zone déroulante NumSchms sont supprimés du fichier File.xaml par défaut, l’utilisateur ne peut plus sélectionner de schéma de numérotation.
Dans l’exemple de mise en œuvre de la fonction GetNewFileName ci-après, le schéma de numérotation TestScheme indiqué ci-dessus est utilisé, et la valeur indiquée dans la propriété Title est définie en tant que paramètre pour le schéma de numérotation.
C:\ProgramData\Autodesk\<version de Vault>\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
}
...
Pour Inventor et AutoCAD, la mise en oeuvre s’apparente à celle présentée dans l’exemple ci-dessus. En revanche, au lieu de renvoyer un nom de fichier, un numéro généré doit être indiqué dans la propriété DocNumber. Cette propriété est alors utilisée pour définir le nom du fichier courant :
C:\ProgramData\Autodesk\
...
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
}
}
...