Skip to content

NodeIndex

节点索引信息类,用于描述结点层级结构的索引信息,存储节点的子节点信息、数据库ID、Revit ID和名称。主要用于建立3D对象的层级关系和索引映射。

类定义

javascript
class NodeIndex

属性

children

子节点信息数组,存储节点的子节点信息。

类型: {Array<Object>}
默认值: []

子节点对象结构:

  • groupType {string} - 组类型('instancedGroup'、'mergedGroup'、'singleGroup')
  • renderId {number} - 渲染ID
  • index {number} - 在组中的索引

databaseId

数据库ID,用于与外部数据库系统的关联。

类型: {string|undefined}
默认值: undefined

revitId

Revit ID,用于与Revit软件的关联。

类型: {string|undefined}
默认值: undefined

name

节点名称,用于标识和显示。

类型: {string|undefined}
默认值: undefined

方法

add(groupType, renderId, index)

添加子节点信息,向节点索引中添加子节点信息,包括组类型、渲染ID和索引。

参数:

  • groupType {string} - 组类型(instancedGroup、mergedGroup、singleGroup)
  • renderId {number} - 渲染ID,在组中的位置
  • index {number} - 索引,在对象中的位置

示例:

javascript
// 添加子节点信息
nodeIndex.add('instancedGroup', 0, 1);
nodeIndex.add('mergedGroup', 2, 0);

copy(source)

复制节点索引信息,从源对象复制所有属性到当前节点索引对象,包括子节点、数据库ID、Revit ID和名称。

参数:

  • source {Object} - 源对象,包含Database_ID、Revit_ID、name等属性

返回值:

  • {NodeIndex} 返回当前实例,支持链式调用

示例:

javascript
// 复制节点信息
const userData = {
    Database_ID: 123,
    Revit_ID: 'abc-123',
    name: 'Building A',
    children: []
};
const nodeIndex = new NodeIndex().copy(userData);

toJSON()

转换为JSON格式,将节点索引信息转换为JSON格式,包括子节点、数据库ID、Revit ID和名称。

返回值:

  • {Object} JSON格式的节点索引信息

示例:

javascript
// 转换为JSON
const json = nodeIndex.toJSON();
console.log(json);
// 输出: { children: [...], databaseId: 123, revitId: 'abc-123', name: 'Building A' }

使用场景

层级结构管理

  • 建立3D对象的父子关系
  • 管理复杂的场景层次结构
  • 支持多级嵌套的节点关系

数据映射

  • 与外部数据库系统关联
  • 与Revit软件集成
  • 维护对象的外部标识符

索引查询

  • 快速定位对象在组中的位置
  • 支持按组类型、渲染ID、索引查询
  • 提供高效的节点访问机制

相关链接

文档内容为北京逆维悦动科技有限公司版权所有,禁止未授权转载