私はviewer.getObjectTree = function(onSuccessCallback, onErrorCallback)
を使用してモデルオブジェクトツリーを取得し、ルートノードからすべてのリーフノードまでトラバースします。コードは次のとおりです。2D図面のモデルオブジェクトツリーを取得する方法
viewer.getObjectTree(function (objTree) {
objTree.enumNodeChildren(
objTree.getRootId(),
function (dbId) {
// Work with dbId
},
true
);
};
ただし、3Dモデルでのみ動作します。 2Dモデルはコールバックイベントにジャンプしません。 2Dレイアウト/図面のすべてのオブジェクトIDを取得するにはどうすればよいですか?
サンプルのRevitファイルで確認したところ、ビューア2.11で2Dモデルを使用してもうまくいきました。 問題の原因は、通常、取得しようとするとインスタンスツリーが初期化されないためです。したがって、インスタンスツリーが既に設定されていることを確認する必要があります。それが同じ問題の場合に備えて、この投稿をチェックしましたか?http://stackoverflow.com/questions/38904993/how-to-retrieve-forge-viewer-objecttree/38909765#38909765 –
'viewer.getObjectTree'を' Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT'の中に入れましたが、2D図面では機能しませんでした。3Dモデルのみでした。あなたは完全なコードを共有してください。 –
Autodesk.Viewing.GEOMETRY_LOADED_EVENT内でこれを実行しようとしましたか?私は実際にこのイベントの中でそれを作った。 –