这里写自定义目录标题
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);
}
}
});