# 管网拓扑分析

本文将从管道系统的定义、拓扑分析定义、功能解释等维度,介绍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提供了相应功能,用于分析管道系统的拓扑属性。

# 前提条件
  1. 有正常可用的BIMFACE账号,并拥有使用元素信息的权限;
  2. 准备的模型中包含有管道系统相关的数据(可参考元素信息模块介绍 (opens new window));
  3. 已完成pipeSystem的元素信息数据提取。
# 属性获取功能
  • 获取模型的管道系统信息:获取到模型内部的所有系统及子系统的属性信息(不包括系统内包含的管道构件信息)
  • 获取管道系统的构件id列表:获取某个系统内部的管道构件id信息;
  • 获取管道构件的拓扑属性信息:依据构件id获取构件的拓扑属性;
# 拓扑计算功能
  • 获取管道上游/下游构件:获取管道上游/下游的构件,若在系统层面已对流入/流出系统的构件做了解析,可跨系统;查询时支持筛选,如:查询下游的、类型为开关的构件;
  • 获取管道构件之间的流动路径:给定两个构件作为起始构件和终止构件,可以计算得到两个构件之间的流动路径,默认可以查询3条路径;
  • 获取管道构件的临近构件:获取管道构件的最近的构件,支持获取不同筛选条件下的最近的构件,如:获取某个构件临近的、type=开关的构件;
  • 获取管道构件上游/下游流动路径中最近的指定类型构件:获取管道构件上游/下游流动路径中最近的指定类型构件,如:获取某个构件下游每条流动路径中离该构件最近的开关。
# 动画效果(针对PDMS格式)
  • 设置管道水流动画材质:依据构件的流动方向,设置构件的管道的贴图,后续可通过水流效果进行流向动画;
  • 取消设置管道水流动画材质:取消设置管道构件的贴图;

# 参考使用教程

开发指南可参考:管网分析开发指南 (opens new window)