APP下载

基于Dynamo 的广西壮侗民族传统建筑柱头装饰构件建模研究

2023-09-12李立宁黄雷郭杨刘萍

土木建筑工程信息技术 2023年3期
关键词:柱头灯笼轮廓

李立宁 黄雷 郭杨 刘萍

(南宁职业技术学院 建筑工程学院,南宁 530008)

引言

近年来,随着对中国传统建筑、少数民族传统建筑的保护研究不断深入,不少学者开始利用BIM 技术将过去大多依靠民间工匠师徒相传、不著文字的传统建筑记录保存下来,与文字、图片和视频等形成了多形态的传统建筑信息数据库。如陈璐铭[1]等探讨了点云技术结合BIM 在云南少数民族建筑数字化建模的应用;张天宇[2]尝试了采用BIM 技术对湖南传统村落门窗的进行数字化建模;王钟箐等[3]总结了攒尖亭的构造特点,并采用Dynamo 可视化编程技术实现了不同形式攒尖亭的快速建模;彭永鹏等[4]采用“融合”的方法创建了吊脚楼花柱的构件模型等。学者们的研究表明,合理运用BIM 技术对更好的传承和创新利用少数民族传统建筑文化元素具有重大意义。

总的来看,目前对中国传统建筑,特别是少数民族传统建筑装饰构件的建模,实践中多采用点云、三维扫描的方式进行记录,对其参数化建模的研究仍不充分。本文通过研究此类装饰构件的主要形式,通过添加第三方Dynamo 节点和少数参数编写了针对部分广西传统壮侗民族建筑柱头装饰构件的Dynamo 脚本,达到仅通过输入或修改少量建模参数即可生成多种类别和形状柱头族文件的目的,对其他类似构件的参数化建模提出了可供参考的新思路。

1 广西传统壮侗民族建筑柱头装饰构件的特点

广西壮族自治区是壮、侗及其同源的仫佬族、毛南族、水族等原住民族聚居区,在漫长的历史发展中,壮侗语诸民族及其先民因地制宜,就地取材,创造了风格别具、功能优良、世代传承,以干栏建筑为代表的建筑文化[5]。在部分干栏建筑营造过程中,工匠为节约用地,扩展空间,合理运用力学原理在建筑前檐柱外铆入枋木,枋木末端再接短柱,使楼面或屋面向外伸展,在檐下形成了檐廊;形成一个既能保护下部构件,又能遮阳避雨的空间。为使建筑美观,营造工匠还往往在短柱上雕刻各式蕴涵吉祥含义的花纹、图样等作为装饰,形成富有壮侗民族特色的柱头装饰,既体现了壮侗民族的审美情趣,又表达了吉祥、平安和富裕等对美好生活的愿望。

此类柱头样式有灯笼形、南瓜形、宝瓶形、绣球形等,形似中国传统建筑中的垂莲柱,但一般不施彩画,造型别致古朴,体现了壮侗民族特有的文化传统,图1(a)列举了广西壮侗民族传统柱头装饰的常见典型样式[6],包括圆灯笼形、南瓜形、长灯笼型、流苏灯笼形、收腰灯笼形、扁底灯笼形等。

图1 广西壮侗民族传统柱头装饰的常见典型样式

工匠在雕刻此类柱头装饰构件时的营造方法大致为:

(1)利用原木制作短柱,在短柱端头附近竖向凿刻出变径的连续轮廓,如图1(b)的轮廓所示;

(2)在雕刻出轮廓的柱头上继续雕刻多道平行的凸起棱线,如图2(b)所示。

图2 柱头竖向轮廓的参数化实现

由此,工匠在不另外增加材料耗用的情况下,利用原木直径范围内的材料营造很好的装饰效果。

2 基于Dynamo 的柱头装饰构件参数化建模思路

从对柱头装饰构件的营造方式和几何构成分析可发现,此类包含棱线的复杂几何构件难以采用传统BIM 建模软件的简单方法进行建模的,主要难点为:

(1)旋转、放样、扫略等命令可以形成复杂的竖向轮廓,但难以在构件上附着或扣减形成凸起棱线;

(2)复杂的竖向轮廓和横截面需要大量的参数、参照线和参照面等进行约束,不同约束容易造成冲突,增加了建模、调试和使用的难度;

(3)每种形式的柱头需要单独的族文件进行参数化建模,建模工作量大;不同的族文件间参数难以统一,增加了建模和使用的难度。

为此,本文利用Dynamo 可视化编程支持按需定义图元构成方式、可进行复杂几何建模的特点[7],通过添加若干第三方节点和基本参数,根据柱头构件营造方法和几何构成特点编写了柱头装饰构件参数化建模脚本,实现了通过选择竖向轮廓,输入柱头直径、柱头高度等简单参数即可完成圆灯笼形、南瓜形、长灯笼型、流苏灯笼形建模的功能。

针对以上柱头装饰构件的参数化建模方法思路如下:

(1)柱头竖向轮廓定义:定义与柱头竖向基本轮廓有关的基本参数(如:柱头高、柱头直径等)和基本轮廓,并通过基本参数控制柱头竖向轮廓的形状;

(2)定义柱头横截面:由于柱头横截面为多道平行凸起棱线构成,不同高度处的横截面可视为同一横截面按竖向轮廓线进行缩放并放样的结果;因此,可通过定义柱头横截面的基本参数(如棱高、棱数),并采用多段线(Poly Curve)或样条曲线(Nurbs Curve)拟合创建柱头横截面轮廓;

(3)生成实体:为生成柱头三维实体,需要根据不同高度处的竖向轮廓直径缩放横截面,并平移到相应高度作为放样的依据;随后利用Dynamo多截面放样、拟合以形成带有棱线的柱头三维实体(Solid);

(4)生成短柱:根据建模需要创建柱头上的原木短柱部分;

(5)实体合并、简化:采用多截面放样拟合方法形成的三维实体在族文件、项目文件中占用大量内存和计算资源,因此需要将含有大量曲面的三维实体进行简化;

(6)实体导入文件:将三维实体导入族文件或项目文件中供建模使用。

3 参数化建模实现方法

根据上述参数化建模的思路,本文在参数化建模过程中所用方法和Dynamo 节点略述如下。

3.1 柱头竖向轮廓定义

柱头竖向轮廓的建模采用了专用轮廓族的方法解决,后期只需修改轮廓族少数参数即可快速生成不同形状的三维模型[8]。实现方法为:

(1)新建常规模型族;为使专用轮廓族易于被Dynamo 识别,使用“公制常规模型”族样板创制,并在立面视图中使用“模型线”创建柱头轮廓族;

(2)创建多个参照平面,并用参数绑定;通过对参数的定义达到参数化修改轮廓的目的。图2(a)展示了根据长灯笼型轮廓创建的参数化柱头轮廓族,族文件中分别使用了D1、D2、D3 参数控制不同高度处轮廓直径,使用H1、H2、H3、H4 参数控制柱头各段高度尺寸;

(3)将参数、参照平面、轮廓进行约束后,通过参数控制轮廓的形状;

(4)依次创建不同类别的柱头竖向轮廓,如平头灯笼形、圆头灯笼型、南瓜形等;

(5)将专用轮廓族导入项目文件,在Dynamo 中通过元素选择功能即可实现通过选取不同的族类型、修改族参数即可改变柱头几何形状的功能。

图2(b)展示了通过控制族参数H4 修改轮廓形状,并最终生成相应不同长灯笼型柱头实体的形状对比。

3.2 定义柱头横截面

为使柱头棱数、棱高参数化,此处采用多点连线生成Poly Curve 曲线或Nurbs Curve 曲线的方法,后期只需修改“柱头棱数”、“柱头相对直径”、“柱头相对棱高”参数即可快速生成不同截面的柱头三维模型。具体做法为:

(1)定义“柱头棱数”参数;计算不同棱数下横截面的棱顶、棱底控制点坐标(柱面坐标)角度;

(2)定义“柱头相对直径”、“柱头相对棱高”参数,计算棱顶、棱底控制点的坐标(柱面坐标)半径;

(3)利用“柱头棱数”、“柱头相对直径”、“柱头相对棱高”参数输入“通过极轴坐标创建点”(Point.By Cylindrical Coordinates)节点,生成棱底、棱底控制点;利用“列表展平”(List.Flatten)和“列表组合”(List.Combine)等节点对控制点进行合并和排序,并将控制点列表层级展开;

(4)根据排序后的横截面轮廓的棱顶、棱底控制点,使用“通过点定义Nurb Curve”(Nurb Curve.By Points)节点(或Poly Curve.By Points 节点)按顺序将控制点连接成横截面轮廓,如图3 所示。

图3 横截面及其Dynamo 节点

注意到Nurb Curve 和Poly Curve 生成的图形样式不同,则Poly Curve 的横截面图形趋于尖锐,Nurb Curve 的横截面图形较为圆润。在传统建筑建模和模型应用过程中,可根据建筑装饰的风格有针对性的采用。

3.3 生成实体

柱头竖向轮廓的直径、高度是横截面轮廓缩放、移动的依据。为了快速获得不同高度上轮廓直径(x 值)和高度(z 值),较简单的方法是将AutoCAD 中的轮廓x 值、z 值导出,并用List 的形式输入Dynamo[9]。若要实现较高程度的参数化快速建模,则宜采用Dynamo 的数据处理节点获取。本文采用的方法为:

(1)使用“族实例”(FamilyInstance)节点在项目原点导入专用轮廓族,由于轮廓是基于柱头横截面中心创建的,因此专用轮廓上各控制点的x 坐标和z坐标即为建模所需的柱头不同高度上轮廓直径(x 值)和高度(z 值);

(2)通过“选择全部元素”(All Elements of Family Type)节点、“选择元素曲线”(Element.Curves)节点获取轮廓;可根据需要在项目中导入多种专用轮廓族(需对应不同的族类型名称),并使用“族类型”(Family Types)节点识别专用轮廓族后导入Dynamo 中;

(3) 利用Dynamo 的曲线等分节点(Curve.PointsAtEqualChordLength)拆分轮廓,随后读取拆分点的x 坐标和z 坐标。在拆分轮廓的过程中,可定义“曲线分段数”参数对节点进行控制,从而在后续Solid.ByLoft 过程中获得不同精度的三维模型。为了使轮廓控制点连续,应在List 中增加各段轮廓的起始点、结束点坐标;随后将x 值、z 值分别存入List 中;读取x 值、z 值后,利用Geometry.Scale 节点和Geometry.Translate节点对横截面进行缩放和平移处理即可。其中,缩放的基准为储存x 值的List;平移的基准为基于z 值生成的平移向量。

基于缩放、平移后的横截面,采用Solid.Byloft 节点依次导入横截面List,即可生成所需的三维实体;图4(a)展示了根据长灯笼型竖向轮廓形成的实体形状。

图4 柱头三维模型

3.4 生成短柱

根据需要,短柱可采用多种参数化方式建模,如在revit 中创建建筑柱、结构柱、内建模型等。本文拟将柱头、短柱合成一个参数化模型使用,主要使用Cone.ByCoordinateSystemHeightRadii 节点创建。其中:Height 参数引用了名为“短柱高”的参数,startRadius、endRadius 参数引用了“柱头相对直径”参数;后期只需修改“短柱高”参数即可控制柱头实体形状。生成的短柱实体如图4(b)所示。

3.5 实体合并、简化

由Solid.Byloft 节点生成的柱头包含大量曲面计算,对模型生成、加载、使用所需的计算资源需要很大[10]。模型生成测试表明,在Intel i7 处理器、8GB 内存、4GB 显存配置标准的工作站和Autodesk Revit 2019 的软件环境中,将上述生成的短柱、端头加载入Revit 项目文件中时,软件运行速度明显放慢,常出现计算机卡死、软件崩溃的情况。因此,有必要对三维模型进行一定程度的简化,使之适用于Revit 建模和其他实际应用。

本文中主要采用第三方Meshtoolkit 节点包对三维模型进行Mesh 网格化处理,将包含大量曲面、曲线计算的模型简化为一定数量的三角网格模型而实现。主要方法为:

(1)加载Meshtoolkit 节点包;

(2)向Mesh.ByGeometry 节点分别导入柱头实体、短柱实体,生成实体的Mesh 三维网格。为使实体形状变异程度较小,此处节点中的maxGridlines 参数设置为最大值(512);

(3)注意到不同实体所需简化的精度不同,采用Mesh.Reduce 节点对已生成的Mesh 三维网格进行简化。将网格数量(短柱取值约为50,柱头取值约为 1 000~1 500,可根据生成情况调整)参数导入triangleCount 参数中,得到简化后的柱头和短柱Mesh三维网格;

(4)使用Solid.ByJoinedSurface 命令,导入简化后的柱头和短柱Mesh 三维网格,重新生成简化后的三维实体;

(5)将简化后的三维实体合并,得到合并后的柱头装饰实体;图4(c)展示了长灯笼型实体和短柱实体合并简化后的最终形状。

3.6 实体导入族文件

得到合并后的柱头装饰实体后,即可导入项目文件中作为构件或族使用[11]。为便于模型的统一管理、材质赋予,本文主要利用第三方Springs 节点包将生成的柱头装饰实体处理为族文件。具体做法为:

(1)加载Springs 节点包;

(2)创建柱头专用的族样板文件。为统一材质赋予和材质管理,需在族样板文件中定义“柱头材质”参数,并预先将材质加载入文件中;

(3)定义族文件名称。为便于管理,可以将轮廓形状族名称引用为族文件名称;

(4)将柱头装饰实、族样板文件、族文件名称、族文件类型(常规模型)等导入Springs.FamilyInstance.ByGeometry 节点,在Revit 项目文件中生成族文件。

4 参数化建模应用效果

本文利用上述基于Dynamo 的参数化建模方法,对广西传统壮侗民族建筑中的南瓜形、长灯笼型、流苏灯笼形、收腰灯笼形柱头装饰构件进行了建模实践:

(1)在Autodesk Revit 2019 环境中,编制了统一的柱头建模脚本,创建了南瓜形、长灯笼型、流苏灯笼形、收腰灯笼形柱头的专用竖向轮廓族;

(2)创建项目文件,在Dynamo 面板导入脚本和专用竖向轮廓族,定义了柱头直径、棱数、棱高、材质(松木)等参数;

(3)分别通过手动或自动运行的方式,在项目文件得到了根据轮廓形状命名的柱头族文件。

通过以上步骤创建的柱头构件,可根据建模和应用需要自由放置、移动,也可在族参数中对材质等参数进行修改;可用于广西传统壮侗民族建筑的保护、记录和创新应用中。

图5展示了基于Dynamo 脚本生成的、以族形式放置于项目文件中的南瓜形、长灯笼型、流苏灯笼形、收腰灯笼形柱头装饰构件。

图5 基于Dynamo 生成的柱头构件(族)

5 结论

本文通过对广西壮侗民族传统建筑柱头基于Dynamo 的参数化建模研究和实践表明:

(1)基于Dynamo 的参数化建模方法适用于广西壮侗民族传统建筑柱头的南瓜形、长灯笼型、流苏灯笼形等常见样式的BIM 建模,解决了以往此类复杂装饰构件只能通过点云等模拟方法建模的难点;

(2)采用基于Dynamo 的参数化建模方法时,所需的轮廓形状、基本参数数量相对较少,可在使用阶段降低建模、调整和修改的难度;

(3)不同形状的柱头族文件采用通用的脚本生成,便于后期统一管理和应用。

此外,相对于传统BIM 建模方法,基于Dynamo的参数化建模还存在以下问题:

(1)为了得到通用性较强的建模脚本,本文使用了较复杂的编程逻辑,并调用较多类型的Dynamo节点;脚本编写的技术难度较大,时间和其他相关成本较高;

(2)脚本的使用对建模和设计人员的BIM 建模水平提出了较高的要求,可能限制了该种方法的适用范围;

(3)基于Dynamo 的参数化建模方法尚难以处理某些具象的、缺乏几何构成相似性的柱头,如动物造型、绣球造型等高度复杂的构件。

总之,基于Dynamo 的参数化建模方法在广西壮侗民族传统建筑的建模,特别是柱头装饰构件的建模中具有可行性和一定的优势,可以为其他类似构件的参数化建模提供新思路。在后续的研究中,尚需对基于Dynamo 参数化建模方法在广西壮侗民族传统建筑保护和创新应用进行更多的系统性总结和归纳,以得到更多可行的方案。

猜你喜欢

柱头灯笼轮廓
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
糊灯笼
川鄂盐道白菜柱头图形符号意义分析
卷柱头薹草草坪建植技术探析
籼型光温敏核不育系柱头性状表现
鸟与灯笼
挂灯笼
挂灯笼
在线学习机制下的Snake轮廓跟踪