forgr viewer使用的方法小总结

本文详细介绍了如何使用Forge Viewer进行模型交互,包括获取和改变构件的dbid、颜色,根据属性值查找dbid,调整相机视角,查看模型树结构,切换视图,隐藏和显示构件,获取隐藏构件的dbid以及设置模型加载时的背景颜色。此外,还展示了获取构件属性信息的方法,为开发者提供了实用的操作技巧。
摘要由CSDN通过智能技术生成

forgr viewer使用的方法小总结

forge viewer 获取bdid

点击获取当前模型构件的dbid

  viewer.addEventListener( Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (event) {
  	viewer.getSelection();//获取当前点击对象的dbid  
  })

forge viewer 改变构件颜色

点击事件改变构件颜色

  viewer.addEventListener( Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (event) {
  	var color = new THREE.Vector4( 0/255,102/255,25/255, 1 );//想要变成的颜色
    viewer.setThemingColor(changeDate, color);//changeDate为模型构件的dbid
  })

初始化改变构件颜色

  viewer.addEventListener( Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function (event) { //没有点击事件进行触发改变构件颜色的话,需要在这个事件中改变颜色,即模型加载完成事件 
  	var color = new THREE.Vector4( 0/255,102/255,25/255, 1 );//想要变成的颜色
    viewer.setThemingColor(changeDate, color);//changeDate为模型构件的dbid
  })

forge viewer 知道构件属性值查找dbid

适合知道构件属性值来查找对应dbid的情况。比如知道模型属性有固定名称和值 guid:1234,要查找对应的dbid

  viewer.search('1234',function(dbIds){ 
                                        console.log(dbids); //为查找到的dbid                     
                    },function(error){console.log('error')},['guid');

forge viewer 改变相机位置即模型视角

首先把视角调到自己想要的视角,然后用viewer.autocam.getCurrentView();获取当前自己想要的这个视角。以下的值在你想要的当前视角的结构里可以找到,直接进行替换就好。有值的替换值,其他的不用动。这只是基础的写法,可以根据自己想要的效果进行优化。

   //初始化模型视角
        const eye = viewer.navigation.getEyeVector();
        const newPosition = new THREE.Vector3(-508.8144114263626, -280.3273446852653, 266.7830755532873);
        const target = eye.add( newPosition );
        const up=new THREE.Vector3(0.3887726104595453,0.12839765943236225,0.9123430815262217);
        const worldUp=new THREE.Vector3(0,0,1);
        const center=new THREE.Vector3(-446.59100073377203,-254.7583215368543,236.66966636633654);
        const pivot=new THREE.Vector3(-464.94482906148437,-217.88815652611004,230.05122957846686);
        const defaultViewer ={
            position: newPosition.clone(),                   
            up: up.clone(),
            center: center.clone(),                          
            pivot: pivot.clone(),                           
            fov: 53.130101602940826,
            worldUp: worldUp.clone(),
            isOrtho: false
        };        
        // 将信息更新到相机上       
        viewer.autocam.goToView(defaultViewer);

forge viewer 知道模型树结构

树结构模型处理出来就有的,知道树结构可以获取一些模型信息

 //获取模型结构信息
    function buildModelTree( model ) {

  //builds model tree recursively
  function _buildModelTreeRec( node ) {

    it.enumNodeChildren( node.dbId, function(childId) {
        node.children = node.children || [];

        var childNode = {
          dbId: childId,
          name: it.getNodeName( childId )
        };

        node.children.push( childNode );

        _buildModelTreeRec( childNode );
      });

  }

  //get model instance tree and root component
  var it = model.getData().instanceTree;

  var rootId = it.getRootId();

  var rootNode = {
    dbId: rootId,
    name: it.getNodeName( rootId )
  };

  _buildModelTreeRec( rootNode );

  return rootNode;
  
}


    var root = buildModelTree( viewer.model );
    console.log(root);

forge viewer 切换模型视图如顶视图、俯视图、左视图以及右视图

 //在模型加载完成后改变模型视角
    viewer.addEventListener( Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function (event) {   
   setTimeout(function() {
         viewer.setViewCube('[front,top,left]'); },100)}//顺序为前后、上下、左右,根据自己需要尽心变换

forge viewer 隐藏模型构件以及显示模型构件

viewer.hide(614);//隐藏模型  里面为模型构件dbid  多个dbid可以放在数组里
viewer.show(614);//展示模型

forge viewer 获取隐藏的模型构件dbid

viewer.getHiddenNodes();

forge viewer 加载模型时改变最初的背景

viewer.setBackgroundColor( 0, 0, 60, 0, 157, 191);//改变加载时最初的背景颜色

forge viewer 获取构件属性信息

 //得到当前选择集的对象集合(DbId数组)
         var sel = viewer.getSelection();
        // //考察选择集中第一个对象的属性信息
        viewer.getProperties(sel[0],function(objProp){             
            if(objProp){
                     console.log(objProp);
                     //遍历每个属性
                     for(var index in objProp.properties){
                         var Prop = objProp.properties[index];
                       console.log('name: ' + Prop.displayName + '    value:    ' +Prop.displayValue);
                     }
                }
         });
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值