2016-10-10 21 views
1

私は、.search()を実装しようとしており、オプションのパラメータを使用してattributeNamesを制限しようとしていますが、常に空の配列を返します。Autodesk Forge Viewer3dはattributeNamesを使用して検索します

https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/viewer3d/

誰かがこのフィルタが適用されている方法を明確にすることはできますか?返されたproperty.displayNameを見ることを期待していましたが、明らかにそうではありません。

例:

viewer.search('13-097', function (ids) { 
    console.log(ids); 

    var id = ids[0]; 
    viewer.getProperties(id, function (obj) { 
     console.log(obj.properties); 
    }); 
}, function (e) { }); 

viewer.search('13-097', function (ids) { 
    console.log(ids); 
}, function (e) { }, ['ADDRESS']); 

出力: 最初の検索:

[8095] 

第2の検索:

[] 

オブジェクト8095から、特性:

10:Object 
displayCategory:"DWF - Construction" 
displayName:"ADDRESS" 
displayValue:"13-097" 
hidden:false 
type:20 
units:null 

答えて

1

Autodesk.Viewing.Viewer3D.search()方法はテキストパラメータに大文字と小文字を区別しませんが、それはケースattributeNamesパラメータに敏感であり、あなたは属性の完全な名前を使用する必要がありますのでご注意ください。

あなたが相関する性質の のdisplayNameを使用している場合は、 viewer.getPropertiesは()が現在 のdisplayNameを返していることに注意してください。 displayNameが存在しない場合、属性名が返されます。以下は

私は(あなたのデータセットに調整)する前に試したサンプルです:

function search() { 
    viewer.clearSelection(); // remove previously highlighted searches 

    var searchStr = '13-097';  
    var searchPropList = new Array('ADDRESS'); 
    viewer.search(searchStr, searchCallback, searchErrorCallback, searchPropList); 
} 

function searchCallback(ids) { 
    alert(ids.length); 
} 

function searchErrorCallback(error) { 
    console.log(error); 
} 

EDIT(2016年10月24日)

Viewer 2.11 .getProperties法を用いることができる属性を返します.search attributesNamesパラメーターに追加します。

+0

これはまだ動作していないようです。または、私がこの方法で検索を使用できるかどうかはわかりません。最初の投稿に例を追加しました。 –

+0

@JOfford答えをもう一度チェックし、コードサンプルを追加してください。 –

+0

あなたのコードを使って私は同じことを得ました:あなたは "searchPropList"を除外すると1つを見つけました。 –

関連する問題