常见问题 > 详情

如何实现二维图纸和三维模型的构件联动?

1、点击二维图纸的构件能定位三维模型对应的构件并高亮显示

2、点击三维模型的构件能定位二维图纸对应的构件并高亮显示

是实现二三维联动的关键方法

第一步:正常加载二维图纸、三维模型

第二步:点击二维图纸的构件ID能转换出对应的三维模型ID,传入到三维模型里进行定位和高亮

第三步:点击三维模型的构件ID能转换出对应的二维图纸ID,传入到二维图纸里进行定位和高亮

viewerDrawing.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.ComponentsSelectionChanged,function(el){
     if(el.length > 0){
          //二维图纸的构件ID能转换出对应的三维模型ID
         var rid = viewerDrawing.toModelId(el[0]);
         //三维模型构件取消隔离                            
         viewer3D.clearIsolation();
         //隔离构件时,其他构件可设置成半透明    
         viewer3D.isolateComponentsById([rid], Glodon.Bimface.Viewer.IsolateOption.MakeOthersTranslucent);
         //选中构件,并缩放到改构件     
         viewer3D.setSelectedComponentsById([rid]);
         viewer3D.zoomToSelectedComponents();
}
})
Viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked,function(el){
    //点击三维模型的构件ID能转换出对应的二维图纸ID
    var did = viewerDrawing.toDrawingId(el.objectId);
    if(did){
        //缩放到二维图纸构件
        viewerDrawing.zoomToObject(did);
}
})

image