APP下载

闽南传统民居大木架参数化和运算化HBIM建模方法

2024-03-06杨宏基赵冲聂复丹

福州大学学报(自然科学版) 2024年1期
关键词:木架闽南民居

杨宏基, 赵冲, 聂复丹

(福州大学建筑与城乡规划学院, 福建 福州 350108)

0 引言

当前传统建筑修缮信息的储存方式主要以零散图纸和文本为主, 这导致传统建筑修缮信息无法有效储存与传承. 随着建筑产业的数字化转型发展[1], 以建筑信息模型为核心的信息管理方式可提高信息的数字化存储水平. 但是, 现有古建数字化建模技术主要依靠原生软件的功能, 人工进行模型的搭建, 导致建模效率低、 精度低.

在传统大木结构研究中, 对于官式建筑的大木结构研究较为全面, 而对于民居类建筑的大木结构研究较少. 闽南民居大木架类型的生成方式在福建地区乃至福建省外都具有一定的代表性. 因此对闽南民居大木架类型的生成方式展开研究, 旨在揭示闽南传统民居大木架类型体系的演变与发展过程, 将该研究方法推广至福建省各个地区, 可为福建省传统民居建筑类型的研究提供参考.

为精确生成闽南传统民居[2]的大木架模型, 本研究采用以点云为主要数据源, 以参数化模型为核心的历史建筑信息模型(historic building information model, HBIM). 为解决手工搭建模型效率低等问题, 在HBIM技术框架基础上, 结合计算机编程技术, 研发出一套参数化和运算化的建模方法[3]. 首先, 在点云数据的基础上, 提取构件信息, 创建参数化构件族; 然后, 在Revit应用程序开发接口(Revit application program interface, RevitAPI)基础上进行二次开发, 完成运算化设计模块; 接着, 结合Windows 的用户界面框架(windows presentation foundation, WPF)交互生成三维模型; 最后, 使用网页绘图协议(web graphics library, WebGL)结合超文本标记语言(hyper text markup language, HTML)网页技术, 构建闽南古建数字化云平台展示中心.

1 参数化建模与几何描述

1.1 闽南传统民居建筑大木架的组成部分

闽南民居大木架构件自下而上大致可以分为5类, 包括柱类、 通梁类(类似官式建筑的梁或栿)、 斗拱类、 檩条类、 椽条类. 闽南民居中檩条和椽条的几何造型较为简单, 参数化建模难度较低. 本研究以几何造型较为复杂的其他3类大木架构件为研究对象, 对其参数化建模展开讨论.

1.2 柱构件

与以往的参数化建模理念不同, 本方法中每一个Revit族类型都对应一个代码空间中的几何描述. 对于各个构件通用的参数, 采用定义类属性的方式, 在各个构件类属性中定义长(l)、 宽、 高(h)等属性; 对于数值相互关联的参数, 采用函数进行计算.

闽南传统民居大木架包括落地柱和瓜柱两种, 其中按截面形状可将瓜柱分为方筒和瓜筒两种类型. 方筒常用于穿斗结构中, 下端雕刻成鼻头状, 有如披肩衣物, 又称为披肩尾[4]. 方筒构件参数化建模首先要打开常规模型的族样板, 在前视图中绘制1条柱中心线和两条对称柱边线的参考平面, 以宽和高的参数创建长方形拉伸实体. 因为方筒顶部会出现十字形榫卯结构[5], 故需设置右榫卯高和左榫卯高的参数, 并创建十字形空心实体. 为确保方筒在斗底处能平稳过渡, 方筒顶端会产生一段收分的弧线. 参照点云模型, 采用空心放样的方式围绕顶部一圈创建剪切实体, 从而得到收分的效果. 由于方筒构件会穿骑在通构件上, 故要以通宽度和高度为参考在方筒的底部创建洞口. 根据花纹的样式, 绘制花纹的空心拉伸轮廓并剪切方筒实体, 如图1所示.

图1 柱构件参数化模型Fig.1 Parametric model of column components

在Visual Studio 2019编译器中创建class Column类, 并将族参数一一映射到Column类构造函数public Column中, 设置属性之间的换算关系, 完成柱类的几何描述, 如图2所示. 然而, class Column类包含的是柱构件较为共性的、 抽象的几何描述. 在闽南的插梁式构架中, 部分柱子的顶部会连接柱头斗, 再使用class Column类描述便不够准确. 故本程序利用面向对象程序设计中的继承思想, 让class Column成为父类, 而设置class Column_MinNan为子类去继承父类的属性, 并新增Dou_MinNan Dou属性来描述柱头斗这个构件. 如果后续开展闽东、 闽北乃至福建其他地区的民居构件几何描述时, 只需按照 class Type_Location的命名规则来新增子类即可.

图2 柱类几何描述Fig.2 Geometric description of cylindrical class

1.3 斗构件

斗根据形态可分为方斗、 圆斗、 八角斗、 海棠斗等[6]. 通过对海棠斗的结构特点进行分析, 将其分为3层体块, 由上到下进行建模. 其中, 斗底用放样命令放样出两个形体, 而后对这两个形体做融合操作; 斗腰用拉伸命令融合; 斗耳通过拉伸功能分别创建单个体块并且镜像成对生成. 斗的整体宽度受柱径大小控制, 斗口的宽度以其上所承载的栱构件宽度为准. 另外, 对于像海棠斗这样的异形构件, 需要制作双层嵌套的植物族, 而后控制其高度参数, 将其等比例缩放成需要的尺寸. 在Visual Studio 2019编译器中, 将族参数和斗的几何关系作为class Dou_MinNan的属性, 完成斗构件的几何描述.

1.4 通梁构件

闽南民居中通梁有直通和端部弯曲两种类型. 对端部弯曲类型的通梁进行建模, 首先需要确定两柱之间的跨度, 即长(l), 其数值等于左柱半径(r左柱)、 右柱半径(r右柱)和平直段长(l平直段)之和, 然后需要确定高(h)和平直段高(h平直段). 利用等分约束法创建参数化弧线, 创建多条在高度方向4或者6等分、 水平方向8或者10等分的参考平面, 形成等分网格, 并在网格中约束折线段, 形成参数化折线.

对于无法使用等分创建的异形花纹, 在使用拉伸功能描绘完轮廓体量后, 利用参考线会随参考平面移动的特性, 让花纹体量随着参考线的变化而变化, 直到与参考点云重合, 进而生成精确的参数化模型, 如图3所示.

图3 步通通随族点云数据与参数化模型Fig.3 Parametric model and point cloud data of Butong’s tongsui family

将族参数与class Beam_MinNan类中的属性一一对应, 在构造函数中描述属性间的几何关系. 将代码中通梁类的属性和Revit中通梁模型的属性一一对应, 然后利用构造函数构建类属性之间的几何关系, 完成通梁构件的编程语言几何描述.

2 运算化建模

2.1 建模系统内部的数据结构

明确数据结构并将参数分门别类是数字化管理的核心. 建模系统内部数据结构的第1层是指代; 第2层是由BaseLine轴组成的集合, 每个BaseLine对应1根轴线; 第3层是由轴线的序号、 镜像属性和轴线上所有构件信息组成的集合, 如图4所示. 用户输入的跨度、 檩条的标高和直径等基本信息最终会保存到对应的BaseLine类之中, 而后再通过RevitAPI的Grid. Create函数创建轴线, 并在对应的BaseLine容器填入该轴的信息, 为运算化建模提供数据基础.

图4 数据结构示意图Fig.4 Schematic diagram of data structure

2.2 大木架参数化模型运算化生成

1) 在Revit用户主面板处添加“闽南民居”面板, 下设各种功能按钮, 当用户点击“登陆系统”输入完账号密码后, 点击“参数输入”按钮, 弹出参数输入界面, 如图5所示. 用户输入参数的同时, 系统会进行数据处理, 根据内置的算法生成放置族实例所需要的参数, 如跨度参数. 程序会自动将构件所在轴的序号减去步架数, 得到构件末端所在的轴号, 通过两轴基点的差值得到跨度.

图5 参数输入界面Fig.5 Parameter input interface

2) 参数输入完毕后, 进行运算化建模. 首先程序会依次提取每一个构件类的属性, 遍历其族类型参数, 利用RevitAPI中document. LoadFamily函数从本地的构件族库文件夹中将对应的构件族导入到项目中. 而后通过API的Create. NewFamilyInstance函数在对应的位置点上创建族实例. 如果用户将跨度设定为-1, 则系统将判定该轴线为镜像轴, 该轴将不会接受用户输入参数, 该轴所有的构件都会由对称轴的构件镜像得到. 在程序中, 通过条件语句判断该轴是否镜像.

3) 程序遍历构件类(如柱类)中的长、 宽、 高等尺寸信息, 通过ele. LookupParameter函数修改族构件的长、 宽、 高、 左右榫卯长度、 端头下弯程度等参数. 并且在界面右侧实时提供预览界面以供修正, 如图6所示.

图6 运算化建模关键代码Fig.6 Key code of operational modeling

图7 云端展示平台Fig.7 Cloud display platform

2.3 三维模型云端展示技术

构建云端展示平台可以让现场人员突破专业软件和场地的限制, 只需要在手机上便可以查看模型属性信息, 从而增强上下游从业人员协同作业的能力. Revit本身发布网页的功能不完善, 且WebGL提供的API不收取任何费用, 可以供给各个平台的浏览器使用[7]. 因此, 本方法采用WebGL+Three. Js技术实现网页端的显示.

Revit模型不能直接导入网页端, 需要通过Autodesk App Store中的glTF Exporter插件将BIM模型导出成图形语言传输格式(graphics language transmission format, glTF), 再通过generatetable函数将RvtV3c导出的JSon模型属性显示在表格中.

在WebGL第三方库Three. js中, 要在浏览器中将渲染的物体显示出来, 需要满足3个条件, 即scence、 camera和 renderer[8]. 通过glTFLoader. load函数导入glTF格式的古建模型, 并使用camera函数得到用户视野, 使用light函数得到模型显示界面, 使用Raycaster函数让用户可以获取到鼠标点击的模型构件, 并遍历识别出不同类别的构架信息, 完成云端展示平台, 如7所示.

3 研究实例

为验证上述闽南传统民居建筑参数化和运算化建模方法的可行性, 以泉州市历史建筑测绘项目中大木构架较为典型的泉州市割山村树兜25号民居为实践对象.

1) 数据采集和处理. 在民居现场使用Faro三维扫描仪采集高精度的点云数据, 并手工记录构件残损等文字信息. 使用SCENE软件载入地面点云数据, 降噪、 拼合多个基站的点云数据, 生成完整的las格式数据, 并将其导入到Autodesk Recap软件中进行数据索引, 生成RCP格式文件后, 导入到Revit软件中[9].

2) 运算化建模. 在用户界面输入构件类型和尺寸参数, 在有歪闪、 错位和残损的构件附加上文字和照片信息, 利用运算化建模程序自动在Revit中生成整个大木架模型, 如图8所示. 图9为闽南民居构件族库, 对于其中没有收录的构件, 还需要利用点云数据作为图底, 重新参数化建模出这个构件, 并将其收录在族库中, 以丰富样本数量.

图8 大木架模型Fig.8 Large wooden frame model

图9 闽南民居族库Fig.9 Minnan folk house ethnic library

3) 导出网页端. 将三维模型上传至云端, 在闽南数字古建云平台中展示, 用户点击构件, 左侧会显示属性详情. 为保证建模的精度, 使用Undet for Revit点云处理插件, 分析表面建模精度. 分析结果表明, 点云与逆向建模表面误差在15 mm以内, 如图10所示, 可满足古建筑建档立卡的精度要求.

图10 Undet分析建模精度Fig.10 Undet analysis modeling accuracy

本套建模流程共耗时146 min. 对不在族库中的构件参数化建模耗时约90 min, 人工输入参数耗时45 min, 生成模型耗时7.5 s, 点云对比共耗时8 min, 上传至云端平台耗时2 min. 相较于传统的CAD绘图再转到建模软件中翻模的流程, 本套建模流程可节省大量时间.

4 结语

基于HBIM技术流程, 本研究将参数化建模的精度优势与计算机运算化建模速度优势相结合, 提出一套针对闽南传统民居建筑大木架的参数化和运算化建模方法. 结果表明, 此建模方法可大大提高闽南传统民居的正逆向建模能力和建模效率, 并能高效管理、 更新各种类型的构件族, 形成丰富的族库以适应不同类型的民居修缮项目, 为完善闽南传统民居建筑信息库提供技术支撑. 结合互联网技术构建数字古建云端展示平台, 使模型的可视化摆脱Revit等专业软件的束缚, 从而大大提高修缮项目中上下游从业人员的协同作业水平, 降低修缮项目三维可视化的门槛, 为更好地向非从业人员宣传闽南传统民居文化打下技术基础. 下一步将通过5G和“数据上云”技术, 由点及面地形成全国古建族库云平台. 结合云计算技术, 人人都可在云平台进行运算化建模, 从而逐步实现“互联网+古建”的智慧大脑, 加快中国古建筑保护产业的升级步伐.

猜你喜欢

木架闽南民居
民居摄影
民居书画
倔强的藤蔓
对一个匪夷所思的力学现象的剖析
闽南文化传承
民居智库
吴松柏的闽南威士忌小镇
我被木架“粘”住了
把雨伞挂满
闽南,闽南