鍍金池/ 問答/云計算  網(wǎng)絡(luò)安全/ 怎樣獲取當前選擇構(gòu)件的屬性并添加自定義事件

怎樣獲取當前選擇構(gòu)件的屬性并添加自定義事件

1、怎樣獲取當前選擇的構(gòu)件或者當前選擇的構(gòu)建集
clipboard.png

2、怎樣獲取選擇構(gòu)件的屬性?
clipboard.png

3、怎樣給構(gòu)件添加屬性?
clipboard.png

回答
編輯回答
情殺
  1. 獲取當前選擇的構(gòu)件或者當前選擇的構(gòu)建集
// 直接獲取
viewer.getSelection();

//或者監(jiān)聽選擇集變更事件
var onSelectionChanged = function( event ) {
    console.log( event.dbIdArray );
};

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

2、獲取選擇構(gòu)件的屬性

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

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

viewer.getProperties(
    dbId,
    onPropsFeteched,
    onFetchingPropsFailed
);

// 從給予的 dbId 里獲取所有擁有特定屬性的構(gòu)件
// 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、添加構(gòu)件屬性
你的標題似乎跟內(nèi)文不符,我先回答標題的問題,F(xiàn)orge 轉(zhuǎn)換的模型跟屬性是不可修改的,所以無法添加;或者通過自訂屬性窗顯示自己的屬性 https://segmentfault.com/a/11...

至于內(nèi)文的添加圖標部份,可以參考這些樣例:

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

2018年5月10日 23:26