APP下载

Dynamo可视化编程在车位排布中的应用研究

2021-10-13

土木建筑工程信息技术 2021年4期
关键词:车位障碍物车道

郑 聪 孙 昱 欧 燕

(1.湖南省建筑设计院集团有限公司,长沙 410012;2.长沙市长投建设项目管理有限公司 ,长沙 410009)

引言

对于建筑设计师来说,车库设计是一项普遍和常规的工作,其中,如何进行车道和停车区的排布是车库设计的重要环节[1]。为了提高工作效率,作者开展了本次研究,期望达到的效果主要有以下两点:

(1)提高设计过程中,计算机辅助设计的自动化程度,从而进一步地减少设计师对软件的重复操作,并且能够更快速、直观、准确地获得设计结果[2]; 当设计条件改变时,设计师做出最少的操作或者调整,计算机能够自动求出所对应的结果。

(2)利用结果生成的高效性和直观性,让设计师便于发现需要调整的输入项,使得设计的方案更有可能获得更多停车数量,或者更舒适、高效的车行通行流线[3]。

在本次研究中,为了便于测试和对比,作者构建了1个演示模型,并挑选了3个不同类型和特点的实际工程项目作为调试。

研究的软件平台为Revit,使用工具为Dynamo参数化插件和Python语言。

研究成果是得到一个辅助设计师排布车位的程序,程序格式为DYN。

1 基于车库设计的关键概念和限制条件

为了方便开展本次研究,作者从车库设计和程序需要出发,提炼和概括一些概念。

1.1 关键概念

(1)从车辆的停靠方式和出入方式来看,车道分为两种类型:主车道,副车道; 停车区分为三种类型:垂直母停车区,垂直子停车区,平行停车区[4]; 如图1。

图1 主要概念一

主车道:两边考虑停车的矩形区域;

主车道切向正方向:一般为地库的boundingbox(最小包围盒)的长边方向,以向右为正;

副车道:一般情况下,两边不考虑停车的矩形区域,但是可以根据实际情况进行停车;

副车道切向正方向:一般为地库的boundingbox的短边方向,以向下为正;

主车道头线:在主车道的矩形四条边中,与主车道切向平行,且主车道法向正方向所指向的一条边;

主车道尾线:在主车道的矩形四条边中,与主车道切向平行,且主车道法向负方向所指向的一条边;

垂直母停车区:一个矩形区域中的单个车位的长度方向和车道切向方向垂直,且该区域直接贴邻车道;

垂直子停车区:一个矩形区域中的单个车位的长度方向和车道切向方向垂直,但该区域不直接贴邻车道,出入车需要借用垂直母停车区;

平行停车区:一个矩形区域中的单个车位的长度方向和车道切向方向平行,且该区域直接贴邻车道;

图1中,水平向右方向为主车道切向正方向,副车道法向正方向,垂直向下方向为主车道法向正方向,副车道切向正方向;

(2)从考虑地库范围,障碍物等干扰因素的影响程度来看,车道分为三种类型:原始车道,理想车道,实际车道; 停车区分为三种类型:原始停车区,理想停车区,实际停车区。

原始车道:由设计师布置的若干个初始线形成的矩形区域;

理想车道:在地库范围内的原始车道,不考虑固定障碍物的影响,可以车辆通行的矩形区域;

实际车道:理想车道考虑固定障碍物的影响,可以车辆通行的矩形区域;

原始停车区:由实际车道或者实际垂直母停车区的头线,尾线,进行移动而形成的矩形区域;

理想停车区:在地库范围内的原始停车区,不考虑固定障碍物的影响,可以车辆停放的矩形区域;

实际停车区:理想停车区考虑固定障碍物的影响,可以车辆停放的矩形区域。

各种类型的车道和停车区之间的相互关系如图2。

图2 主要概念二及相互关系

1.2 限制条件

设计师在使用本程序布置车库方案的时候,除了遵循基本的设计原则和经验之外,还需要满足一些特定的规则,举例如下:

(1)1个地库范围内只能有1个主车道方向和副车道方向,且同类型的车道方向互相平行,不同类型的车道方向互相垂直; 主车道方向和地库的boundingbox的长边方向一致;

(2)1个地库范围内的主车道、副车道、停车区只能是直线,如果是折线的情况,需要把地库拆分成若干个分区,分别运行程序,如图3,案例中把地库拆分成水平方向和倾斜方向的两个分区;

图3 把地库进行拆分成两部分

(3)两条原始主车道头线的距离=车道宽度+单个停车位长度x2;

(4)如果有包含曲线元素的建筑构件,比如结构圆柱,弧形墙,弧形楼板洞口等,需要在搭建模型时,把其转换为非曲线元素;

(5)出入口坡道的位置与车道的关系一般有三种:位于车道上、或者位于车道的延伸线上,或者与车道成平行关系;

(6)特殊情况需要人工判断和调整,比如:有些车道无法连通通行,需要设计师自行判断,然后通过增加车道线,或者调整车道线的位置、长度等得到新的结果,如图4,运行结果中的红色框范围内的车道与其他车道没有连通,设计师在绿色框范围内添加一条副车道线,再次运行得到新结果; 再比如,某车道尽头的位置放置停车位可能更为合适,也需要设计师通过判断后,自行添加。

图4 增加车道线后运行结果的对比

2 排布车位的算法原理研究

2.1 基本原理和总体框架

此程序的算法[5]不是针对排布车位的数量最大解,也不是针对车行流线的通行效率的最优解,而是通过解析和抓取设计师最常用的一种设计思路,同时模拟传统操作流程,编写的一种自动化排布车位的算法。

在传统设计过程中,设计师最常采用的一种思路是:首先明确不同类型的车道和停车区的排布优先级,然后按照优先级从高到低的顺序进行排布,其中,最常用的排布优先级如下:主车道>副车道>副车道垂直停车区>副车道平行停车区>主车道垂直母停车区>主车道平行停车区>主车道垂直子停车区。

本程序以此种排布优先级为基础,模拟传统排布过程,得到相应的计算机求解步骤[6],分为七步,依次是:1)求主车道; 2)求副车道; 3)求副车道垂直停车区及其停车位; 4)求副车道平行停车区及其停车位; 5)求主车道垂直母停车区及其停车位; 6)求主车道平行停车区及其停车位; 7)求主车道垂直子停车区及其停车位。如图5。

图5 程序总体流程框架

设计师通过设定或者调整输入项,包括:地库范围、固定障碍物(包括房间、坡道、墙、柱网)、原始主车道线、原始副车道线、车道宽度、单个车位的长度和宽度,计算机根据程序算法自动求出或者生成输出项,包括:车道、停车区、停车位及数量。如图6。

图6 Revit中初始状态和生成结果

2.2 各类型区域的相互关系

各种类型的车道和停车区的求解过程,都可以概况为一个类似的模式,如图7。

图7 各类型区域的求解过程

2.3节中将提取两个典型环节作为主要介绍:其一,主车道求解过程;其二,某停车区的停车位生成过程。

副车道、其他各类停车区的求解过程及对应停车位的生成过程以此类推,不再赘述。

2.3 求主车道

(1)通过原始主车道头线和原始副车道头线,获得主车道、副车道的切向正方向和法向正方向,如图8。

图8 定义和获取线的正方向

(2)通过原始主车道头线求出所有原始主车道尾线,然后考虑地库范围的影响,即分别求得两者在地库范围内的部分,最后把地库范围内的原始头线和尾线对应求交集,获得的就是理想主车道头线,然后通过头线拉伸得到理想主车道,如图9。

图9 理想主车道求解过程

(3)在理想主车道的基础上,扣除障碍物的影响,求实际主车道。在此过程中,运用了先投影,然后求共同交集等若干几何方法求解,最后得到实际主车道的头线,最后通过拉伸得到实际主车道,如图10。

图10 由理想区域得到实际区域

此外,需要注意,一个区域的全部障碍物由两部分构成:固定障碍物+X。其中固定障碍物包括:房间,柱子,坡道,还有一种情况容易被忽视,如图11中,楼板留洞范围(比如:天井)正好在理想区域的内部,或者地库短边边界伸入到理想区域内部,以上这些都需要归纳为固定障碍物;

图11 特殊的固定障碍物

设定X是某理想区域需要特定扣除的障碍物,X包括的内容由排布优先级决定,排布优先级高的实际区域是排布优先级低的理想区域所需要扣除的障碍物,换句话说,某理想区域需要扣除的特定障碍物=所有比其排布优先级高的实际区域之和。比如,主车道排布优先级最高,即最先得到的是主车道,那么不需要扣除特定的障碍物,所以X=0,主要节点截图如图12。

图12 不同区域的全部障碍物求解节点

2.4 车位的布置与生成

对于停车区来说,还需要生成车位,大致步骤如下:首先判断停车区的类型,是“垂直停车”还是“平行停车”,然后根据停车区的类型,逐次放置车位,当余下的区域不够放置车位时,放置结束。当程序按图4流程图的顺序运行完成后,所有车道、停车区、以及相应的车位都会放置结束,这时,Revit项目中会自动生成相应的车位,Dynamo中的相关节点有显示各类停车区的车位总数量。主要节点截图如图13-14。

图13 某垂直停车区车位布置及停车数量显示

图14 Revit中不同停车区的车位的生成

3 工程实践与结果展示

3.1 模型的搭建与处理

首先,设计师把CAD设计文件转换为Revit模型,如果为BIM正向设计,则直接通过Revit搭建设计模型,模型中应包括主要的建筑元素和构件如下:地库范围,各类型房间,结构柱,出入口坡道,天井等; 然后,设计师布置好若干主车道头线,副车道头线。注意两点:

1)车道线的位置可以任意布置,但是,如果设计师根据自身经验和常用设计原则来布置,就可以获得更优结果;

2)如果出入口坡道的起止范围在地库内,一般用实体体块来替代坡道,否则,默认即可。

这里,为了演示方便清晰,作者构建了一个演示模型,初始设计条件为:长宽为146 000×92 100的方形地库,面积约1.3万m2,大柱网8 400×8 400,出入口坡道数量2个,如图15。

图15 演示模型初始状态

3.2 输入项的提取和设置

从Revit中提取需要的元素到Dynamo,并进行相应的参数设置[7],比如,车道的宽度为5 500,单个车位的长度为5 300,宽度为2 400,如图16。

图16 Dynamo中的输入项

设计师通过以上两步的处理,便可以把工作交给计算机进行求解,得出相应的输出结果,如图17。

图17 演示模型的一次运行结果

3.3 调整输入项获得更多的结果

如前文所述,设计师通过调整输入项中的任何一部分参数,Revit和Dynamo中的生成结果也会相应变化,常用的几种调整举例如下:

(1)考虑副车道停车

在默认情况下,副车道不考虑停车,不过通过程序附加的一组节点,可以把Dynamo中生成的实际副车道返回到Revit项目中,这样,设计师能够根据实际需要,在Revit项目中,选择哪些副车道头线一侧停车,哪些尾线一侧停车,哪些两侧都停车,如图18,红色框内的副车道考虑头线一侧停车,绿色框内的副车道考虑尾线一侧停车,既在红色框又在绿色框范围内,表示两侧都考虑停车。

图18 选择副车道停车的范围

选择好后重新运行程序即可,可以看到,Revit项目和Dynamo中的生成结果也会相应变化,如图19。

图19 考虑副车道停车的生成结果

(2)增减或者改变房间的位置、形状以及车道线的位置、长短等等

对于某次生成的结果,设计师通过观察判断,发现某些车道的位置,长短可以优化,或者由于某些原因,房间、柱子等障碍物的位置与形状发生了改变,需要增加或减少了某些房间等等,设计师随时做出调整,重新运行程序即可得到结果,如图20,红色框范围内增加了3个房间。

图20 输入项变化前后,生成的结果的对比

可见,不断变化调整演示模型的设计条件,输出结果会随之变化,而且程序运算平稳顺畅,当面对更加复杂的设计条件时[8],虽然运算所消耗的时间会增加,但是结果依然准确,因此,移植到实际项目中做进一步测试和对比的时机已经成熟。

3.4 实际项目运行测试

接下来,我们选取3个实际项目做测试,分别为:某住宅小区地下室负一层,建筑面积约46 000m2,大小柱网7 800×5 100; 某商业建筑地下室负一层,建筑面积约11 000m2,大柱网8 400×8 400; 某医疗建筑地下室负二层,建筑面积33 000m2,大柱网8 400×8 400。

通过对3个测试模型的反复测试,得到了一系列生成成果,下面截取部分作为对比和总结:

图21至图23的左侧为传统模式下的布置图,右侧为程序自动生成的结果,对于每一种测试模型,当设计条件(输入项)相同,且设计师和计算机均采用相同算法的情况下,人工布置的结果和计算机生成的结果均吻合。其中,某住宅小区地下室负一层停车总数1 541台,包括子母车位143个; 某商业建筑地下室负一层停车总数382台,包括平行车位2个,子母车位15个; 某医疗建筑地下室负二层停车总数624台,包括平行车位10个,子母车位52个。

图21 某住宅小区地下室负一层(左侧红色框部分为坡道)

图22 某商业建筑地下室负一层

图23 某综合医院地下室负二层(左侧青色框部分为坡道)

4 结论

作者通过本次研究并结合以往设计经验,主要总结如下:

(1)建筑面积越大的项目,效率提升越明显;

(2)在设计过程中,能够让设计师有更多的注意力和精力,去关注如何调整设计条件并且进行落实,从而在反复的推演中,获得车行流线更加合理、停车效率更加高效的设计结果;

(3)程序的运行效率、稳定性,运行结果的准确性、合理性以及操作流程的便捷性等方面都基本满足了研究的预期效果[9];

(4)与此同时需要注意的是,由于算法本身的局限性[10],停车数量最大化和车行流线的效率优化仍然需要依靠设计师的经验和素养去解决。对于一个项目来说,要想得到优化的方案,依然离不开设计师的不断推演、排除和归纳,但是,相较于传统模式下所花费的时间成本,如今设计师的工作效率得到了很大的提升。这也正是本次研究的实质目的和核心价值所在。

人工智能技术在建筑设计领域的应用深度和广度将不断拓展,设计师的工作效率将会得到进一步提高。

猜你喜欢

车位障碍物车道
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
为了车位我选择了环保出行
高低翻越
我自己找到一个
赶飞机
月亮为什么会有圆缺
一个车位,只停一辆?
斑马线前该如何礼让