高级检索 ExpertSearchManager
高级检索管理器是用于控制云渲染高级检索的工具,通过获取该管理器,用户可以方便地进行高级检索控制和管理。 该工具的主要功能包括:
- 根据条件检索节点,再通过回调获取结果
- 获取节点下的所有属性组
我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。
expertSearchManager
用户可以调用云渲染实例 cloud
上的 getExpertSearchManager()
方法来获取 ExpertSearchManager
相机管理器。
ts
const expertSearchManager = await cloud.getExpertSearchManager()
const expertSearchManager = await cloud.getExpertSearchManager()
用户调用 cloud.getExpertSearchManager()
后,expertSearchManager
属性会被自动挂载到当前 cloud
实例上。
ts
await cloud.getExpertSearchManager()
const expertSearchManager = cloud.expertSearchManager
await cloud.getExpertSearchManager()
const expertSearchManager = cloud.expertSearchManager
检索节点 | advancedRetrieval
- 说明:根据条件检索节点,通过回调获取结果
我们可以调用 ExpertSearchManager
上面的 advancedRetrieval
方法,通过传入初始根节点以及检索条件来检索出符合条件的节点。
检索节点
根据条件检索节点功能是指通过设定特定规则来查找符合条件的模型节点,例如根据名称、属性、位置、大小、材质等条件来检索节点。
- 参数说明
Name | Type | Description |
---|---|---|
rootNode | Node | VirtualNode | 检索初始根节点 |
rules | expertSearch [] | 检索条件 |
ignoreCase | null | boolean | 是否忽略大小写 |
调用示例:
ts
const rules: expertSearch[] = [
{
type: 'DirectoryTree',
name: 'nodeName',
condition: 'like',
value: '设备%',
connector: 'where',
},
{
type: 'DirectoryTree',
name: 'nodeName',
condition: '=',
value: '设备',
connector: 'where',
},
{
type: 'Guid',
name: 'nodeGuid',
condition: '=',
value: '5acd17629aef894b4ab37959f19f5404',
connector: 'orWhere',
},
{
type: 'rvmprop',
name: 'ColorIndex',
condition: '=',
value: '1',
connector: 'orWhere',
},
]
const aaaa = await cloud.getSceneManager()
const noderoot = await aaaa.getRootNode3D()
const expert = await cloud.getExpertSearchManager()
let a
if (noderoot)
a = await expert.advancedRetrieval(noderoot, rules, false)
console.log(a)
const rules: expertSearch[] = [
{
type: 'DirectoryTree',
name: 'nodeName',
condition: 'like',
value: '设备%',
connector: 'where',
},
{
type: 'DirectoryTree',
name: 'nodeName',
condition: '=',
value: '设备',
connector: 'where',
},
{
type: 'Guid',
name: 'nodeGuid',
condition: '=',
value: '5acd17629aef894b4ab37959f19f5404',
connector: 'orWhere',
},
{
type: 'rvmprop',
name: 'ColorIndex',
condition: '=',
value: '1',
connector: 'orWhere',
},
]
const aaaa = await cloud.getSceneManager()
const noderoot = await aaaa.getRootNode3D()
const expert = await cloud.getExpertSearchManager()
let a
if (noderoot)
a = await expert.advancedRetrieval(noderoot, rules, false)
console.log(a)
检索完成回调
- 说明:根据条件检索节点完成后的回调函数
我们可以设置 ExpertSearchManager
上面的 setSearchFinished
回调函数来获取检索结果。
- 参数说明
Name | Type | Description |
---|---|---|
fn | (virtualNode : VirtualNode ) => void | 回调函数,virtualNode为虚节点 |
调用示例:
ts
function SearchFinished(virtualNode: VirtualNode) {
(window as any).root = re
console.log(re)
}
cloud.expertSearchManager.setSearchFinished(SearchFinished)
function SearchFinished(virtualNode: VirtualNode) {
(window as any).root = re
console.log(re)
}
cloud.expertSearchManager.setSearchFinished(SearchFinished)
获取节点属性组 | getAllPropertyGroupsName
- 说明:获取节点下的所有属性组
我们可以调用 ExpertSearchManager
上面的 getAllPropertyGroupsName
方法,获取到加载模型的所有属性组。
调用示例:
ts
const expert = await cloud.getExpertSearchManager()
const groups = await expert.getAllPropertyGroupsName()
const expert = await cloud.getExpertSearchManager()
const groups = await expert.getAllPropertyGroupsName()
Returns
Promise
<String
[]>
返回加载模型的所有属性组