활용 Vault 번호 매기기 체계를 사용하여 파일 이름을 작성하는 경우 새 Data Standard 파일.
설치된 샘플에서 번호 매기기 체계 콤보 상자는 활성화된 모든 번호 매기기 체계를 표시합니다. XAML 파일에서 콤보 상자는 GetNumSchms라는 PowerShell 함수에 바인딩되어 있습니다.

GetNumSchms 함수를 사용하면 사용자에게 표시해야 할 체계를 쉽게 제어할 수 있습니다.
파일 유형에 따른 Inventor의 번호 매기기 체계 필터링
데이터 표준 없이 사용자는 언제나 활성화된 모든 Vault 번호 매기기 체계 중에서 선택할 수 있습니다. 다음의 GetNumSchms 구현이 적용된 상태에서 구성요소(IPT, IAM)와 도면(IDW, IPN 및 DWG)에 다양한 체계를 사용할 수 있습니다. 해당 샘플이 작동하려면 "COMP" 또는 "DRAWING"으로 시작하는 번호 매기기 체계가 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
}
...TestScheme이라는 다음의 번호 매기기 체계를 사용할 것을 고려해 보십시오.

이제 선택한 문서 유형에 따라 파일 이름 앞에 고정형 문자를 추가하려고 합니다.
ENG-(예: ENG-A-00004.ipt)ENGDOC-(예: ENGDOC-B-00001.idw).OFF-(예: OFF-C-00002.docx).파일 작성 대화상자(새 표준 파일)에서 확인을 클릭하면 파일이 Vault에 추가되기 전에 PowerShell 함수 GetNewFileName이 호출됩니다. 여기서 파일 이름을 수정하고 다른 특성의 정보를 포함할 수 있습니다.
C:\ProgramData\Autodesk\
...
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\
<?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\
...
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\
...
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
}
}
...