掌桥专利:专业的专利平台
掌桥专利
首页

BIM模型中Dynamo辅助批量生成穿墙套管的方法

文献发布时间:2024-04-18 19:58:26


BIM模型中Dynamo辅助批量生成穿墙套管的方法

技术领域

本发明涉及建筑建模技术领域,尤其涉及BIM模型中Dynamo辅助批量生成穿墙套管的方法。

背景技术

建筑信息模型(Building Information Modeling)是以建筑工程项目的各项相关信息数据作为模型的基础,进行建筑模型的建立,通过数字信息仿真模拟建筑物所具有的真实信息。它具有可视化,协调性,模拟性,优化性和可出图性五大特点。建筑项目中BIM 作为一种用于建筑设计乃至施工的优化流程,有一项重要的优势,即在设计的同时能够通过碰撞检查,快速地找出各专业间的不一致性,并及时进行修正,从而避免问题延伸至施工阶段而造成不必要的成本浪费,提高设计与施工的质量。

当进行模型协调时,除了通过碰撞检查功能来发现模型中各图元间的碰撞问题,更重要的是当发生了碰撞时,该如何在最短的时间内、最节省成本并保证设计质量的情况下解决碰撞。同时,在碰撞无可避免的情况下,部分设备管线需从建筑或结构构件中穿过,如在梁与墙上开洞并放置套管。目前 Revit中实现上述目标的方式,是一个个以手动方式开洞并放置套管,相当耗时。

发明内容

本发明的目的是克服上述现有技术的缺点,提供一种基于Dynamo辅助设计批量生成穿墙套管的BIM模型的设计方法,该方法可将套管批量放置于Revit项目模型中墙与管线发生碰撞的位置,在最短的时间内、最节省成本并保证设计质量的情况下解决碰撞问题,并保证设计的正确性,解决效率低下费时费工的技术问题。

本发明是通过以下技术方案来实现的:

BIM模型中Dynamo辅助批量生成穿墙套管的方法,包括如下步骤:

S1、通过Dynamo中的All Elements of Categroy节点获取当前项目中与套管相关的建筑结构的图元类别,如结构框架、墙、楼板(必要时也可以加人更多类别的图元进来),再通过Dynamo中的Element.Solids节点获取这些图元的几何形体;

S2、采用Dynamo Nodes所提供的Python 节点Get all Pipes from link,获取链接模型中的管线数据,并使用Clockwork软件包的Element.Location节点,获得各管线的形状曲线;

S3、将管线的形状曲线与结构图元相交,并去除未相交得到的空值结果,进而得到每条管线的曲线分别和结构图元相交线段的列表;

S4、由S3步骤中得到的相交线段列表,反推得知哪一些管线与结构图元发生了相交,并得到其管线的尺寸。需注意的是,由于一条直管段可能与两个以上的结构图元相交,也就是在后续需放置两个以上的套管,因此可通过List.Count节点获得每一条直管段与多少结构图元相交,并利用List.OfRepeatedItem节点重复,得到最终需要放置的套管的数量与尺寸;

S5、由S3步骤中得到的相交线段列表,得到每条管线的曲线的起点、终点及与结构图元(如墙、楼板等)的交点,将管线与结构图元相交的位置坐标点作为放置自适应套管图元的放置点,再使用AdaptiveComponent.ByPoints节点放置套管;

S6、根据S4步骤中放置的套管的数量和尺寸,使用自行撰写的Python节点Cut.Element,调用 Revit API中Autodesk.Revit.DB.InstanceVoidCutUtils类别的AddInstanceVoidCut方法,剪切结构图元的几何形体,在 Dynamo 或 Revit三维视图中,即可查看套管的放置位置以及剪切结构图元的开洞。

管线穿越墙体、楼板、梁、柱等建筑物,需要对相应的建筑物进行开孔。开洞是目的主要是预埋,这些套管需要在建筑施工的时候和构筑物一起预埋进去,要求准确定位,否则后期机电施工时需要重新在墙体上开洞,大大增加造价,也影响建筑的整体质量。

进一步地,所述S5步骤中使用AdaptiveComponent.ByPoints节点放置套管包括如下步骤:新建一个Code Block节点,在该节点中从小到大列出不同管线的尺寸,作为一个列表,通过该列表找出每条管线对应的套管尺寸列表。

对不同类型管线的公称直径、内径、外径有固定的设置规则,因此当取得管线的尺寸后,需使用比该管线大一号的尺寸,作为套管的尺寸,如管线的公称直径为32mm,那么匹配此尺寸管线的套管的公称直径需要为40mm;如管线的公称直径为15mm,那么匹配此尺寸管线的套管的公称直径即为 18mm。

进一步地,所述步骤S4中得到管线尺寸的方法为:通过节点函数Get all Pipesfrom link来调取Revit中已有的管线参数来获得。

本发明通过Dynamo获取链接的 Revit模型数据,利用自适应公制常规模型族样板创建套管,在建筑结构与管线发生碰撞的位置处批量开洞并放置套管,快捷方便,省时省力,方便建筑结构施工时的预埋工作,避免后期安装施工时的开洞,造成不必要的工程浪费和对建筑结构质量的影响,

附图说明

图1为本发明实施例的工作流程图。

图2为本发明实施例的穿墙套管实例图。

图3为本发明实施例由Dynamo程序生成的套管剪切结构图元的开洞图

具体实施方式

BIM模型中Dynamo辅助批量生成穿墙套管的方法,如图1所示,包括如下步骤:

S1、通过Dynamo中的All Elements of Categroy节点获取当前项目中与套管相关的建筑结构的图元类别,如结构框架、墙、楼板(必要时也可以加人更多类别的图元进来),再通过Dynamo中的Element.Solids节点获取这些图元的几何形体。

S2、采用Dynamo Nodes所提供的Python 节点Get all Pipes from link,获取链接模型中的管线数据,并使用Clockwork软件包的Element.Location节点,获得各管线的形状曲线;本发明中的管线不局限于圆管,也可为矩形管,套管亦随之为相应的形状。

S3、将管线的形状曲线与结构图元相交,并去除未相交得到的空值结果,进而得到每条管线的曲线分别和结构图元相交线段的列表。

S4、由S3步骤中得到的相交线段列表,反推得知哪一些管线与结构图元发生了相交,并得到其管线的尺寸。得到管线尺寸的方法为:通过节点函数Get all Pipes fromlink来调取Revit中已有的管线参数来获得。

该节点函数的代码如下:

importclr

clr.AddReference('RevitAPI')fromAutodesk.Revit.DBimport*fromAutodesk.Revit.DB.Structureimport*clr.AddReference("System")fromSystem.Collections.GenericimportListclr.AddReference('RevitNodes')importRevitclr.ImportExtensions(Revit.GeometryConversion)clr.ImportExtensions(Revit.Elements)clr.AddReference('RevitServices')importRevitServicesfromRevitServices.PersistenceimportDocumentManagerfromRevitServices.TransactionsimportTransactionManagerimportitertoolselementlist = []doc = DocumentManager.Instance.CurrentDBDocumentlinkdocs =DocumentManager.Instance.CurrentUIApplication.Application.Documents#looks for links in the active project, add instances to alistforlinkdocinlinkdocs:iflinkdoc.IsLinked:collector =FilteredElementCollector(linkdoc)filter =ElementCategoryFilter(BuiltInCategory.OST_PipeCurves)elementlist.append(collector.WherePasses(filter).WhereElementIsNotElementType().ToElements())#for elem inelementlist:#options = Options()#elem.get_Geometry(options)OUT =list(itertools.chain(*elementlist))

由于一条直管段可能与两个以上的结构图元相交,也就是在后续需放置两个以上的套管,因此可通过List.Count节点获得每一条直管段与多少结构图元相交,并利用List.OfRepeatedItem节点重复,得到最终需要放置的套管的数量与尺寸。

S5、由S3步骤中得到的相交线段列表,得到每条管线的曲线的起点、终点及与结构图元的交点,将管线与结构图元相交的位置坐标点作为放置自适应套管图元的放置点,再使用AdaptiveComponent.ByPoints节点放置套管。

AdaptiveComponent.ByPoints是通过点放置自适应构件,根据某一位置“点”的数据坐标值,在这个点坐标位置放置一个预先编制好的自适应构件,再根据参数调整到合适的状态。

使用AdaptiveComponent.ByPoints节点放置套管包括如下步骤:新建一个CodeBlock节点,在该节点中从小到大列出不同管线的尺寸,作为一个列表,通过该列表找出每条管线对应的套管尺寸列表。

对不同类型管线的公称直径、内径、外径有固定的设置规则,因此当取得管线的尺寸后,需使用比该管线大一号的尺寸,作为套管的尺寸,如管线的公称直径为32mm,那么匹配此尺寸管线的套管的公称直径需要为40mm;如管线的公称直径为15mm,那么匹配此尺寸管线的套管的公称直径即为18mm。

S6、根据S4步骤中放置的套管的数量和尺寸,使用自行撰写的Python节点Cut.Element,调用 Revit API中Autodesk.Revit.DB.InstanceVoidCutUtils类别的AddInstanceVoidCut方法,剪切结构图元的几何形体,在 Dynamo 或 Revit三维视图中,如图2和图3所示,即可查看套管的放置位置以及剪切结构图元的开洞,包括Revit三维图元的尺寸、位置等信息。

管线穿越墙体、楼板、梁、柱等建筑物,需要对相应的建筑物进行开孔。开洞是目的主要是预埋,这些套管需要在建筑施工的时候和构筑物一起预埋进去,要求准确定位,否则后期机电施工时需要重新在墙体上开洞,大大增加造价,也影响建筑的整体质量。

上列详细说明是针对本发明可行实施例的具体说明,该实施例并非用以限制本发明的专利范围,凡未脱离本发明所为的等效实施或变更,均应包含于本案的专利范围中。

相关技术
  • 基于Revit API和Dynamo的预制构件BIM模型点云生成方法
  • 一种批量生成桥墩BIM模型的方法
技术分类

06120116488407