# 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:图像缩放比