CN114818061A - 基于Revit API和Dynamo的预制构件BIM模型点云生成方法 - Google Patents
基于Revit API和Dynamo的预制构件BIM模型点云生成方法 Download PDFInfo
- Publication number
- CN114818061A CN114818061A CN202210388106.8A CN202210388106A CN114818061A CN 114818061 A CN114818061 A CN 114818061A CN 202210388106 A CN202210388106 A CN 202210388106A CN 114818061 A CN114818061 A CN 114818061A
- Authority
- CN
- China
- Prior art keywords
- type
- geometric
- dynamo
- point cloud
- prefabricated part
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Civil Engineering (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Structural Engineering (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开基于Revit API和Dynamo的预制构件BIM模型点云生成方法,属于计算、推算或计数的技术领域。该方法:根据设计图纸建立预制构件BIM模型;依托.NET框架,通过外部命令接口搭建Revit二次开发程序框架;构造元素收集器和元素过滤器,过滤并保留族实例;访问族实例的几何元素,访问几何元素所含几何对象,从中获取实体类几何对象;访问实体类几何对象的属性,获取面类型和边类型几何对象;借助Dynamo中几何图形创建方法,将Revit中的面类型和线类型几何对象转化为Dynamo支持的几何对象;调用Dynamo中几何运算方法,将Dynamo中创建的线、面离散化为点集。本发明可将构件BIM模型转化为点云,以txt文件存储,可导入各点云处理软件及数据处理软件,为点云对齐、构件识别等提供支持。
Description
技术领域
本申请涉及建筑信息化技术,特别是公开基于Revit API和Dynamo的预制构件BIM模型点云生成方法,属于计算、推算或计数的技术领域。
背景技术
装配式建筑是目前广为采用的建造工艺,构件在工厂批量生产预制后运送至施工现场,在施工现场将预制构件与现浇构件拼装完成整体建造。批量生产后的预制构件的几何尺寸,以及预应力张拉、运输、存梁过程中发生的弯曲、扭转等几何形态变化,都是检测制作构件质量的重要关注点。
点云数据是通过三维激光扫描仪或机器视觉技术获取的高精度、高密度、全数字化的目标物表面坐标数据,代表目标物的实际几何形态。已有众多研究将点云模型与目标物设计模型对比,以获得目标物实际形态与设计形态的差异,这一思想在土木工程构件、工业零件的尺寸检测中已有广泛应用。
BIM(Building Information Modeling,建筑信息模型)技术是一种应用于工程设计、建造、管理的数据化工具。装配式建筑常采用BIM技术进行模拟拼装和信息存储。Revit是常用的BIM建模软件,其辅助编程工具Dynamo常作为Revit与其它软件数据沟通的桥梁,可将BIM模型携带的信息转化为其它形式的数据,但Dynamo几何对象与Revit有所不同,在数据交互时需转换几何对象类型。
目前,相关研究多是将三维激光扫描获得的点云与其BIM三维模型精确拟合对齐,然后对比二者偏差,这一过程通常依赖于专业点云处理软件。然而,各软件所擅长的功能不同,如部分软件无法实现建筑物垂直度检测功能,且多数软件不能满足用户对某些特殊功能的需求;在三维模型文件导入时,各软件所支持的文件格式也有所不同,常需要做文件类型转换,其过程较为繁琐。
发明内容
本发明的发明目的是针对上述背景技术的不足,提供基于Revit API和Dynamo的预制构件BIM模型点云生成方法,得到存储设计点云位置坐标的txt格式文本文件,实现不同点云处理软件对设计点云位置坐标的读取,为点云拟合对齐、构件类型识别等提供数据支持,解决不同点云处理软件不能兼容BIM三维模型以及部分点云处理软件不能满足所有构件检测需求的技术问题。
本发明为实现上述发明目的采用如下技术方案:
基于Revit API和Dynamo的预制构件BIM模型点云生成方法,依托Autodesk Revit平台建立预制构件BIM模型族文件;在Revit二次开发程序框架下构造元素收集器并创建元素过滤器,所述元素收集器收集BIM模型族文件储存文档中的所有元素,所述元素过滤器对元素收集器收集的信息进行过滤以保留目标预制构件BIM模型的族实例;从目标预制构件BIM模型的族实例中获取实体类型的几何对象,从实体类型的几何对象中获取面类型和边类型的几何对象;将面类型的几何对象转换为Dynamo支持的面类型几何对象,将边类型的几何对象转换为Dynamo支持的线类型几何对象;利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法,从目标预制构件BIM模型的族实例中获取实体类型的几何对象的具体方法为:访问目标预制构件BIM模型的族实例的几何元素,依次访问几何元素所包含的几何对象,将实体类型的几何对象转换为实体类型的子类型。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法,将面类型的几何对象转换为Dynamo支持的面类型几何对象的具体方法为:在Revit API中应用三角化方法将面类型的几何对象转化为三角网格类型,获取所述三角网格模型的角点坐标;通过Dynamo中Point.ByCoordinates方法调用所述三角网格模型的角点坐标,创建Dynamo支持的角点;通过Dynamo中PolyCurve.ByPoints方法,将同一个面上的角点连接为一条闭合曲线;再通过Dynamo中Surface.ByPatch方法,以闭合曲线为边界创建平面,获得Dynamo支持的面类型几何对象。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法,将边类型的几何对象转换为Dynamo支持的线类型几何对象的具体方法为:在Revit API中应用AsCurve方法将边类型的几何对象转化为线类型的几何对象,获取线类型几何对象的两端点坐标;通过Dynamo中Point.ByCoordinates方法调用所述线类型几何对象的两端点坐标创建端点;通过Dynamo中Line.ByStartPointEndPoint方法连接端点创建线段,获得Dynamo支持的线类型几何对象。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法,利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集的具体方法为:通过Dynamo中Surface.PointAtParameter方法,随机生成UV参数对,在面类型几何对象上提取UV参数处的点的坐标,通过Geometry.DistanceTo方法剔除面轮廓外的噪点;通过Dynamo中Curve.PointAtParameter方法,提取线类型几何对象上指定参数处的点的坐标。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法,利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集后,将离散后的点集输出为.txt格式文件。
进一步地,基于Revit API和Dynamo的预制构件BIM模型点云生成方法, Revit二次开发程序框架依托.NET框架,通过基于C#语言的外部命令接口搭建。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述基于Revit API和Dynamo的预制构件BIM模型点云生成方法。
一种预制构件识别方法,采用上述基于Revit API和Dynamo的预制构件BIM模型点云生成方法获得预制构件的点云模型,通过预制构件的扫描点云与设计点云拟合对齐,识别构件类型并获得尺寸检测结果。
本发明采用上述技术方案,具有以下有益效果:
(1)本发明依托Autodesk Revit平台,在Revit二次开发程序框架下提取预制构件BIM模型的实体类几何对象,通过Dynamo调用Revit API将Revit中的几何对象转换为Dynamo支持的几何对象,获得可兼容于不同点云处理软件的设计点云,为点云对齐、构件识别提供设计点云数据,不同点云处理软件调用txt格式文件的点云文件时无需进行文件类型的转换,提高点云数据的使用效率。
(2)采用本发明生成的设计点云以txt格式文件存储,将txt格式文件的设计点云导入Matlab、Python等数据处理软件后,用户可根据实际需求对其进行修改或增减以满足特殊检测功能的要求。
附图说明
图1为本发明生成BIM模型点云的总流程图。
图2为本发明一个实施例中预制箱梁的BIM模型。
图3为本发明一个实施例中预制箱梁BIM模型梁端平面离散后的点云。
图4为本发明一个实施例中预制箱梁BIM模型梁端边线离散后的点云。
图5为本发明一个实施例中预制箱梁BIM模型梁端离散后的点云。
图6为本发明一个实施例中预制箱梁BIM模型整体离散后的点云。
具体实施方式
为了使本申请的发明目的、技术方案及技术效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步的详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
以一个预制混凝土箱梁为实施例,生成预制混凝土箱梁BIM模型点云的流程图如图1所示,包括如下八个步骤。
步骤一、依托Autodesk Revit平台,根据设计图纸建立预制混凝土箱梁构件BIM模型.rfa族文件
基于Revit内置“公制轮廓”族文件,制作混凝土箱梁截面轮廓族、横系梁截面的参数化轮廓族文件。基于Revit内置“公制轮廓-梁和支撑”族文件,通过轮廓族放样建立混凝土箱梁BIM模型族文件,生成的混凝土箱梁BIM模型如图2所示。
步骤二,依托.NET框架,使用C#语言,通过外部命令接口搭建Revit二次开发程序框架
在Visual Studio新建类库项目,为项目添加Revit API.dll和Revit APIUI.dll引用文件,添加Revit常用命名空间,除此之外还需添加Dynamo几何相关命名空间;在名为Execute的方法中编写功能代码。
步骤三,构造元素收集器,利用元素收集器储存文档中所有元素,元素收集器包含了元素的类型(FamilySymbol)和实例(FamilyInstance),进一步创建元素过滤器,元素过滤器对元素收集器收集的信息进行过滤并保留需要的特定族实例。
对于族类型为Sweep的混凝土箱梁,元素收集器从混凝土箱梁BIM模型族文件中收集并储存所有元素,元素过滤器对元素收集器中储存的元素进行过滤保留类型为Sweep的实例。
步骤四,访问族实例的几何元素(GeometryElement),再访问几何元素所包含的几何对象(GeometryObject),从中获取实体(Solid)类型的几何对象
访问族实例的几何元素(GeometryElement),几何元素包含了模型所含有的点(Point)、线(Curve)、边(Edge)、面(Face)、实体(Solid)等,统称为模型的几何对象(GeometryObject)。依次访问几何元素所包含的几何对象,判断其是否为实体类型,如果是则将该几何对象强制转换为其子类型——实体(Solid)类型,后续步骤均在子类型,也就是实体类型几何对象的基础上操作。例如,对于步骤三获得的类型为Sweep的实例,访问类型为sweep的族实例的几何元素,再访问类型为sweep的族实例的几何元素中的每一类几何对象,判断几何对象的类型,获取实体(Solid)类型的几何对象。
步骤五,访问实体(Solid)类型几何对象的属性,获取面(Face)类型几何对象和边(Edge)类型几何对象
步骤六,借助Revit附加模块Dynamo内置的几何图形创建方法,将Revit中的面类型和线类型几何对象转化为Dynamo支持的几何对象,在Dynamo中创建面(Surface)和线(Line)
对于面类型的几何对象,在Revit API中应用三角化(Triangulate)方法,将面转化为三角网格(Mesh)类型,访问三角网格的顶点(Vertices)属性,最终获取面的角点坐标XYZ。分别提取角点的三个坐标数据,通过Dynamo中Point.ByCoordinates方法创建角点,即完成了Dynamo支持的点类型几何对象的创建。
通过Dynamo中PolyCurve.ByPoints方法,将同一个面上的角点连接为一条闭合曲线,再通过Surface.ByPatch方法,以闭合曲线为边界创建平面,即完成了Revit支持的面类型几何对象向Dynamo支持的面类型几何对象的转化
对于边类型的几何对象,在Revit API中应用AsCurve方法,将边转化为线(Line)类型,获取线的两端点坐标XYZ。提取端点的三个坐标数据,通过Dynamo中Point.ByCoordinates方法创建端点,即完成了Dynamo支持的点类型几何对象的创建
通过Dynamo中Line.ByStartPointEndPoint方法创建线段,即完成了Revit支持的边类型几何对象向Dynamo支持的线类型几何对象的转化。
步骤七,基于Dynamo中创建的几何对象,调用Dynamo内置的几何运算方法,将线、面离散化为点集
通过Dynamo中Surface.PointAtParameter方法,随机生成UV参数对,参数需大于0小于1,在面上提取UV参数处的点的坐标,当面的形状不规则时,随机生成的点可能位于面轮廓外而成为噪点,这时还需通过Geometry.DistanceTo方法判断点与面轮廓的位置关系,剔除轮廓外的噪点,图3所示为预制混凝土箱梁BIM模型梁端平面离散后的点云。
通过Curve.PointAtParameter方法,提取线上指定参数处的点的坐标,参数需大于0小于1,图4所示为预制混凝土箱梁BIM模型梁端边线离散后的点云。
将各平面和边线上提取的点合并,即为该实体离散后的点集,图5所示为预制混凝土箱梁BIM模型梁端离散后的点云。
步骤八,将离散后的点集densePoints输出为.txt格式文件,图6所示为预制混凝土箱梁BIM模型整体离散化后的点云。
Claims (9)
1.基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,
依托Autodesk Revit平台建立预制构件BIM模型族文件;
在Revit二次开发程序框架下构造元素收集器并创建元素过滤器,所述元素收集器收集BIM模型族文件中所有元素,所述元素过滤器对元素收集器收集的信息进行过滤以保留目标预制构件BIM模型的族实例;
从目标预制构件BIM模型的族实例中获取实体类型的几何对象,从实体类型的几何对象中获取面类型和边类型的几何对象;
将面类型的几何对象转换为Dynamo支持的面类型几何对象,将边类型的几何对象转换为Dynamo支持的线类型几何对象;
利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集。
2.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,所述从目标预制构件BIM模型的族实例中获取实体类型的几何对象的具体方法为:访问目标预制构件BIM模型的族实例的几何元素,依次访问几何元素所包含的几何对象,将实体类型的几何对象转换为实体类型的子类型。
3.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,所述将面类型的几何对象转换为Dynamo支持的面类型几何对象的具体方法为:在Revit API中应用三角化方法将面类型的几何对象转化为三角网格类型,获取所述三角网格模型的角点坐标;通过Dynamo中Point.ByCoordinates方法调用所述三角网格模型的角点坐标,创建Dynamo支持的角点;通过Dynamo中PolyCurve.ByPoints方法,将同一个面上的角点连接为一条闭合曲线;再通过Dynamo中Surface.ByPatch方法,以闭合曲线为边界创建平面,获得Dynamo支持的面类型几何对象。
4.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,所述将边类型的几何对象转换为Dynamo支持的线类型几何对象的具体方法为:在Revit API中应用AsCurve方法将边类型的几何对象转化为线类型的几何对象,获取线类型几何对象的两端点坐标;通过Dynamo中Point.ByCoordinates方法调用所述线类型几何对象的两端点坐标创建端点;通过Dynamo中Line.ByStartPointEndPoint方法连接端点创建线段,获得Dynamo支持的线类型几何对象。
5.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,所述利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集的具体方法为:通过Dynamo中Surface.PointAtParameter方法,随机生成UV参数对,在面类型几何对象上提取UV参数处的点的坐标,通过Geometry.DistanceTo方法剔除面轮廓外的噪点;通过Dynamo中Curve.PointAtParameter方法,提取线类型几何对象上指定参数处的点的坐标。
6.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,利用Dynamo内置的几何运算方法将其支持的面类型几何对象、线类型几何对象离散为点集后,将离散后的点集输出为.txt格式文件。
7.根据权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法,其特征在于,所述Revit二次开发程序框架依托.NET框架,通过基于C#语言的外部命令接口搭建。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1所述的基于Revit API和Dynamo的预制构件BIM模型点云生成方法。
9.一种预制构件识别方法,其特征在于,采用权利要求1所述基于Revit API和Dynamo的预制构件BIM模型点云生成方法获得预制构件的点云模型,通过预制构件的扫描点云与设计点云拟合对齐,识别构件类型并获得尺寸检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210388106.8A CN114818061A (zh) | 2022-04-13 | 2022-04-13 | 基于Revit API和Dynamo的预制构件BIM模型点云生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210388106.8A CN114818061A (zh) | 2022-04-13 | 2022-04-13 | 基于Revit API和Dynamo的预制构件BIM模型点云生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114818061A true CN114818061A (zh) | 2022-07-29 |
Family
ID=82536959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210388106.8A Pending CN114818061A (zh) | 2022-04-13 | 2022-04-13 | 基于Revit API和Dynamo的预制构件BIM模型点云生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114818061A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116227009A (zh) * | 2023-05-10 | 2023-06-06 | 长江三峡集团实业发展(北京)有限公司 | 一种估计隧洞bim模型和点云模型偏差的方法、装置和设备 |
CN116341050A (zh) * | 2023-02-07 | 2023-06-27 | 浙江大学 | 一种基于点云数据的机器人智能建造方法 |
CN117744257A (zh) * | 2023-11-29 | 2024-03-22 | 中国电建集团成都勘测设计研究院有限公司 | 无轴螺旋输送机参数化建模方法、设备和介质 |
-
2022
- 2022-04-13 CN CN202210388106.8A patent/CN114818061A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116341050A (zh) * | 2023-02-07 | 2023-06-27 | 浙江大学 | 一种基于点云数据的机器人智能建造方法 |
CN116341050B (zh) * | 2023-02-07 | 2024-01-30 | 浙江大学 | 一种基于点云数据的机器人智能建造方法 |
CN116227009A (zh) * | 2023-05-10 | 2023-06-06 | 长江三峡集团实业发展(北京)有限公司 | 一种估计隧洞bim模型和点云模型偏差的方法、装置和设备 |
CN117744257A (zh) * | 2023-11-29 | 2024-03-22 | 中国电建集团成都勘测设计研究院有限公司 | 无轴螺旋输送机参数化建模方法、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114818061A (zh) | 基于Revit API和Dynamo的预制构件BIM模型点云生成方法 | |
Choi et al. | Exchange of CAD part models based on the macro-parametric approach | |
Ji et al. | Exchange of parametric bridge models using a neutral data format | |
US7492364B2 (en) | System and method for creating and updating a three-dimensional model and creating a related neutral file format | |
Sheffer et al. | Virtual topology operators for meshing | |
CN112269850B (zh) | 地理数据处理方法、装置、电子设备及存储介质 | |
CN112989482B (zh) | Bim模型数据的生成方法及装置和构建方法及装置 | |
CN110414136B (zh) | 一种基于bim的桥梁快速建模方法及系统 | |
CN116051734B (zh) | 基于三维激光扫描及实景三维建模的工程量快速统计方法 | |
CN114969586A (zh) | 基于web端的bim图形引擎加载方法及装置 | |
Akanbi et al. | Framework for developing IFC-based 3D documentation from 2D bridge drawings | |
US7372462B2 (en) | Three-dimensional geometry processing system and method for CAD apparatus restricted in surface representations to import solid data | |
KR101754294B1 (ko) | 비정형 보 부재의 bim 데이터 변환장치 및 그 방법 | |
CN111914329A (zh) | 一种路基bim模型与三维地形自动融合的方法 | |
CN112270077A (zh) | 技术中台构建方法及装置 | |
CN109933588B (zh) | 一种dwg数据转gdb数据的方法和系统 | |
CN116595839A (zh) | 一种生成结构分析模型的系统 | |
JP4935494B2 (ja) | 設計支援装置 | |
KR102353827B1 (ko) | 규칙 기반의 Scan-to-BIM 매핑 파이프라인 구조 설계 장치 및 방법 | |
CN113689568B (zh) | 一种基于云端渲染的三维效果图高精度建模方法 | |
Shih | A study of 2D-and 3D-oriented architectural drawing production methods | |
KR101902819B1 (ko) | 창 세트의 열 관류율 시뮬레이션 자동화 평가를 위한 개방형 bim 정보의 자동 가공 시스템 및 방법 | |
CN112182705A (zh) | 基于bim技术的仿真模拟模型数据解析方法 | |
JP3768875B2 (ja) | Cad用データ変換方法、プログラム及び記録媒体 | |
KR102608116B1 (ko) | Bim 모델 경량화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |