怎样获取当前选择构件的属性并添加自定义事件

1、怎样获取当前选择的构件或者当前选择的构建集
clipboard.png

2、怎样获取选择构件的属性?
clipboard.png

3、怎样给构件添加属性?
clipboard.png

阅读 4.9k
2 个回答
  1. 获取当前选择的构件或者当前选择的构建集
// 直接获取
viewer.getSelection();

//或者监听选择集变更事件
var onSelectionChanged = function( event ) {
    console.log( event.dbIdArray );
};

viewer.addEventListener(
    Autodesk.Viewing.SELECTION_CHANGED_EVENT,
    onSelectionChanged
);

2、获取选择构件的属性

//直接获取属性
var onPropsFeteched = function( result ) {
    console.log( result.properties );
}

var onFetchingPropsFailed = function( error, message ) {
    console.error( error, message );
}

viewer.getProperties(
    dbId,
    onPropsFeteched,
    onFetchingPropsFailed
);

// 从给予的 dbId 里获取所有拥有特定属性的构件
// https://forge.autodesk.com/blog/getbulkproperties-method
viewer.model.getBulkProperties( dbIds, ['属性名称'],
   function( elements ) {
     for(var i=0; i<elements.length; i++){
        console.log( elements[i].properties[0] );
     }
   });

// 通过查找功能
// https://segmentfault.com/a/1190000010977818
viewer.search( 
    "属性值",
    function( dbIds ) {
        console.log( dbIds );
    },
    ["属性名称"]
);

3、添加构件属性
你的标题似乎跟内文不符,我先回答标题的问题,Forge 转换的模型跟属性是不可修改的,所以无法添加;或者通过自订属性窗显示自己的属性 https://segmentfault.com/a/11...

至于内文的添加图标部份,可以参考这些样例:

P.S. 建议可以到查找样例 https://github.com/Autodesk-F...

宣传栏