활용 Vault 번호 매기기 체계를 사용하여 파일 이름을 작성하는 경우 새 Data Standard 파일.
설치된 샘플에서 번호 매기기 체계 콤보 상자는 활성화된 모든 번호 매기기 체계를 표시합니다. XAML 파일에서 콤보 상자는 GetNumSchms
라는 PowerShell 함수에 바인딩되어 있습니다.
GetNumSchms
함수를 사용하면 사용자에게 표시해야 할 체계를 쉽게 제어할 수 있습니다.
파일 유형에 따른 Inventor의 번호 매기기 체계 필터링
데이터 표준 없이 사용자는 언제나 활성화된 모든 Vault 번호 매기기 체계 중에서 선택할 수 있습니다. 다음의 GetNumSchms
구현이 적용된 상태에서 구성요소(IPT, IAM)와 도면(IDW, IPN 및 DWG)에 다양한 체계를 사용할 수 있습니다. 해당 샘플이 작동하려면 "COMP" 또는 "DRAWING"으로 시작하는 번호 매기기 체계가 Vault에서 정의되어야 합니다.
C:\ProgramData\Autodesk\<Vault version>\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
}
...
TestScheme이라는 다음의 번호 매기기 체계를 사용할 것을 고려해 보십시오.
이제 선택한 문서 유형에 따라 파일 이름 앞에 고정형 문자를 추가하려고 합니다.
ENG-
(예: ENG-A-00004.ipt)ENGDOC-
(예: ENGDOC-B-00001.idw).OFF-
(예: OFF-C-00002.docx).파일 작성 대화상자(새 표준 파일)에서 확인을 클릭하면 파일이 Vault에 추가되기 전에 PowerShell 함수 GetNewFileName
이 호출됩니다. 여기서 파일 이름을 수정하고 다른 특성의 정보를 포함할 수 있습니다.
C:\ProgramData\Autodesk\<Vault version>\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
}
Inventor 및 AutoCAD용 데이터 표준으로 특성 값과 파일 이름에 대해 생성된 번호의 조합을 구성할 수 있습니다.
예를 들어 N-
이 작업은 Inventor.cfg 또는 AutoCAD.cfg 파일에서 요소 <FileNameDefinition>
를 수정하여 수행할 수 있습니다.
C:\ProgramData\Autodesk\<Vault version>\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}" />
...
특성 DocNumber
에는 Inventor.xaml 파일의 DSNumSchemeCtrl
컨트롤에 있는 속성 GeneratedNumberProperty="DocNumber"
에 정의되어 있으므로 생성된 숫자가 포함되어 있습니다.
기본 File.xaml 파일에서 DSNumSchemeCtrl
및 NumSchms
콤보 상자를 제거하면 사용자가 더 이상 번호 매기기 체계를 선택할 수 없습니다.
GetNewFileName
의 다음 샘플 구현에서는 위의 번호 매기기 체계 "TestScheme"와 번호 매기기 체계용 매개변수로 "Title"에 입력한 값을 사용합니다.
C:\ProgramData\Autodesk\<Vault version>\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
}
...
Inventor와 AutoCAD에서 구현은 위의 샘플과 유사합니다. 하지만 파일 이름을 반환하는 대신 특성 DocNumber
을 생성된 번호로 채워야 합니다. 그런 다음 이 특성이 현재 파일의 이름을 설정하는 데 사용됩니다.
C:\ProgramData\Autodesk\<Vault version>\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
}
}
...