NodeIndex
节点索引信息类,用于描述结点层级结构的索引信息,存储节点的子节点信息、数据库ID、Revit ID和名称。主要用于建立3D对象的层级关系和索引映射。
类定义
javascript
class NodeIndex属性
children
子节点信息数组,存储节点的子节点信息。
类型: {Array<Object>}
默认值: []
子节点对象结构:
groupType{string} - 组类型('instancedGroup'、'mergedGroup'、'singleGroup')renderId{number} - 渲染IDindex{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、索引查询
- 提供高效的节点访问机制
相关链接
- Model - 模型基类
- InstancedObjects - 实例化对象
- MergedObjects - 合并对象
- SingleObjects - 单对象