# BIMFACE 专业名词解释
# 构件(Component)
在BIMFACE中,所有的模型都是由有限数量的构件组成的,通过默认Toolbar的“基本信息”按钮可以查看该模型的总构件数量,如下图。
构件直观上说是用户可以选中的最小单元,如图2中的窗户。
除了几何信息之外,构件还具有构件id、包围盒信息、构件详情等信息。通过alt+鼠标左键点击构件即可在控制台获取构件id(elementId)及包围盒信息(boundingBox)。
通过Toolbar的“构件详情”按钮可以查看该构件的构件详情,如下图。后端也有对应接口,相关文档:获取构件属性 (opens new window)。
在Revit软件中,每个构件都会有一个唯一的ID(BIMFACE中称‘componentId’)。为了避免多个模型集成时出现重复的构件ID,BIMFACE统一处理了集成文件的构件ID。
构件ID根据集成方法,模型偏移信息的不同,具有不同的处理方式。以下是BIMFACE中出现的几种不同ID:
类型 | ID | 释义 |
---|---|---|
文件 | fileId | 文件ID,每个文件的唯一标识 |
integrateId | 集成模型ID,含有多个文件ID | |
modelId | 模型ID 单模型情况下 = fileId 集成模型情况下 = integrateId | |
hashId | 链接集成情况下,某个链接文件被重复引用时采用不同hashId进行标识 | |
构件 | componentId | 构件ID,模型中每个构件的唯一标识 |
fileId.componentId | 普通集成模型中的构件Id 链接集成模型中的部分构件Id | |
hashId.componentId | 链接集成模型中,重复引用链接文件中的构件Id |
# 筛选条件(Conditions)
有时候,需要批量地操作构件,例如:
- 根据构件类型在选中集合中继续添加构件-addSelectedComponentsByObjectData(conditions)
- 根据筛选条件隐藏构件-hideComponentsByObjectData(conditions)
- 根据筛选条件隔离构件,其他全部隐藏或半透明-isolateComponentsByObjectData(conditions, state)
- ...
筛选条件支持的所有类型即图3中的基本类型,包括:
- specialty
- floor
- categoryId
- categoryName
- family
- familyId
- familyType
- familyTypeId
- systemType
- building
通过以上条件组合成conditions,即可批量处理符合条件的所有构件,如
viewer3D.addSelectedComponentsByObjectData([{familyType:"door"},{categoryId:"-200035"}])
# 包围盒(boundingBox)
包围盒是规则的立方体,是一个物体(一个模型、一个构件、一组构件)在视图中的最大边界。如下图。
一般来说,BoundingBox的数据结构是两个三维坐标[x, y, z],分别是包围盒左下角的坐标及右上角的坐标。
{
"min": {
"x": 20174.197245435877,
"y": 60867.47840650141,
"z": 2946.249999999989
},
"max": {
"x": 20824.197245435877,
"y": 61517.47840650142,
"z": 3046.249999999989
}
}
# 相机(Camera)
相机是三维场景的一个对象,相机捕捉视野中的模型内容,并展示在屏幕上。以下为相机示意图及名词释义。
- position:相机位置,即相机镜头所在空间坐标点,采用世界坐标系
- target:目标点位置,即相机捕捉场景目标点所在空间坐标点,采用世界坐标系
- up:相机上方朝向,表示相机姿态的空间向量,与主视线方向(即position-target向量)垂直 (默认为z-up)
- fov:视角范围,单位为角度,通常取值在60-90°之间
- aspect:视野角度的宽高比
- near:最近可视距离
- far:最远可视距离
- zoom:图像缩放比