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

IpfcBaseSession : Method (Function GetByRelationId)

ToolBOX01 2025. 11. 9. 09:21
반응형

◎ FunctionGetByRelationId(Id as Long) as IpfcModel [optional]

이 함수는 Creo Parametric 세션에서 모델을 관리할 때, 모델의 파일 이름 대신 Creo 내부에서 사용하는 고유한 정수 ID(Relation ID)를 통해 모델에 접근할 수 있게 해줍니다. 지정된 관계 식별자(Id)에 해당하는 모델 객체(IpfcModel)를 찾아서 반환합니다.

매개변수

Id (Long): 검색할 모델의 관계 식별자(Relation Identifier)입니다. 이 ID는 Creo가 모델을 로드하거나 관리할 때 내부적으로 할당하는 고유한 정수 값입니다.

반환값

IpfcModel [선택 사항]: ID에 해당하는 모델 객체입니다. 해당 ID를 가진 모델이 현재 Creo 세션에 로드되어 있지 않다면 Nothing을 반환합니다.

이 함수는 보통 다음과 같은 경우에 유용합니다.

  1. 모델 상태 추적: 다른 API 함수나 이벤트 처리 루틴을 통해 모델의 Relation ID를 미리 얻어둔 후, 나중에 해당 ID를 사용하여 모델 객체 자체를 다시 참조할 때.
  2. 데이터베이스 통합: Creo 세션 외부에서 모델의 내부 ID를 참조하는 외부 데이터베이스나 시스템이 있을 때, 해당 ID를 통해 모델을 빠르게 로드할 필요가 있을 때.

Sample code

활성화된 모델의 Relation ID를 얻은 후, 그 ID를 사용하여 모델을 다시 검색하는 가상의 시나리오를 보여줍니다.

Dim pfcSession As pfcls.IpfcBaseSession 
Dim activeModel As pfcls.IpfcModel
Dim modelID As Long
Dim retrievedModel As pfcls.IpfcModel

'// 현재 활성화된 모델을 가져와 ID를 얻습니다. //'
Set activeModel = pfcSession.GetActiveModel()

'// 활성화된 모델에서 Relation ID를 추출합니다. //'
modelID = activeModel.Id '// IpfcModel 객체의 Id 속성 사용 //'
MsgBox "활성화된 모델의 ID: " & modelID, vbInformation



'// 추출한 ID를 사용하여 모델을 다시 검색합니다. //'
Set retrievedModel = pfcSession.GetByRelationId(modelID)
MsgBox "ID (" & modelID & ")로 모델 '" & retrievedModel.FileName & "'을 성공적으로 검색했습니다.", vbInformation


'// 검색된 모델이 원래 모델과 동일한지 확인 (참조 비교) //'
If retrievedModel Is activeModel Then
   Debug.Print "두 모델 객체 참조는 동일합니다."
End If

 

by korealionkk@gmail.com


반응형