ARX119의 BIM/CAD 연구소

arx119.egloos.com

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



[정보] 래빗에서 Cefsharp 컨트롤 사용시 주의사항 Express Family Viewbar

안녕하세요.

이전 블로그에서 Cefsharp에 대한 소개를 해드렸던 기억이 있습니다. Cefsharp은 C#에서 크롬 브라우져 기능을 사용할 수 있도록 지원하는 오픈 소스입니다. 최근 Revit에서 이 컨트롤을 사용하여 웹 서비스 화면을 지원하는 기능이 많이 개발되고 있습니다. 또한 최근 AutoCAD에서도 설치시 Cefsharp컨트롤을 배포하고 다양한 웹서비스에 사용하는 추세입니다. 아마도 Autodesk사에서 각 제품의 프론트엔드 컨트롤을 CefSharp으로 가져가는것 같다는 느낌입니다. 

제가 CefSharp을 사용했을때 느낀점은 이 컨트롤은 HTML5의 표준 기술을 완벽하게 지원하고 있어서 최신 웹 기술을 쉽게 적용할 수 있다는 것 입니다.  또한 사용하기도 매우 쉽다는 점도 있습니다.

이 컨트롤을 사용해서 Revit의 View창을 관리하는 기능(Express Family Viewbar)을 만들었는데, 어떤 이유인지 몰라도 뷰 창이 바뀔때 정확이 말하면 뷰창이 바뀌면서 래빗의 프로젝트가 바뀔때 간혈적으로 Freeze 현상이 발견되었습니다.

구글링을 했을때 관련 커뮤니티도 찾을 수 있는데요, CefSharp freezes in Revit


<Ver 1.0.1>

그래서 프로젝트가 변경될때 재구성하는 방식으로 수정해서 Autodesk App Store에 v1.0.1을 등록했습니다. 하지만 깜박임이 너무 눈에 거슬려서 이번 업그레드할때 문제점을 해결해 보려고 했지만 근본적으로 해결하는데는 실패를 했습니다. 

<Ver 1.0.2>

많은 시간을 소비해서 억울한 맘으로 블로그에 글을 올려 하소연(?)해 보려고 합니다.

여러 방법으로 Cefsharp <--> Revit간의 호출 방식을 바꿔가면서 테스트 해봤습니다.

1. Revit에서 Task 방식의 비동기 호출  ---> 실패
2. Dispatcher 를 통한 Xaml 화면의 재구성 ---> 실패
3. IExternalEventHandler 을 사용한 호출 ---> 실패
4. MS의 WebBrowser을 사용한 호출 ---> 실패 (WebBrowser 사용시 두번째 Doc 오픈시 치명적 오류 발생)

그리고 마지막으로 테스트해보고 "아~~ 이것은 내가 해결할 수 없는 문제구나~~" 를 느끼게 되었습니다.
그것은 Revit의 DockablePane에 CefSharp 컨트롤을 사용하고 있을때 물론 아무일도 하지 않고 Html만 표시하는데도, 
프로젝트간의 뷰 창을 이동시키게 되면 어느순간 CefSharp 컨트롤이 Freeze 되게 됩니다. (맨붕~~)

<뷰창 변경시 Freeze 상태>

만약 Revit에서 DockablePane을 이용해서 서비스 기능을 개발하시려는 분이 계시다면 아래 사항을 유의해 주세요
- HTML의 Input테그에서 한글입력에 문제가 있습니다.
- 창간의 뷰 이동시 CefSharp 컨트롤이 Freeze 됩니다.

혹시라도 해결하신 분이 계시면 소중한 정보 공유를 부탁드립니다.

그럼, 즐거운 주말되세요~~~~








덧글

댓글 입력 영역



구글번역

통계 위젯 (화이트)

3552
266
646129

국가접속Flag

free counters