Revit의 UniqueId 및 IFC의 GUID 변환

2622 단어 RevitIFCAutodeskC#
Revit의 UniqueId 및 Element Id
갑작스레 Autodesk Revit의 말이다.최근에 Revit API를 배우고 있습니다.
GUID는 BIM 표준 형식의 IFC를 처리할 때 자주 화제가 됩니다.구성 요소를 나타내는 유일한 아이디지만 이것과 BIM 도구(Revit)의 관계성이 어떤지 조사한 결과 상당한 시스템으로 전환됐다.소스는 아래와 같다.
UniqueId, DWF and IFC GUID
UniqueID 찾기
RevitLookUp이런 실행 가능한 캐리어 매크로를 사용하고Revit를 통해 요소를 관찰합시다.요소를 선택하고, 매크로를 로드하는 레이블에 나타나는 Revit Loop을 선택하고, "Snop 현재 Selection"명령을 선택하면 다음과 같이 요소의 상세한 내용을 제거할 수 있습니다.

Field에 나타나는 Id는 Element Id이며, 아래에는 UniqueId를 볼 수 있습니다.Element Id는 프로젝트별로 만들어진 요소 번호로, 프로젝트마다 중복될 가능성이 있지만 UniqueId는 고유합니다.문자 수는 8-4-12-8이고 마지막 8글자가 포인트입니다.상기 UniqueId에 대응하는 IFC의 GUID는'0bTZmmVZ5EkPWSD 665dQH1'이다.그럼 어떻게 될까요.참고로 DWG에도 GUID가 있는데 이것은 IFC의 GUID와 등가이다.IFC는 문자 수 제한 때문에 DWG의 GUID(128비트)를 인코딩한 것 같습니다.
변환 규칙
UniqueId 및 GUID 변환에는 4개의 규칙이 사용됩니다.
  • Element은 IFC 가져오기 후 내보낼 때 IFC Enity에 포함되었던 GUID를 저장합니다.매우 드문 경우.
  • Element과 IFC Enity 사이에 일대일의 대응이 존재하는 경우 UniqueId에서 추출한 EpisodeId에서 GUID를 생성(중간)하고, Element Id와 XOR를 통해 GUID를 생성한다.
  • IfcBuilding과 Ifc Project 등 요소가 중첩되어 있고 Revit에 대응하는 요소가 없는 특수한 IFCEnterity와 창이나 문 실례가 있으면 프로젝트의 Detach GUID를 사용하여 GUID를 생성하고 ElementID와 배타적 논리를 구축하여 GUID를 생성한다.
  • 위 이외의 IFC Enity의 경우 GUID를 즉석에서 생성합니다.
  • 알 듯 모를 듯한 느낌.다행히도 웹 사이트에는 C로 작성된 변환 코드와 dll로 작성된 C#Visual Studio 솔루션이 설치되어 있습니다.하지만 보도는 2009년 것이라 낡았다.Visual Studio 2017(.NET Framework 4.8)이 이동으로 수정되었습니다.Test2의 코드를 실행하면 다음 출력을 얻을 수 있습니다.코드를 따로 싣지는 않았지만 IfcGuid.dll유래getString64FromGuid 등 함수를 정의해 불렀을 뿐이다.
    최초의 그림에 나타난 UniqueId'2576330-7e31-4eb9-981c-334618599c650-046211'을 변환해 보았지만 예상대로 GUID'0bTZmmVZ5 EkPWSD 665dQH1'을 받았다.이 일대의 논리는 거의 10년 동안 변하지 않은 것 같다.

    전환된 해결 방안은 다음과 같다.
    Revit_UniqueId_Converter
    참고 자료
    UniqueId, DWF and IFC GUID

    좋은 웹페이지 즐겨찾기