Amostra de – usando esquemas de numeração em caixas de diálogo padrão de dados

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.

Filtro de esquemas de numeração

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 do 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 de 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\<versão do Vault>\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
}
...

Personalizar o nome do arquivo

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 você clica em OK na caixa de diálogo Criar arquivo (Novo arquivo padrão), a função do 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\<versão do 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
}

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, em que N- sempre é aplicado, <título> é a propriedade de Título inserida pelo 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\<versão do 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}" />
...

A propriedade DocNumber contém o número gerado, porque está definido no atributo GeneratedNumberProperty="DocNumber" no controle DSNumSchemeCtrl do arquivo Inventor.xaml.

Ao remover DSNumSchemeCtrl e a caixa combo NumSchms do arquivo File.xaml padrão, o usuário não pode mais selecionar um esquema de numeração.

Data Standard for Vault

A amostra de implementação a seguir do GetNewFileName usa o esquema de numeração "TestScheme" acima e o valor inserido em "Title" como um parâmetro para o esquema de numeração.

C:\ProgramData\Autodesk\<versão do 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
}
...

Data Standard para CAD

Para o Inventor e o AutoCAD, a implementação é similar ao exemplo cima. Contudo, em vez de retornar 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\<versão do Vault>\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
    }
}
...