ARX119의 BIM/CAD 연구소

arx119.egloos.com

포토로그 방명록 업그레이드/기능 요청



[소식] Revit 2019 에서 CefSharp 사용, 약인가 독인가?

안녕하세요.

Autodesk Revit 2019 버전부터 CefSharp 모듈이 포함되어 설치됩니다. 
CEF (Chromium Embedded Framework)

우선 CefSharp 모듈에 대해서 소개해 드리겠습니다. CefSharp 모듈은 일반 Revit 유져분들은 접할일이 없을 것입니다. 이것은 주로 래빗 Add-on 개발자들 사이에서 많이 사용하고 있는 개발 API 이기 때문입니다.

이 모듈은 오래전부터 Autodesk Revit의 유명한 블로그(https://thebuildingcoder.typepad.com)에서 소개하고 있었습니다. CefSharp 모듈은 오픈소스로 크로미엄 엔진을 C#언어로 쉽게 사용할 수 있도록 만들어진 Web Browser Library 입니다.

CefSharp 모듈의 가장 큰 장점은 닷넷에서 쉽고 빠르게 사용할 수 있고, HTML5 및 ECMAScript 6를 지원하여 개발자들 사이에서 많은 사랑을 받고 있습니다.

Autodesk 제품에서는 이전 버전부터 WebKit 모듈을 사용해서 웹 서비스에 사용하고 있는데, Autodesk Revit 2019에서 포함된것에 저는 반가움보다는 걱정이 앞섰습니다.

아래의 이미지는 Revit 2014~2019 버전에서 CefSharp을 사용하여 개발된 패밀리 관리 서버의 Revit 화면 입니다. 

이 제품을 개발할 때 여러 문제점을 접해야 했고 이것을 해결하기 위해서 고생한 경험이 있기에 이런 사항을 고려해서 사용하시길 바라겠습니다.

CefSharp의 문제점

이 문제는 오래전부터 이슈가 되었지만 현재까지도 완벽하게 해결되지 않은 문제입니다. Cefsharp 오픈소스 개발자들은 크로미엄 에서의 문제점을 지적하고 있습니다. (중국어 및 일본어등 도 동일합니다)

두번째는  HTML INPUT 태그에서 오른쪽 마우스 클릭시 팝업 메뉴가 엉뚱한 곳에 보여지는 버그입니다.

이중에서 첫번째 문제점은 아주 치명적이다 할 수 있습니다. 특히 아시아권의 언어 입력에 문제를 가지고 있습니다. 이것을 해결하려는 시도는 보이지만 근본적인 해결은 아직도 진행되지 않았습니다. 영어권의 개발자라면 문제가 되지 않을 텐데요.

그럼에도 Autodesk사가 CefSharp 모듈을 포함한 이유를 추측해 봤습니다. 그것은 전세계의 Revit 응용프로그램 개발자들이 서로 다른 CefSharp 버전을 사용했을 때 버전 충돌이 발생하여 다른 Add-on에 영향을 주는 문제를 해결하려는 것 같습니다. 그래서 Autodesk사는 아예 CefSharp 모듈을 포함하여 래빗 개발자들이 동일한 버전을 사용하도록 하려는 것이지요. 그런데 애석하게도 Autodesk사는 CefSharp v57.0.0 버전을 포함했습니다. 이 버전은 여전히 위의 문제점을 가지고 있는 버전입니다.

아래는 제가 CefSharp v57에서 문제점을 해결하는데 참조했던 기술 자료 입니다. 
- 다국어 입력 버그 : https://github.com/cefsharp/CefSharp/issues/1262 

래빗에서 Add-in을 개발하시고 Cefsharp을 사용하실 때 가급적 닷넷 Form에서 사용하시면 크게 문제가 없습니다. 다음 Autodesk Revit 버전에서 이 문제를 해결한 CefSharp모듈을 배포하기를 기대해 봅니다.

참고로 Autodesk Revit에서는 Cefsharp 모듈중에 CefSharp.Form.dll를 포함하지 않았으므로 동일한 버전의 dll을 사용하시면 좋을듯 합니다. (왜 누락했는지?? Autodesk사의 생각을 묻고 싶네요)

즐거운 하루되세요. ^^ 

참고 블로그
- https://github.com/cefsharp/CefSharp/issues/1262
- https://forums.autodesk.com/t5/revit-api-forum/cefsharp-integration-into-revit/td-p/6284095
- https://forums.autodesk.com/t5/revit-api-forum/revit-2019-1-add-in-and-cefsharp-library/td-p/8205740


덧글

댓글 입력 영역



구글번역

통계 위젯 (화이트)

2459
359
605841

국가접속Flag

free counters