업무 자동화/VBA, VB.NET For Creo

IpfcModel : Function IsCommonNameModifiable()

ToolBOX01 2025. 11. 14. 22:08
반응형

◎ Function IsCommonNameModifiable()

특정 모델의 공통 이름(Common Name)을 수정할 수 있는지 여부를 확인하는 데 사용됩니다. 모델 객체 (IpfcModel)의 속성 중 하나인 CommonName을 프로그래밍 방식으로 변경하는 것이 허용되는지 여부를 확인합니다.

반환값:

 

  • True (Boolean): 모델의 공통 이름을 수정할 수 있습니다.
  • False (Boolean): 모델의 공통 이름을 수정할 수 없습니다 (읽기 전용).

🛠️ 사용 시나리오

이 함수는 모델의 메타데이터를 수정하는 자동화 스크립트에서 사전 검사 용도로 주로 사용됩니다.

  1. 조건부 이름 수정:
    스크립트가 여러 모델을 순회하며 공통 이름을 표준화해야 할 때, 이 함수를 사용하여 수정 가능한 모델에 대해서만 이름 변경 로직을 실행하도록 할 수 있습니다. 이를 통해 불필요한 API 호출 오류(IpfcXToolkitNoPermission 등)를 방지할 수 있습니다.
  2. 권한 확인:
    모델 파일의 상태(예: PDM 시스템에 체크인된 상태, 읽기 전용으로 잠긴 상태 등)에 따라 이름 수정 권한이 달라질 수 있습니다. 이 함수는 현재 Creo 세션 상태에서 쓰기 권한이 있는지 간접적으로 확인하는 데 도움이 됩니다.

💻 Sample code

현재 활성화된 모델의 공통 이름 수정 가능 여부를 확인하고, 수정이 가능하다면 새로운 이름으로 변경하는 VBA 코드 예시입니다.

Dim session As pfcls.IpfcBaseSession
Dim CurrentModel As IpfcModel
Set CurrentModel = Session.CurrentModel

'// 공통 이름 수정 가능 여부 확인 (FunctionIsCommonNameModifiable) //'
Dim IsModifiable As Boolean
IsModifiable = CurrentModel.FunctionIsCommonNameModifiable()

Dim CurrentCommonName As String
CurrentCommonName = CurrentModel.CommonName

If IsModifiable = True Then
        '// 수정이 가능할 경우 새로운 공통 이름 설정 //'
        Dim NewCommonName As String
        NewCommonName = "STANDARDIZED_" & CurrentModel.FileName '// 예시 새 이름 '//
        
        '// 공통 이름 변경 //'
        CurrentModel.CommonName = NewCommonName
        
        MsgBox "✅ 공통 이름 수정 가능: " & vbCrLf & _
               "기존 이름: " & CurrentCommonName & vbCrLf & _
               "새 이름: " & CurrentModel.CommonName, vbInformation
    Else
        '// 수정이 불가능할 경우 //'
        MsgBox "❌ 공통 이름 수정 불가능: " & CurrentCommonName & vbCrLf & _
               "이 모델은 공통 이름을 수정할 수 없습니다 (읽기 전용 상태일 수 있습니다).", vbExclamation
    End If

 

by korealionkk@gmail.com


 

반응형