Nutzen Sie Autodesk Vault Nummernschemata zu erzwingen, wenn ein Benutzer erstellt eine neue Datei für Data Standard.
In dem installierten Beispiel werden im Kombinationsfeld Nummernschema sämtliche aktivierten Nummernschemata angezeigt. In der XAML-Datei ist das Kombinationsfeld an die PowerShell-Funktion GetNumSchms gebunden.
Über die Funktion GetNumSchms können Sie einfach steuern, welche Schemata dem Benutzer angezeigt werden.
Filtern von Nummernschemata in Inventor basierend auf dem Dateityp
Ohne Data Standard kann der Benutzer immer zwischen allen aktivierten Vault-Nummernschemata wählen. Mit der folgenden Implementierung von GetNumSchms stehen verschiedene Schemata für Komponenten (IPT, IAM) und Zeichnungen (IDW, IPN und DWG) zur Verfügung. Damit das Beispiel funktioniert, müssen Nummernschemata, die mit COMP oder DRAWING beginnen, in Vault definiert werden:
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 für Vault
Beachten Sie das folgende Nummernschema TestScheme.
Sie möchten nun dem Dateinamen einen festen Text basierend auf den ausgewählten Dokumenttyp voranstellen:
Wenn Sie im Dialogfeld CreateFileDialog auf OK klicken (Neue Standard-Datei) wird die PowerShell-Funktion GetNewFileName aufgerufen, bevor die Datei zum Tresor hinzugefügt wird. Hier haben Sie die Möglichkeit, den Dateinamen zu ändern und Informationen aus anderen Eigenschaften einzuschließen.
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 für CAD
Mit Data Standard für Inventor und AutoCAD können Sie eine Kombination aus Eigenschaftswerten und einer generierten Nummer für den Dateinamen konfigurieren.
Wenn Sie beispielsweise automatisch eindeutige Dateinamen im Format N-<Title>-####.ipt erstellen möchten, wobei N immer angewendet wird, <Title> die vom Benutzer eingegebene Eigenschaft Title ist, #### eine automatisch generierte Nummer und .ipt die Dateierweiterung darstellt,
so können Sie das Element <FileNameDefinition> in der Datei Inventor.cfg oder AutoCAD.cfg ändern.
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 für Vault
Im folgenden Implementierungsbeispiel von GetNewFileName wird das obige Nummernschema TestScheme verwendet, und der in Title eingegebene Wert als Parameter für das Nummernschema.
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 für CAD
Bei Inventor und AutoCAD ist die Implementierung ähnlich wie im Beispiel oben. Statt einen Dateinamen zurückzugeben, muss der Eigenschaft DocNumber eine generierte Nummer zugewiesen werden. Diese Eigenschaft wird verwendet, um den Namen für die aktuelle Datei festzulegen:
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 } } ...