CN116822106B - 基于Dynamo辅助出图方法、装置和设备 - Google Patents

基于Dynamo辅助出图方法、装置和设备 Download PDF

Info

Publication number
CN116822106B
CN116822106B CN202311092888.1A CN202311092888A CN116822106B CN 116822106 B CN116822106 B CN 116822106B CN 202311092888 A CN202311092888 A CN 202311092888A CN 116822106 B CN116822106 B CN 116822106B
Authority
CN
China
Prior art keywords
node
code block
input end
output end
determining
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.)
Active
Application number
CN202311092888.1A
Other languages
English (en)
Other versions
CN116822106A (zh
Inventor
柴婷婷
王刚
杜峰
韩德志
黄维爱
卢海潮
张绍栋
李彦强
孔原
董宇鹏
蔡猛
孙维峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Urban Construction Group Co Ltd
Beijing Urban Construction Design and Development Group Co Ltd
Original Assignee
Beijing Urban Construction Group Co Ltd
Beijing Urban Construction Design and Development Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Urban Construction Group Co Ltd, Beijing Urban Construction Design and Development Group Co Ltd filed Critical Beijing Urban Construction Group Co Ltd
Priority to CN202311092888.1A priority Critical patent/CN116822106B/zh
Publication of CN116822106A publication Critical patent/CN116822106A/zh
Application granted granted Critical
Publication of CN116822106B publication Critical patent/CN116822106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/14Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开涉及一种基于Dynamo辅助出图方法、装置和设备。该方法包括:基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;对于任意的一个目标零件,确定所述目标零件的位置参数值;根据所述位置参数值进行出图。本申请的技术方案,预先设定了Dynamo程序,采用Dynamo程序可以快速的确定出目标零件,以及目标零件的位置参数,从而可以快速的根据位置参数出图,提高出图效率。

Description

基于Dynamo辅助出图方法、装置和设备
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于Dynamo辅助出图方法、装置和设备。
背景技术
在Revit软件中,机电管线综合模型中的水管、风管及桥架在进行出图时,需要逐个手动的对每一个水管、风管及桥架进行标注,费时费力。出图效率低。
发明内容
为克服相关技术中存在的问题,本公开提供一种基于Dynamo辅助出图方法、装置和设备,以解决上述的问题。
根据本公开实施例的第一方面,提供一种基于Dynamo辅助出图方法,包括:
基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;
对于任意的一个目标零件,确定所述目标零件的位置参数值;
根据所述位置参数值进行出图;
所述目标零件包括:水管、风管和桥架;
所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值;
确定所述目标零件的位置参数值,包括:
在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;
如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图。
在一种实施方式中,
所述向量平行判断Vector.IsParallel节点的第一输入端连接所述线方向节点的输出端,用于输入线方向向量;
第二输入端输入Z轴向量;
如果所述线方向向量与所述Z轴向量平行,则确定所述水管垂直于地面;
如果所述线方向向量与所述Z轴向量不平行,则确定所述水管不垂直于地面。
在一种实施方式中,如果所述水管垂直于地面,则采用Element.SetParameterByName节点对所述水管进行垂直标记,具体包括:
采用第一Code Block节点,所述第一Code Block节点的输出端连接所述Element.SetParameterByName节点的parameterName输入端;
所述第一Code Block节点中,设置BL与CL标识;
采用第二Code Block节点,所述第二Code Block节点的输出端连接所述
Element.SetParameterByName节点的Value输入端;
所述第二Code Block节点中,设置垂直标记。
在一种实施方式中,采用Point.Z节点确定所述目标点的Z方向的绝对标高;
所述曲线上目标点辅助参数确定节点的输出端连接所述Point.Z节点的输入端;
采用第三Code Block节点对所述目标点的Z方向的绝对标高进行单位换算;
其中,单位换算的计算公式为,B=Z/1000。
在一种实施方式中,所述目标点为所述水管的中点、起始点和终点;
所述目标点辅助参数确定节点包括:第一目标点辅助参数确定节点、第二目标点辅助参数确定节点和第三目标点辅助参数确定节点;
对于所述中点,所述第一目标点辅助参数确定节点的参数设置端设置的参数为0.5;
对于所述起始点,所述第二目标点辅助参数确定节点的参数设置端设置的参数为0;
对于所述终点,所述第三目标点辅助参数确定节点的参数设置端设置的参数为1。
在一种实施方式中,确定所述目标零件的位置参数值,包括:
采用第一Element.GetParameterValueByName节点确定所述风管、桥架的底部的绝对标高;
其中,parameter输入端输入“高度”;
上述的第一Element.GetParameterValueByName节点的输出端连接了第四CodeBlock节点的h输入端。
其中,上述的h为上述的风管、桥架的高度。
该第四Code Block节点的Z输入端输入Z值。
其中,Z值为该风管、桥架的中心标高;
该第四Code Block节点中设定的计算公式为:B=(Z-h/2)/1000。
其中,B为该风管、桥架的底部标高。该计算公式适用于风管、桥架水平的情况;
所述第一Element.GetParameterValueByName节点的element输入端连接第一List.FilterByBoolMask节点的out输出端;
所述第一List.FilterByBoolMask节点的list输入端连接了AllElementsofCategory节点的输出端;
所述第一List.FilterByBoolMask节点的mask输入端连接Vector.IsParallel节点的bool输出端。
在一种实施方式中,将所述位置参数进行赋值,包括:
风管、桥架底绝对标高赋值,具体包括:
采用第一String from Object节点,所述第一String from Object节点的str输出端连接第一String.IndexOf节点的str输入端;
所述第一String.IndexOf节点的search for输入端连接第五Code Block节点的输出端;
所述第五Code Block节点中设置参数“.”;
所述第一String.IndexOf节点的index输出端连接加运算节点的第一输入端;
所述加运算节点的第二输入端连接第六Code Block节点的输出端;
所述第六Code Block节点中设置常数4;
所述加运算节点输出端连接第一String.Remove节点的startIndex输入端;
所述第一String.Remove节点的count输入端连接第七Code Block节点的输出端;
所述第七Code Block节点中设置常数3;
所述第一String.Remove节点的str输出端连接第八Code Block节点的输入端;
所述第八Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第八Code Block节点的输入端输入数据;
第一Element.SetParameterValueByName节点的value输入端连接所述第八CodeBlock节点的输出端;
parameterName输入端连接第九Code Block节点的输出端;
element输入端连接所述第一List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第一Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十Code Block节点的输出端;
所述第十Code Block节点中设置“B.L.”。
在一种实施方式中,将所述位置参数进行赋值,包括:
水管中心绝对标高赋值,具体包括:
采用第二String from Object节点,所述第二String from Object节点的str输出端连接第二String.IndexOf节点的str输入端;
所述第二String.IndexOf节点的search for输入端连接第十一Code Block节点的输出端;
所述第十一Code Block节点中设置参数“.”;
所述第二String index of节点的index输出端连接加运算节点的第二输入端;
所述加运算节点的第二输入端连接第十二Code Block节点的输出端;
所述第十二Code Block节点中设置常数4;
所述加运算节点输出端连接第二String.Remove节点的startIndex输入端;
所述第二String.Remove节点的count输入端连接第十三Code Block节点的输出端;
所述第十三Code Block节点中设置常数3;
所述第二String.Remove节点的str输出端连接第十四Code Block节点的输入端;
所述第十四Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第十三Code Block节点的输入端输入数据;
第二Element.SetParameterValueByName节点的value输入端连接所述第十四Code Block节点的输出端;
parameterName输入端连接第十五Code Block节点的输出端;
element输入端连接第二List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第二Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十六Code Block节点的输出端;
所述第十六Code Block节点中设置“B.L.”。
根据本公开实施例的第二方面,提供一种基于Dynamo辅助出图装置,包括:
确定模块,基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;
对于任意的一个目标零件,确定所述目标零件的位置参数值;
出图模块,用于根据所述位置参数值进行出图;
所述目标零件包括:水管、风管和桥架;
所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值;
确定模块,用于在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;
如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为运行所述可执行指令以实现上述方法的步骤。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现上述方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;对于任意的一个目标零件,确定所述目标零件的位置参数值;根据所述位置参数值进行出图;在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;确定所述水管的目标点的位置参数值;出图时,根据所述目标点的位置参数值进行出图;如果所述水管垂直于地面,则进行垂直标记;出图时,根据所述垂直标记进行出图。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种基于Dynamo辅助出图方法的流程图;
图2是根据一示例性实施例示出的一种确定目标构件的流程示意图;
图3是根据一示例性实施例示出的一种判断水管是否垂直的流程示意图;
图4是根据一示例性实施例示出的一种水管中心绝对标高提取方法的流程图;
图5是根据一示例性实施例示出的一种风管、桥架底绝对标高提取方法的流程图;
图6是根据一示例性实施例示出一种绝对标高参数赋值的流程图;
图7是根据一示例性实施例示出一种基于Dynamo确定位置参数辅助出图装置的结构示意图;
图8是根据一示例性实施例示出一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
本申请提出了一种基于Dynamo辅助出图方法,参见附图1所示的一种基于Dynamo辅助出图方法的流程图;该方法可以包括以下的步骤:
步骤S101中,基于预先设定的Dynamo程序确定BIM三维模型中的目标零件。
在本实施例中,BIM三维模型为机电管线三维模型,其中,目标零件包括水管、风管及桥架。
参见附图2,上述的Categories节点包括第一Categories节点,第二Categories节点,第三Categories节点。
其中,第一Categories节点,用于确定水管;第二Categories节点用于确定风管第三Categories节点用于确定桥架。
上述的第一Categories节点、第二Categories节点和第三Categories节点的输出端分别连接了ListCreate节点的item0输入端、item1输入端和item2输入端。
该ListCreate节点的list输出端连接了AllElementsofCategory节点的Category输入端。
步骤S102中,对于任意的一个目标零件,确定所述目标零件的位置参数值。
在本实施例中,所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值。
可以采用预先设定的dynamo程序确定每个目标零件的上述的位置参数。
通过上述的预先设定的dynamo程序,可以快速的获取每个目标零件的位置参数,与相关技术中的人工肉眼逐个获取位置参数进行相比,可以显著提高工作效率。
步骤S103中,根据所述位置参数值进行出图。
在本实施例中,可以根据上述的位置参数进行出图操作,出图时,可以把每个目标零件的附近标注该目标零件的位置参数。
步骤S102中,确定所述目标零件的位置参数值,包括:
在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;
如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图。
在本实施例中,出图时,如果某个目标零件为垂直的,则可以在该目标零件附近标注出垂直标记,而不需要标注位置参数。
在上述的技术方案中,可以采用预先设定的dynamo程序确定每个目标零件的上述的位置参数。通过上述的预先设定的dynamo程序,可以快速的获取每个目标零件的位置参数,与相关技术中的人工肉眼逐个获取位置参数进行相比,可以显著提高出图效率。
参见附图3,
在本实施例中,可以采用Element.GetLocation节点,该Element.GetLocation节点的element输入端连接了上述的All Elements of Category节点的输出端,Geometry输出端连接了上述的Line.Direction节点的line输入端。
采用向量平行判断Vector.IsParallel节点判断所述水管的线方向向量与Z轴向量是否平行。
在本实施例中,所述向量平行判断Vector.IsParallel节点的第一输入端连接所述线方向节点的Vector输出端,用于输入线方向向量,第二输入端输入Z轴向量。
具体的,可以采用Vector.ZAxis节点确定Z轴向量,该Vector.ZAxis节点的输出端连接了上述的Vector.IsParallel节点的other输入端。
如果所述线方向向量与所述Z轴向量平行,则确定所述水管垂直于地面;
如果所述线方向向量与所述Z轴向量不平行,则确定所述水管不垂直于地面。
在本实施例中,线方向向量与所述Z轴向量不平行可以包括以下两种方式,一种方式为,线方向向量与水平面平行,水管水平;一种方式为,线方向向量与水平面有夹角,夹角小于90度,水管倾斜。
一般的,在实际的工程场景中,线方向向量与水平面平行比较多。此时,水管是水平的,可以确定水平水管的标高。
如果水管是倾斜的,仍然可以确定水管中的某个固定目标点的标高。上述的固定目标点可以为该倾斜水管的中点。
参见附图4,如果所述水管垂直于地面,则采用Element.SetParameterByName节点对所述水管进行垂直标记,具体包括:
采用第一Code Block节点,所述第一Code Block节点的输出端连接所述Element.SetParameterByName节点的parameterName输入端;
所述第一Code Block节点中,设置BL与CL标识;
采用第二Code Block节点,所述第二Code Block节点的输出端连接所述
Element.SetParameterByName节点的Value输入端;
所述第二Code Block节点中,设置垂直标记。
其中,垂直标记可以为英文描述:Is Vertical。同理,对于风管垂直于地面的情况,也可以采用上述结构的Dynamo程序来进行设置垂直标记。
在一种实施方式中,如果所述水管不垂直于地面,则采用曲线上目标点辅助参数Curve.PointAtParameter节点确定所述水管的目标点。
所述曲线上目标点辅助参数Curve.PointAtParameter节点的Point输出端连接所述Point.Z节点的输入端。
曲线上目标点辅助参数Curve.PointAtParameter节点的param输入端输入位目标点位置常数,curve输入端连接上述的List.FilterByBoolMask节点的out输出端。
上述的目标点位置常数可以为0.5,表明的是水管的中点。当然,也可以根据需要设定为其他的值。
采用Point.Z节点确定所述目标点的Z方向的绝对标高。
采用第三Code Block节点对所述目标点的Z方向的绝对标高进行单位换算。
其中,单位换算的计算公式为,B=Z/1000。
第三Code Block节点的输入端连接了上述的Point.Z节点的输出端。
在一种实施方式中,所述目标点为所述水管的中点、起始点和终点。
所述目标点辅助参数确定节点包括:第一目标点辅助参数确定节点、第二目标点辅助参数确定节点和第三目标点辅助参数确定节点。
上述第一目标点辅助参数确定节点用于确定上述的中点。
所述第一目标点辅助参数确定节点的参数设置端设置的参数为0.5。
上述第二目标点辅助参数确定节点用于确定上述的起始点。
上述第二目标点辅助参数确定节点的参数设置端设置的参数为0。
上述第三目标点辅助参数确定节点用于确定上述的终点。
上述第三目标点辅助参数确定节点的参数设置端设置的参数为1。
参见附图5,确定所述目标零件的位置参数值,可以包括以下步骤:
采用第一Element.GetParameterValueByName节点确定所述风管、桥架的底部的绝对标高。
其中,上述的第一Element.GetParameterValueByName节点的parameter输入端输入“高度”。
上述的第一Element.GetParameterValueByName节点的输出端连接了第四CodeBlock节点的h输入端。
其中,上述的h为上述的风管、桥架的高度。
该第四Code Block节点的Z输入端输入Z值。
其中,Z值为该风管、桥架的中心标高;
该第四Code Block节点中设定的计算公式为:B=(Z-h/2)/1000。
其中,B为该风管、桥架的底部标高。该计算公式适用于风管、桥架水平的情况。
所述第一Element.GetParameterValueByName节点的element输入端连接第一List.FilterByBoolMask节点的out输出端。
所述第一List.FilterByBoolMask节点的list输入端连接了AllElementsofCategory节点的输出端。
所述第一List.FilterByBoolMask节点的mask输入端连接Vector.IsParallel节点的bool输出端。
第一List.FilterByBoolMask节点的in输出端,连接垂直标记设置单元,垂直标记设置单元的结构与上述的水管的垂直标记单元的结构相同。
在一种实施方式中,参见附图6,将所述位置参数进行赋值,包括:
风管、桥架底绝对标高赋值,具体包括:
采用第一String from Object节点,所述第一String from Object节点的str输出端连接第一String.IndexOf节点的str输入端;
所述第一String.IndexOf节点的search for输入端连接第五Code Block节点的输出端;
所述第五Code Block节点中设置参数“.”;
所述第一String.IndexOf节点的index输出端连接加运算节点的第一输入端;
所述加运算节点的第二输入端连接第六Code Block节点的输出端;
所述第六Code Block节点中设置常数4;
所述加运算节点输出端连接第一String.Remove节点的startIndex输入端;
所述第一String.Remove节点的count输入端连接第七Code Block节点的输出端;
所述第七Code Block节点中设置常数3;
所述第一String.Remove节点的str输出端连接第八Code Block节点的输入端;
所述第八Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第八Code Block节点的输入端输入数据;
第二Element.SetParameterValueByName节点的value输入端连接所述第八CodeBlock节点的输出端;
parameterName输入端连接第九Code Block节点的输出端;
element输入端连接所述第一List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第一Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十Code Block节点的输出端;
所述第十Code Block节点中设置“B.L.”。
在一种实施方式中,将所述位置参数进行赋值,包括:
水管中心绝对标高赋值,具体包括:
采用第二String from Object节点,所述第二String from Object节点的str输出端连接第二String.IndexOf节点的str输入端;
所述第二String.IndexOf节点的searchFor输入端连接第十一Code Block节点的输出端;
所述第十一Code Block节点中设置参数“.”;
所述第二String.IndexOf节点的index输出端连接加运算节点的第二输入端;
所述加运算节点的第二输入端连接第十二Code Block节点的输出端;
所述第十二Code Block节点中设置常数4;
所述加运算节点输出端连接第二String.Remove节点的startIndex输入端;
所述第二String.Remove节点的count输入端连接第十三Code Block节点的输出端;
所述第十三Code Block节点中设置常数3;
所述第二String.Remove节点的str输出端连接第十四Code Block节点的输入端;
所述第十四Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第十三Code Block节点的输入端输入数据;
第四Element.SetParameterValueByName节点的value输入端连接所述第十四Code Block节点的输出端;
parameterName输入端连接第十五Code Block节点的输出端;
第十五Code Block节点中设定“C.L.”。
element输入端连接第二List.FilterByBoolMask节点的out输出端;
第五Element.GetParameterValueByName节点的element输入端连接所述第四Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十六Code Block节点的输出端;
所述第十六Code Block节点中设置“B.L.”。
第二方面,本申请提出了一种基于Dynamo确定位置参数辅助出图装置,参见附图7所示的一种基于Dynamo确定位置参数辅助出图装置的示意图包括:
确定模块71,基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;
对于任意的一个目标零件,确定所述目标零件的位置参数值;
出图模块72,用于根据所述位置参数值进行出图;
所述目标零件包括:水管、风管和桥架;
所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值;
确定模块,用于在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;
如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图。
在一种实施方式中,出图模块72还用于,如果所述水管垂直于地面,则采用Element.SetParameterByName节点对所述水管进行垂直标记,具体包括:
采用第一Code Block节点,所述第一Code Block节点的输出端连接所述Element.SetParameterByName节点的parameterName输入端;
所述第一Code Block节点中,设置BL与CL标识;
采用第二Code Block节点,所述第二Code Block节点的输出端连接所述
Element.SetParameterByName节点的Value输入端;
所述第二Code Block节点中,设置垂直标记。
在一种实施方式中,出图模块72还用于,采用Point.Z节点确定所述目标点的Z方向的绝对标高;
所述曲线上目标点辅助参数确定节点的输出端连接所述Point.Z节点的输入端;
采用第三Code Block节点对所述目标点的Z方向的绝对标高进行单位换算;
其中,单位换算的计算公式为,B=Z/1000。
在一种实施方式中,出图模块72还用于,所述目标点为所述水管的中点、起始点和终点;
所述目标点辅助参数确定节点包括:第一目标点辅助参数确定节点、第二目标点辅助参数确定节点和第三目标点辅助参数确定节点;
对于所述中点,所述第一目标点辅助参数确定节点的参数设置端设置的参数为0.5;
对于所述起始点,所述第二目标点辅助参数确定节点的参数设置端设置的参数为0;
对于所述终点,所述第三目标点辅助参数确定节点的参数设置端设置的参数为1。
在一种实施方式中,出图模块72还用于,确定所述目标零件的位置参数值,包括:
采用第一Element.GetParameterValueByName节点确定所述风管、桥架的底部的绝对标高;
其中,parameter输入端输入“高度”;
上述的第一Element.GetParameterValueByName节点的输出端连接了第四CodeBlock节点的h输入端。
其中,上述的h为上述的风管、桥架的高度。
第四Code Block节点的Z输入端输入Z值。
其中,Z值为该风管、桥架的中心标高;
该第四Code Block节点中设定的计算公式为:B=(Z-h/2)/1000。
其中,B为该风管、桥架的底部标高。该计算公式适用于风管、桥架水平的情况。
所述第一Element.GetParameterValueByName节点的element输入端连接第一List.FilterByBoolMask节点的out输出端;
所述第一List.FilterByBoolMask节点的list输入端连接了AllElementsofCategory节点的输出端;
所述第一List.FilterByBoolMask节点的mask输入端连接Vector.IsParallel节点的bool输出端。
在一种实施方式中,出图模块72还用于,采用第一String from Object节点,所述第一String from Object节点的str输出端连接第一String.IndexOf节点的str输入端;
所述第一String.IndexOf节点的search for输入端连接第五Code Block节点的输出端;
所述第五Code Block节点中设置参数“.”;
所述第一String.IndexOf节点的index输出端连接加运算节点的第一输入端;
所述加运算节点的第二输入端连接第六Code Block节点的输出端;
所述第六Code Block节点中设置常数4;
所述加运算节点输出端连接第一String.Remove节点的startIndex输入端;
所述第一String.Remove节点的count输入端连接第七Code Block节点的输出端;
所述第七Code Block节点中设置常数3;
所述第一String.Remove节点的str输出端连接第八Code Block节点的输入端;
所述第八Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第八Code Block节点的输入端输入数据;
第一Element.SetParameterValueByName节点的value输入端连接所述第八CodeBlock节点的输出端;
parameterName输入端连接第九Code Block节点的输出端;
element输入端连接所述第一List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第一Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十Code Block节点的输出端;
所述第十Code Block节点中设置“B.L.”。
在一种实施方式中,出图模块72还用于,采用第二String from Object节点,所述第二String from Object节点的str输出端连接第二String.IndexOf节点的str输入端;
所述第二String indexof节点的search for输入端连接第十一Code Block节点的输出端;
所述第十一Code Block节点中设置参数“.”;
所述第二String.IndexOf节点的index输出端连接加运算节点的第二输入端;
所述加运算节点的第二输入端连接第十二Code Block节点的输出端;
所述第十二Code Block节点中设置常数4;
所述加运算节点输出端连接第二String.Remove节点的startIndex输入端;
所述第二String.Remove节点的count输入端连接第十三Code Block节点的输出端;
所述第十三Code Block节点中设置常数3;
所述第二String.Remove节点的str输出端连接第十四Code Block节点的输入端;
所述第十四Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第十三Code Block节点的输入端输入数据;
第二Element.SetParameterValueByName节点的value输入端连接所述第十四Code Block节点的输出端;
parameterName输入端连接第十五Code Block节点的输出端;
element输入端连接第二ListFilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第二Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十六Code Block节点的输出端;
所述第十六Code Block节点中设置“B.L.”。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,本申请还提出了一种电子设备,参见附图8,该电子设备包括:处理器81;用于存储处理器可执行指令的存储器82;其中,所述处理器81被配置为运行所述可执行指令以实现上述任一项所述的方法。
第四方面,本申请提出了一种非临时性计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现上述中任一项所述方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的申请的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所申请的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (9)

1.一种基于Dynamo辅助出图方法,其特征在于,包括:
基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;
对于任意的一个目标零件,确定所述目标零件的位置参数值;
根据所述位置参数值进行出图;
所述目标零件包括:水管、风管和桥架;
所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值;
确定所述目标零件的位置参数值,包括:
在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图;
采用Point.Z节点确定所述目标点的Z方向的绝对标高;
所述曲线上目标点辅助参数确定节点的输出端连接所述Point.Z节点的输入端;
采用第三Code Block节点对所述目标点的Z方向的绝对标高进行单位换算;
其中,单位换算的计算公式为,B=Z/1000。
2.根据权利要求1所述的基于Dynamo辅助出图方法,其特征在于,
所述向量平行判断Vector.isParallel节点的第一输入端连接所述线方向节点的输出端,用于输入线方向向量;
第二输入端输入Z轴向量;
如果所述线方向向量与所述Z轴向量平行,则确定所述水管垂直于地面;
如果所述线方向向量与所述Z轴向量不平行,则确定所述水管不垂直于地面。
3.根据权利要求2所述的基于Dynamo辅助出图方法,其特征在于,
如果所述水管垂直于地面,则采用Element.SetParameterByName节点对所述水管进行垂直标记,具体包括:
采用第一Code Block节点,所述第一Code Block节点的输出端连接所述Element.SetParameterByName节点的parameterName输入端;
所述第一Code Block节点中,设置BL与CL标识;
采用第二Code Block节点,所述第二Code Block节点的输出端连接所述Element.SetParameterByName节点的Value输入端;
所述第二Code Block节点中,设置垂直标记。
4.根据权利要求3所述的基于Dynamo辅助出图方法,其特征在于,
所述目标点为所述水管的中点、起始点和终点;
所述目标点辅助参数确定节点包括:第一目标点辅助参数确定节点、第二目标点辅助参数确定节点和第三目标点辅助参数确定节点;
对于所述中点,所述第一目标点辅助参数确定节点的参数设置端设置的参数为0.5;
对于所述起始点,所述第二目标点辅助参数确定节点的参数设置端设置的参数为0;
对于所述终点,所述第三目标点辅助参数确定节点的参数设置端设置的参数为1。
5.根据权利要求4所述的基于Dynamo辅助出图方法,其特征在于,
确定所述目标零件的位置参数值,包括:
采用第一Element.GetParameterValueByName节点确定所述风管、桥架的底部的绝对标高;
其中,parameter输入端输入“高度”;
所述第一Element.GetParameterValueByName节点的输出端连接了第四Code Block节点的h输入端;
其中,h为上述的风管、桥架的高度;
第四Code Block节点的Z输入端输入Z值;
其中,Z值为该风管、桥架的中心标高;
所述第四Code Block节点中设定的计算公式为:B=(Z-h/2)/1000;
其中,B为该风管、桥架的底部标高;
所述第一Element.GetParameterValueByName节点的element输入端连接第一List.FilterByBoolMask节点的out输出端;
所述第一List.FilterByBoolMask节点的list输入端连接了AllElementsof Category节点的输出端;
所述第一List.FilterByBoolMask节点的mask输入端连接Vector.IsParallel节点的bool输出端。
6.根据权利要求5所述的基于Dynamo辅助出图方法,其特征在于,
将所述位置参数进行赋值,包括:
风管、桥架底绝对标高赋值,具体包括:
采用第一String from Object节点,所述第一String from Object节点的str输出端连接第一String.IndexOf节点的str输入端;
所述第一String.IndexOf节点的searchFor输入端连接第五Code Block节点的输出端;
所述第五Code Block节点中设置参数“.”;
所述第一String.IndexOf节点的index输出端连接加运算节点的第一输入端;
所述加运算节点的第二输入端连接第六Code Block节点的输出端;
所述第六Code Block节点中设置常数4;
所述加运算节点输出端连接第一String.Remove节点的startIndex输入端;
所述第一String.Remove节点的count输入端连接第七Code Block节点的输出端;
所述第七Code Block节点中设置常数3;
所述第一String.Remove节点的str输出端连接第八Code Block节点的输入端;
所述第八Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第八Code Block节点的输入端输入数据;
第一Element.SetParameterValueByName节点的value输入端连接所述第八CodeBlock节点的输出端;
parameterName输入端连接第九Code Block节点的输出端;
element输入端连接所述第一List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第一Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十Code Block节点的输出端;
所述第十Code Block节点中设置“B.L.”。
7.根据权利要求6所述的基于Dynamo辅助出图方法,其特征在于,
将所述位置参数进行赋值,包括:
水管中心绝对标高赋值,具体包括:
采用第二String from Object节点,所述第二String from Object节点的str输出端连接第二String.IndexOf节点的str输入端;
所述第二String.IndexOf节点的searchFor输入端连接第十一Code Block节点的输出端;
所述第十一Code Block节点中设置参数“.”;
所述第二String.IndexOf节点的index输出端连接加运算节点的第二输入端;
所述加运算节点的第二输入端连接第十二Code Block节点的输出端;
所述第十二Code Block节点中设置常数4;
所述加运算节点输出端连接第二String.Remove节点的startIndex输入端;
所述第二String.Remove节点的count输入端连接第十三Code Block节点的输出端;
所述第十三Code Block节点中设置常数3;
所述第二String.Remove节点的str输出端连接第十四Code Block节点的输入端;
所述第十四Code Block节点中设定B=“B.L.”+“+”+C;
其中,C为所述第十三Code Block节点的输入端输入数据;
第二Element.SetParameterValueByName节点的value输入端连接所述第十四CodeBlock节点的输出端;
parameterName输入端连接第十五Code Block节点的输出端;
element输入端连接第二List.FilterByBoolMask节点的out输出端;
第三Element.GetParameterValueByName节点的element输入端连接所述第二Element.SetParameterValueByName节点的Element输出端;
parameterName输入端连接第十六Code Block节点的输出端;
所述第十六Code Block节点中设置“B.L.”。
8.一种基于Dynamo辅助出图装置,其特征在于,包括:
确定模块,基于预先设定的Dynamo程序确定BIM三维模型中的目标零件;
对于任意的一个目标零件,确定所述目标零件的位置参数值;
出图模块,用于根据所述位置参数值进行出图;
所述目标零件包括:水管、风管和桥架;
所述位置参数值包括:标高,和/或者,水平面内的横轴和纵轴坐标值;
确定模块,用于在所述目标零件为所述水管的情况下,对于任意的一条水管,采用线方向节点确定所述水管的线方向向量;采用向量平行判断Vector.isParallel节点判断所述水管的线方向向量与Z轴向量是否平行,以判断所述水管是否垂直于地面;
如果所述水管不垂直于地面,则采用曲线上目标点辅助参数确定节点确定所述水管的目标点;
确定所述目标点的位置参数值;
出图时,根据所述目标点的位置参数值进行出图;
如果所述水管垂直于地面,则进行垂直标记;
出图时,根据所述垂直标记进行出图。
9.一种电子设备,其特征在于,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为运行所述可执行指令以实现权利要求1至7任一项方法的步骤。
CN202311092888.1A 2023-08-29 2023-08-29 基于Dynamo辅助出图方法、装置和设备 Active CN116822106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311092888.1A CN116822106B (zh) 2023-08-29 2023-08-29 基于Dynamo辅助出图方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311092888.1A CN116822106B (zh) 2023-08-29 2023-08-29 基于Dynamo辅助出图方法、装置和设备

Publications (2)

Publication Number Publication Date
CN116822106A CN116822106A (zh) 2023-09-29
CN116822106B true CN116822106B (zh) 2023-12-05

Family

ID=88114837

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311092888.1A Active CN116822106B (zh) 2023-08-29 2023-08-29 基于Dynamo辅助出图方法、装置和设备

Country Status (1)

Country Link
CN (1) CN116822106B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010175756A (ja) * 2009-01-29 2010-08-12 Zenrin Co Ltd 路面標示地図生成方法及び路面標示地図生成装置
CN110851956A (zh) * 2019-10-11 2020-02-28 南昌大学 一种建设工程管道施工定位信息自动化计算、标注及出图方法
CN114925425A (zh) * 2022-05-17 2022-08-19 中铁十局集团有限公司 一种参数化创建公路桥梁模型的方法
CN115688232A (zh) * 2022-10-24 2023-02-03 上海建工四建集团有限公司 基于revit的木工翻样出图方法
CN116305384A (zh) * 2022-09-07 2023-06-23 安徽建工建筑工业有限公司 基于Revit与Dynamo的深化构件详图出图方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112950508B (zh) * 2021-03-12 2022-02-11 中国矿业大学(北京) 一种基于计算机视觉的排水管道视频数据修复方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010175756A (ja) * 2009-01-29 2010-08-12 Zenrin Co Ltd 路面標示地図生成方法及び路面標示地図生成装置
CN110851956A (zh) * 2019-10-11 2020-02-28 南昌大学 一种建设工程管道施工定位信息自动化计算、标注及出图方法
CN114925425A (zh) * 2022-05-17 2022-08-19 中铁十局集团有限公司 一种参数化创建公路桥梁模型的方法
CN116305384A (zh) * 2022-09-07 2023-06-23 安徽建工建筑工业有限公司 基于Revit与Dynamo的深化构件详图出图方法
CN115688232A (zh) * 2022-10-24 2023-02-03 上海建工四建集团有限公司 基于revit的木工翻样出图方法

Also Published As

Publication number Publication date
CN116822106A (zh) 2023-09-29

Similar Documents

Publication Publication Date Title
CN110750840B (zh) 基于三维模型自动生成二维零件视图的方法和装置
CN110782505B (zh) 房间墙体绘制方法及装置
CN110458772B (zh) 一种基于图像处理的点云滤波方法、装置和存储介质
CN113687629B (zh) 激光cam加工的圆弧直线拟合方法、系统、设备及存储介质
CN116822106B (zh) 基于Dynamo辅助出图方法、装置和设备
CN109284857B (zh) 基于配电房平面布置的配电房规划方法及相关设备
CN113821860A (zh) 在钢筋图元上确定断点的方法、装置、设备及存储介质
CN110704898B (zh) 老虎窗模型与屋架梁模型之间连接节点放置方法和产品
CN112861240A (zh) 二次构件的算量方法、装置、计算机设备及可读存储介质
CN111723607A (zh) 天线工程参数确定方法及装置
CN111160334B (zh) 标注归属确认方法、装置和设备
CN111060127B (zh) 车辆起点定位方法、装置、计算机设备和存储介质
CN114186190A (zh) 坐标转换矩阵的计算方法、装置、设备及可读存储介质
CN112085791A (zh) 施工设计图纸自动定位方法、装置、设备以及存储介质
CN108985160B (zh) 一种确定指针式仪表读数的方法和装置
CN117010925B (zh) 一种工程材料自动配价方法、系统、设备及存储介质
CN113609632B (zh) 电力线补点的确定方法、装置及服务器
CN115270684B (zh) 一种电路绘制方法、装置、可读介质及电子设备
CN115858519B (zh) 一种dem平整方法和装置
CN112950748B (zh) 建筑图纸拼接方法及相关装置
CN112926158B (zh) 一种工业机械设计场景下基于参数微调的通用设计方法
CN111814949B (zh) 一种数据标注方法、装置及电子设备
CN117710532A (zh) 窗户图处理方法、装置、电子设备以及存储介质
CN116662272A (zh) 大范围地形数据处理方法、装置及电子设备
CN118049984A (zh) 车辆引导线生成方法、装置、设备、存储介质及车辆

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
GR01 Patent grant
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chai Tingting

Inventor after: Dong Yupeng

Inventor after: Cai Meng

Inventor after: Sun Weifeng

Inventor after: Wang Gang

Inventor after: Du Feng

Inventor after: Han Dezhi

Inventor after: Huang Weiai

Inventor after: Lu Haichao

Inventor after: Zhang Shaodong

Inventor after: Li Yanqiang

Inventor after: Kong Yuan

Inventor before: Chai Tingting

Inventor before: Dong Yupeng

Inventor before: Cai Meng

Inventor before: Sun Weifeng

Inventor before: Wang Gang

Inventor before: Du Feng

Inventor before: Han Dezhi

Inventor before: Huang Weiai

Inventor before: Lu Haichao

Inventor before: Zhang Shaodong

Inventor before: Li Yanqiang

Inventor before: Kong Yuan