APP下载

建构筑物空间标识位置编码技术研究

2021-07-29曹吉昌濮国梁颜寒祺

土木建筑工程信息技术 2021年3期
关键词:构筑物楼层坐标系

曹吉昌 濮国梁 颜寒祺 黄 港

(1.住房和城乡建设部科技与产业化发展中心,北京 100835; 2.北京大学,北京 100871)

引言

建筑物及其构件的信息种类繁多,从建筑设计到后期维护阶段,信息的增删和变更时常发生,这为建筑物及其构件的信息化管理带来了挑战。

在建筑物的设计阶段,建筑物的数字化信息模型为建筑物内部构件赋予唯一的标识编码,以便在建筑物全生命周期中,基于该标识码交换和管理建筑业中多源数据。近年来,国家相关基础建设部门推出一系列用于建构筑物构件的分类信息编码,但不够关注部件空间位置属性。若以空间位置唯一标识作为整合线索,可实现建筑物部件基于空间位置的关联。

由于建筑物空间位置标识信息在档案管理、智能建造和后期巡检中很重要[4],本文提出一套建构筑物位置编码应对相关行业的应用需求。这套建构筑物的空间位置划分和编码系统继承北斗全球位置框架,满足以下三个主要需求:

(1)唯一性需求。每个建构筑物具有全球唯一标识,能够与对应的实体建立一一对应的关系。若不满足唯一性,不同部门对同一建构筑物指定不同的标识编码,在数据整合交换中出现偏差和误解,不能通过该标识码融合该对象多源属性。

(2)一致性需求。建筑物外部环境与建筑内部空间划分共用一套划分框架和编码方法,便于划分框架的拓展和空间运算分析; 不同建构筑物的空间标识在一套空间标识命名框架下,组织和管理所有建构筑物数据。

(3)高效性需求。建筑物中存在海量的构件信息,需要通过构件的标识进行数据关联和检索。而构件在建筑物中有预设的唯一空间位置,且实际应用中存在许多以空间位置为线索的数据共享和数据检索的场景。要实现这些场景中的应用,需要构件实体被赋予的空间标识编码能够支持高效准确的拓扑分析和距离计算等。

1 国内外研究和其局限性

1.1 国内外研究现状

(1)建筑物编码体系

2006年,国际标准化组织制定了ISO/IDS 框架,用于建立各国建筑业分类信息标准,定义各种建筑信息分类体系的基本概念,梳理它们的关系。美国建筑标准学会CSI和加拿大建筑标准学会CSC颁布了Omniclass分类系统,能呈现最直观简洁的编码体系,与BIM数据存储标准IFC对接,支持BIM技术的实现[13,17]。2018年,中华人民共和国住房和城乡建设部颁发适用于民用和通用建筑厂房的《建筑信息模型分类和编码标准GB/T51269-2017》[1]。

目前建筑行业中使用的构件编码主要考虑构件的类别,几何特征,生产信息等,如图1[2]。同一批从工厂中生产出的某一特定构件/零件,会被赋予完全相同的生产编码,分散在不同地区和空间位置的构件共用一个生产编码,使目前的构件编码不能够保证全局唯一性。

图1 中建(天津)工业化建筑工程有限公司编码

(2)构件查询方法

建筑物构件的复杂性和语义的多样性,使用户难以通过关键字查询检索到预期结果,查准率低。IFC的数据模型能映射到关系数据库中,转化成XML或者是RDF表达。研究者致力于提出各种QL框架,如SPARQL[7], XQuery[8],QL4BIM[9]。北京建筑大学卢锦[18]指出,当前研究对BIM模型中建筑信息的检索起到推动作用。简化构件为质点,在计算时排序构件与用户参考点的通路,用Dijkstra算法得到最短距离,由空间关系和距离得到有序的构件集合。

1.2 局限性分析

在建构筑物空间标识与应用中,现有的研究仍存在四个问题[19]:建筑物内部的构件空间位置表示是建立在局部参考坐标下; 构件的位置依赖于多个参考系,不满足空间标识唯一性和一致性; 现有的建构筑物编码属分类信息码,只考虑简单的建筑对象信息,不能直接含有建筑物中相对位置的关系; 现有构件的信息检索方法不能直接再将空间属性置于索引列,并在索引列的内容上进行计算和筛选操作,效率较低,不满足空间标识的高效性。

2 北斗三维网格位置编码概述

北斗网格位置编码规定了北斗网格位置码的网格选择和编码规则[6],应用广泛。其符合以下基本编码原则:1)唯一性; 2)嵌套性; 3)兼容性; 4)计算性; 5)实用性。

2.1 网格划分

北斗三维网格位置码由地球表面二维网格剖分+高度域网格剖分组成。

地球表面二维网格剖分中,网格划分原点在赤道面与本初子午面的交点处,二维网格划分为十级,方法如下。

(1)第一级网格。根据GB/T 13989-2012中1: 100万图幅进行划分,单元大小是6°×4°;

(2)第二级网格。将第一级6°×4°网格,按照经纬度等分,分成12×8个第二级网格,对应于30′×30′网格,约为地球赤道处55.66km×55.66km网格;

(3)第三级网格。将第二级网格,按照经纬度等分,分成2×3个第三级网格,对应于1: 5万地图图幅15′×10′网格,约为地球赤道处27.83km×18.55km网格;

余下层以此类推[20]。

高度域剖分中,任意剖分级数m,高度域剖分成2m层,地下为2m-1层,地上为2m-1层。同级网格相同层高度相等,高度与该层对应等高面赤道处相应级剖分形成的网格纬线方向长度匹配。同级网格高度与对应等高面赤道处网格纬线长度如图2。北斗三维网格位置码高度域划分,将地球表面4°、30′、15′、……、1/2048″十个基本网格作为北斗三维网格位置码定义大地高的中的θ,形成高度域网格划分:

图2 高度域方向不等距离划分方法(赤道面)

(1)初始网格。地上、地下划分成两个部分;

(2)第一级网格。采用和赤道4o长度一致的划分,每个划分约445.28km;

(3)第二级网格。采用和赤道30′长度一致的划分,每个划分约55.66km; 余下各级照此类推[16]。

2.2 编码规则

北斗三维网格位置码由二维编码+高度维编码交叉组成[21],共32位码元组成,北斗三维网格位置码由12位码元组成,其结构与码元取值见图3,第三维度编码如下。

图3 北斗三维网格位置码的形式

3 基于北斗网格位置编码的建构筑物空间位置编码

定位建构筑物,需定位整栋建筑物和建筑物内部的构件实体[10]。建筑物外部所处坐标系是刚性的北斗网格位置体系,其平面坐标两个轴是径向和纬向,建筑物以标识中心为定位对象,赋予定位编码,作为整体被组织和管理。建筑物自身既是全球网格体系子空间,又是建筑物内部信息父空间。建筑物内部,为保证内外划分的可拓展性,外部的定位标识点为划分的起点。确定好内部划分起始点之后,平面两轴的方向也与外部的全球位置坐标系两个轴保持一致,分别是正北和正东方向。高度维则按照建筑物自身的楼层高度进行划分。每一楼层的划分也是直接遵循建筑物中已有的区域划分,并且这些子空间在每一层中都会被赋予一个定位标识码,每一层楼的子空间采用的均匀大小的矩形表示,构件实体最终就落在某个子空间中,在该三维空间中进行三个轴向方向的定位。

3.1 网格划分和编码方案

本小节讨论各层次(建筑物—楼层—子空间)的标识点、划分网格层级以及划分后赋码的规则。

(1)对整幢建筑物的标识

首先在全球范围定位建筑物,进行唯一空间标识。建筑物的标识要选择合适的标识点,用建筑物地面投影范围中心作为标识点,而不是实际占地范围。投影多边形选择层级合适的北斗网格进行划分,选最靠近西南方向的内部角点作为建筑物的标识点O。现实中建筑物的距离一般都超过8m,选择了北斗网格码第7层级(1/4′)的网格进行划分[20]。

图4 整幢建筑物的定位过程

获取标识点以后,于全球位置框架标识该点。某行政区域组织会管理多栋建筑物的数据,选建筑物所在行政中心为参考点定位。确定行政区划中心和建筑物标识点,建立二维平面坐标系,确定整幢建筑物在该坐标系下的位置,选择合适的层级L来确定跨越的网格数目M, N。

为避免两栋建筑物的标识定位点落在同一个网格,失去唯一性,选择大小合适的网格使其边长不大于两者的距离。第7层级的网格比较合适[20],但在距离过远时,编码的长度会冗长。若引入更小层级,虽能用更少跨度码,但需加上该层级的标识。为平衡跨度网格数目和层级标识引入的标识位,除了第7层级以外,再选择一个层级共同来标识跨度。最大两位数的第七层级网格可覆盖长度是24.75’<1′所以选择第4层级和第7层级共同标识跨度。建筑物相对行政中心的偏移量为负, M、N要含有负号来区分相对方向。

(2)建筑物楼层高度维划分与编码

考虑建筑物的高度维划分,划分的起始平面规定在建筑物中的地面,往上为高度轴的正方向,反之为负方向,建筑物内部空间一般都分布在不同的楼层中,但也存在如某两层楼层之间有转角的楼梯,规定将这些设施划分到它们下方的楼层空间内。

目前世界上最高建筑物—迪拜塔,总高度为828米,地上162层,连同地下共169层。地下层数一般不超过162层。楼层码总共由五位组成:第一位是表示地上U或地下D,后三位为楼层数。如U021表示地上21层,D002表示地下二层,以此类推。

建构筑物编码扩展到楼层高度为:C0MN-F。

(3)楼层平面划分及子空间定位码

建筑物中每个楼层中,很多构件需进一步划分其空间得到更为精细的空间,确定构件的准确位置。为满足外部划分能够扩展到内部的原则,采用的原点O是在对整幢建筑物定位时选择的标识点,内部坐标系的x、y轴方向分别选择了正东、正北方向,z轴方向则采用了建筑物楼层生长的方向,每个楼层高度上则是一个独立的楼层坐标系。我们对整个楼层进一步划分得到子空间,在楼层平面坐标系中对子空间进行定位和编码。若选择该空间水平面多边形的一个顶点,可能会出现多个空间共用一个标识点的情况。

确定子空间的标识点,首先选择层级,选择用边长1m的网格进行划分区分子空间。每个空间都被多个网格划分,网格的角点在空间中。我们选择最靠近楼层坐标系原点的角点作为子空间的标识点,如图5,得到B,C,F的子空间的定位点分别是B0,C0,F0。

图5 子空间标识点确定

得到各子空间标识点后,其在楼层平面坐标系中的正北、正东方向偏移分别是M′、N′。建构筑物编码扩展到子空间层次的定位码为:C0MN-F-M′N′。

(4)子空间内划分与编码

楼层平面坐标系中每个子空间内部都构造了自己的独立坐标系,依靠楼层平面坐标系对它们进行关联,以各自的子空间标识点距离楼层标识点的偏移量作为标识编码。在子空间内部对构件三个维度上进行划分,从而准确定位。

在三维子空间中进一步、更精确的位置定位楼层中某构件。某些构件彼此距离很近,采用尺度更小的网格作为划分基本单元。在子空间内划分采用9级网格比较合适[20]。子空间内构件坐标系定位编码:划分原点是在楼层子空间中子空间的标识点,以正东、正北方向为x, y轴,建筑生长方向为z轴。子空间内,对构件进行三维空间的定位编码,得到三个轴方向的偏移量PQR。建构筑物编码扩展到子空间内部的定位码为:C0MN-F-M′N′-PQR

在该编码体系中,C0MN是整幢建筑物全球环境定位的建筑物幢编码; F是进入建筑物的高度维定位的楼层高度码;M′N′是进入楼层的子空间在二维平面中坐标的楼层子空间定位码;PQR是在子空间中的构件定位码。

4 建构筑物空间标识位置编码算法

4.1 建构筑物设计阶段中编码生成算法

在建筑物的设计阶段对构件实体赋予了该编码,在后续阶段能够基于该唯一性编码进行多源数据的融合和信息的回溯[12]。

BIM顶点坐标中,提取x, y, z坐标最小与最大值,得构件最小值坐标Smin(Xmin,Ymin,Zmin)和最大值坐标Smax(Xmax,Ymax,Zmax),得到模型范围,计算近似的空间中心点S0(X0,Y0,Z0):X0=(Xmax-Xmin)/2;Y0=(Ymax-Ymin)/2;Z0=(Zmax-Zmin)/2

若经纬度表达,直接按照全球浮点数坐标到编码转化[21],若相对参考系,可按照以下几步:确定构件在BIM中局部坐标系,确定局部坐标系原点O,根据相互正交的三个轴其中两个确定坐标系的方向; 确定转化的目标坐标系,按照BIM文件中数据,若对构件提供其所在参考空间的信息,则目标坐标系为城市建构筑物的子空间坐标系, 若只提供其所在楼层参考空间坐标系,则目标坐标系为城市建构筑物多楼层坐标系,选定目标坐标系后,确定目标坐标系的原点O′,以正北、正东方向确定X′、Y′轴,得到Z′轴; 利用坐标转化原理,将构件的中心点在构件局部坐标系中的坐标S0(X0、Y0、Z0)转化到目标坐标系中。首先计算O′在坐标系O中的三个轴的偏移量(?x,?y,?z),再分别计算X′轴与X轴、Y轴、Z轴的夹角余弦值(cosα1,cosβ1,cosγ1),Z′轴与X,Y,Z 轴夹角的余弦值(cosα2,cosβ2,cosγ2),实体的标识点在建构筑物坐标系下的坐标可以通过等式T·S′=S得到,旋转矩阵T可以表示为:

得到子空间的标识点和建筑物(楼层)的经纬度后,根据浮点数转编码的方法生成空间标识[20],该编码成为了构件实体唯一的空间位置标识。

4.2 基于编码模型的多源建构筑物数据整合算法

建筑物行业中许多场景,用空间位置关联多源数据,例如:档案关联管理、自动巡检、智能建造[19]。分析位置标识码在多源数据整合中需求和可行性; 然后设计以编码为RowKey的剖分索引大表,在此基础上实现对建筑行业中多源数据的高效整合。

为实现建构筑物多源信息组织和管理,除统一标识全球的建构筑物信息,还需建立以该编码为主键的索引大表关联不同来源数据。选择MongoDB[11]作为后台数据库设计,因其设计灵活、扩展性高; Nosql数据库能处理不同层次的实体属性种类相差大的问题; MongoDB按照键值对格式存储管理的,编码作为行键实现哈希表的O(1)查询效率,行键是建构筑物空间标识编码,属性包括构件实体所在建筑物和子空间的标识点经纬度信息以及楼层数。

为实现基于空间标识的多源数据融合,该实体关联的多源属性信息,如设计图纸,对应住户的户籍信息。索引大表也将这些信息的链接或文件地址关联到该空间标识编码,由此用户可通过构件实体的位置得到建构筑物编码,由于某个建筑物实体的编码都是全数据表唯一的,能根据该编码定位到数据库中某实体的属性字典,关联到与该空间位置相关的多源数据。

4.3 基于编码模型的数据检索算法

以点查询、范围查询和基于建筑物空间约束的距离查询为例,进行数据检索方法的说明。

(1)点查询

点查询是指查询指定点邻近区域的所有对象[11]。本研究场景下具体需求为:火灾发生时,消防队员所在位置附近的消防栓。这里的附近范围仅限于同一楼层,如图6中要查询星号所在位置附近的物体,即是虚线圆圈的范围,这个范围是包括了三个子空间BCE的。

图6 某楼层中进行点的KNN查询

用编码计算星号附近范围,某楼层上的查询可能跨越多个子空间,选择楼层坐标系划分第八层级(赤道距离1m)。查询中心点坐标可以是经纬度坐标(x0,y0)。外包矩形西南和东北角点的经纬度分别是letlat, letlng, riglat, riglng。该楼层坐标系中外包矩形中的经纬度点(x,y)满足x≥(letlat-Xf)andy≥(letlng-Yf)andx≤(riglat-Xf)andy≤(riglng-Yf)。这里(x,y)含义是在该局部坐标系中离原点的距离,建构筑物编码后几位是在局部坐标系中偏移的网格数。楼层坐标系划分的网格尺度都是1/32,偏离的经纬度到网格数目到换算倍数是32×60×60。建构筑物编码的完整结构C0MN_UXXX_M′N′,楼层坐标系下偏移量就是固定的M′N′两位。M′N′带正负号,并且将这个换算倍率表示为L,编码的筛选条件为

M′≤L(riglat-Xf)andM′≥L(leflat-Xf)

N′≤L(riglng-Yf)andN′≥L(leflng-Yf)

(2)范围查询

范围查询指查询框定范围内所有的对象[11]。本研究场景下具体需求为:查询某个房间内所有的横梁,如图7的子空间C; 或圈定一个任意闭合图形要求查询到其中包含的所有特定构件实体,如下图跨越三个子空间ABD的蓝色不规则阴影。

图7 某楼层中的范围查询

基于外包矩形点查法,任意闭合图形作为查询范围。若查询范围是建筑物中已划分好的结构,输入该子空间内某个经纬度点P(x,y),要求返回该点所在子空间某构件。计算P在坐标系O(xf,yf)中的坐标,再除以度到跨度数码到换算倍率L,得到点P的偏移码数目M′,N′。点P所在子空间标识点C0应离P点较近,C0在楼层坐标系中的偏移Mc,Nc应该满足以下等式,且尽量小,即尽量趋近于一个定值:Mc2+Nc2=M′2+N′2+。存在子空间内任意一点到该空间标识点到距离其它子空间标识点更远的情况,本文取离得最近的三个编码值,然后到对应数据行的详细属性列中找到子空间轮廓的经纬度串,进行点是否在多边形中的判断,得到最终就可以用匹配算法得到所有子空间编码为Mc,Nc的特定构件实体数据行。

(3)有约束条件的距离查询

在建筑物内的查询必须考虑建筑物本身的构造特点,如由于门的阻隔,位于两个房间内构件A和B之间的距离,不是直线距离,且存在多条可通行路径。给定一个查询点和多个可能的目标点,有约束的距离查询就是需要返回该查询点到各个目标点的最短距离。

经纬度在两个方向的距离能按照公式转为平面距离,得到两个节点之间的平面距离。

5 实验

基于自主设计的建构筑物数据可视化和管理系统,本节从模型建立和应用开展编码生成实验、建筑物多源数据关联和查询等典型应用实验,验证编码模型正确性、高效性和可行性。

建筑业BIM软件种类多,数据格式不尽相同。本文实验选择Web端进行BIM模型的展示与功能实现,将Revit等BIM平台的三维模型几何空间数据解析,并通过WebGL显示在Web端,后台连接数据库用于管理和查询建构筑物相关的数据信息,通过Web端交互。

选择B/S网络应用框架验证,基于WebGL与HTML5语言,该框架层次和功能如图8。

图8 实验框架结构功能图

(1)模型数据解析与模型重建

程序解析BIM数据,得到建筑物、子空间的标识点等绝对位置坐标,奠定后续操作基础。Revit Architecture 建筑模型文件转化成JSON格式文件,WebGL解析JSON并在终端进行可视化。导出的建筑物模型是要符合OBJ格式,包括四个内容:材料纹理、几何特性、自定义元数据和object记录对象属性数据,通过标识符ID关联到一个实体上。得到解析后的各个构件属性,WebGL将模型数据可视化在Web端。图9展示了模型重建后子空间以层次的效果图和对应模块部分属性信息,其余层次的结果类似。

图9 模型重建后子空间

(2)建构筑物模型的编码生成试验

解析出的构件关联的子空间和建筑物轮廓信息,如图10是实验数据编码结果。

图10 编码结果

(3)多源数据整合

按照数据之间关联关系,将数据库中多张数据表关联便可以将多源数据整合到一起。关联之后,构件的属性信息中也含有相应的多源信息。构件数据表是以建构筑物编码为JSON字典中的键,而值则是由多个属性组成,实现基于键值对的快速查找。实验结果,如图11,进入子空间,任选一个实体都够弹出构件自身属性和所关联的子空间的多源属性。

图11 多源信息整合显示结果

(4)基于编码模型的数据查询检索实验

(a)点查询:以子空间的点查询为例,用户选查询点,默认查询半径为10m,查询结果如图12。将编码约束在外包矩形内,对编码键值进行筛选,得到符合查询条件的编码集合。

图12 点查询的结果

(b)范围查询

用户任意指定某个范围得到其中所有特定实体,可能是某个楼层,也可以是突破建筑物中既有边界的不规则多边形,如图13。

图13 跨越室内边界多边形范围查询

(5)编码对比

基于建构筑物编码的范围查询的查准率较高,尤其是当查询范围是建筑物内固有的空间划分时,查准率是几乎是100%; 并且查询的效率很高,只需要匹配编码子空间编码的两个方向的跨度码就可以直接得到查询结果; 而在建筑物场景下这种查询需求是比较常见的。而全球的刚性划分网格忽略了对象实体自身的界限,比如北斗网格参考框架,每个划分网格都是客观存在,这些网格的边界无法与建筑物内部结构贴合,在图14的查询场景下,只能够根据该子空间的外包面片进行查询。外包面片的范围与子空间实际范围的差别很大,导致查准率较低,会包括许多非目标实体; 如果采用层级更大的小网格进行聚合,拟合子空间这样的不规则多边形则需要不断的迭代计算,运算量大效率不高。图14显示了全球刚性网格划分的效果示意图。

图14 全球刚性网格划分结果(左图是外包网格,右图是精细填充网格)

6 总结与展望

建筑信息管理对建设项目实施、建筑业宏观管理作用巨大,它既是项目管理的职能,又是项目管理的基础。建筑领域IT技术充分发挥作用需要建筑信息的规范化、标准化和统一化,这也是建筑业信息化的基础环节。

但建立建筑空间标识位置编码是一项系统工程,本文对建筑空间标识位置编码的框架进行分析,发现现有规则有不统一、效率不高等问题,提出了一种基于北斗网格的建构筑物编码规则,以及对应的点查询、范围查询、距离查询等算法,来解决这些问题。许多问题仍需进一步深化研究:

(1)研究如何改进建构筑物空间标识位置编码,进一步提高查准率,在异构跨库环境下提高构件检索效率;

(2)为实现建筑及其构件的精细化、自动化装配,为构件添加连接件,在计算机编程环境下通过识别特定位置连接件的编码完成构件的自动化装配;

(3)空间标识位置编码的操作大多都是通过手动方式运行完成,在初期应用中的建构筑物数量不多的情况下能满足任务需求,但构件数量急剧增长时,若能自动对新增数据进行建构筑物空间标识位置编码,并进行自动入库,可以提高其效率。

猜你喜欢

构筑物楼层坐标系
奶奶做的“楼层儿”
悬置海洋中部构筑物选型数值模拟研究
邻近重要建构筑物条件下的基坑工程设计
独立坐标系椭球变换与坐标换算
利用楼层废水势能的发电装置
给水排水构筑物结构设计分析
高支模施工技术在工业构筑物中的应用
电梯的升与降
坐标系背后的故事
三角函数的坐标系模型