# 管网拓扑分析
本文将从管道系统的定义、拓扑分析定义、功能解释等维度,介绍BIMFACE管网拓扑分析功能。
# 名词解释
# 拓扑分析
拓扑关系是指图形元素之间相互空间上的连接、邻接关系。该关系并不考虑具体位置。
拓扑分析则是去查找某个元素的临近元素,并分析元素之间的连接关系和流向关系(如果有的话)。
# 管道系统
管道系统则是对若干管道构件组成的一个集合的统称,构件与构件之间存在拓扑关系。典型的管道系统示意如下图所示。
管道系统会包含以下元素:
系统(system):如图所示,系统为在MEP、化工等应用场景中,由若干个构件/子系统组合而成,具备相互连接、控制关系的集合。不同格式的模型文件有所不同,如在rvt模型中,系统中即包含了管道构件,但在rvm模型中,系统是由若干子系统组合而成。
子系统(system):由若干个构件/子系统组合而成,具备相互连接、控制关系的集合。子系统中可包含子系统,也可包含管道构件。如图中高亮的构件组合即为子系统。
管道构件(element):系统的终端层级,是组成系统的基本元件。管道构件之间具备拓扑关系。
# 拓扑关系分析
一个典型的管道拓扑关系分析示意图可如下图所示:
管道系统中,通过模型中标识的流向数据,可以获取到构件与构件之间的拓扑关系。对于单个管道构件而言:
对构件A,A最终流向构件B,所以包含的拓扑属性为
{
"flowInto":"B"
}
对构件B,流向是从A流入,并最终流向构件C,所以包含的拓扑属性为
{
"flowFrom":"A",
"flowInto":"C"
}
对构件C,流向是从B流入,所以需要包含的拓扑属性为
{
"flowFrom":"B"
}
对于整体管道系统及业务应用而言,需要获取到的确定的流向信息为A→B→C。通过管道分析模块,可以通过管道构件A、B、C的属性,最终获取到所需要的业务需求,如
- 获取A的下游构件:B;
- 获取B的相邻构件:A、C;
- 获取C的上游构件:A、B;
- 获取系统流动路径:A→B→C;
- 获取离构件A最近的绿色构件:C;
- 获取构件A所在的系统信息;
# 字段属性
对于管网拓扑属性,不同格式的模型会有不同的表达形式。基于此,BIMFACE对管道拓扑属性的解析与组织关系如下:
# 系统
属性名 | 描述 | 类型 | 层级 | 备注 |
---|---|---|---|---|
systemId | 系统id | string | 系统 | 基础属性 |
systemType | 系统类型 | string | 系统 | 基础属性 |
name | 系统名称 | string | 系统 | 基础属性 |
parentId | 父系统id,若无父系统则parentId=systemId | string | 系统 | 基础属性 |
flowFrom | 流入该系统的构件id列表 | array | 系统 | 扩展属性,针对pdms |
flowInto | 流出该系统的构件id列表 | array | 系统 | 扩展属性,针对pdms |
terminals | 系统流入流出的终端构件 | array | 系统 | 拓展属性,针对rvt |
# 构件
属性名 | 描述 | 类型 | 层级 | 备注 |
---|---|---|---|---|
name | 管道构件名称 | string | 管道构件 | 基础属性 |
type | 管道构件类型 | string | 管道构件 | 基础属性 |
id | 管道构件id | string | 管道构件 | 基础属性 |
flowFrom | 流入该构件的构件id列表 | array | 管道构件 | 基础属性 |
flowInto | 流出该构件的构件id列表 | array | 管道构件 | 基础属性 |
in | 流入点 | array | 管道构件 | 基础属性 |
out | 流出点 | array | 管道构件 | 基础属性 |
uvDirection | 管道流向与贴图方向的标记,1为正向,2为反向,0为未识别 | number | 管道构件 | 基础属性,暂先支持PDMS |
# 功能介绍
基于BIM模型中的数据,BIMFACE提供了相应功能,用于分析管道系统的拓扑属性。
# 前提条件
- 有正常可用的BIMFACE账号,并拥有使用元素信息的权限;
- 准备的模型中包含有管道系统相关的数据(可参考元素信息模块介绍 (opens new window));
- 已完成pipeSystem的元素信息数据提取。
# 属性获取功能
- 获取模型的管道系统信息:获取到模型内部的所有系统及子系统的属性信息(不包括系统内包含的管道构件信息)
- 获取管道系统的构件id列表:获取某个系统内部的管道构件id信息;
- 获取管道构件的拓扑属性信息:依据构件id获取构件的拓扑属性;
# 拓扑计算功能
- 获取管道上游/下游构件:获取管道上游/下游的构件,若在系统层面已对流入/流出系统的构件做了解析,可跨系统;查询时支持筛选,如:查询下游的、类型为开关的构件;
- 获取管道构件之间的流动路径:给定两个构件作为起始构件和终止构件,可以计算得到两个构件之间的流动路径,默认可以查询3条路径;
- 获取管道构件的临近构件:获取管道构件的最近的构件,支持获取不同筛选条件下的最近的构件,如:获取某个构件临近的、type=开关的构件;
- 获取管道构件上游/下游流动路径中最近的指定类型构件:获取管道构件上游/下游流动路径中最近的指定类型构件,如:获取某个构件下游每条流动路径中离该构件最近的开关。
# 动画效果(针对PDMS格式)
- 设置管道水流动画材质:依据构件的流动方向,设置构件的管道的贴图,后续可通过水流效果进行流向动画;
- 取消设置管道水流动画材质:取消设置管道构件的贴图;
# 参考使用教程
开发指南可参考:管网分析开发指南 (opens new window)