CN115168948A - 基于Revit的抗滑桩建模方法、装置及电子设备 - Google Patents
基于Revit的抗滑桩建模方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115168948A CN115168948A CN202210770658.5A CN202210770658A CN115168948A CN 115168948 A CN115168948 A CN 115168948A CN 202210770658 A CN202210770658 A CN 202210770658A CN 115168948 A CN115168948 A CN 115168948A
- Authority
- CN
- China
- Prior art keywords
- pile
- modeling
- slide
- revit
- resistant
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Architecture (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种基于Revit的抗滑桩建模方法、装置、电子设备及计算机可读存储介质;方法包括:在Revit内加载抗滑桩建模插件;基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。通过本申请,能够实现利用Revit实现抗滑桩的快速建模。
Description
技术领域
本申请涉及三维建模技术,尤其涉及一种基于Revit的抗滑桩建模方法、装置及电子设备。
背景技术
随着建筑信息模型(BIM,Building Information Modeling)应用技术的普及,越来越多的工程技术人员逐步掌握BIM软件的应用。Revit作为核心的BIM软件,同样存在软件暂时没有开发出的功能。但Revit可编程的API接口,为广大软件开发人员提供技术支持。然而,Revit自身的结构建模功能有限,目前还无法支持抗滑桩的建模。
发明内容
本申请实施例提供一种基于Revit的抗滑桩建模方法、装置、电子设备及计算机可读存储介质,能够实现利用Revit实现抗滑桩的快速建模。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种基于Revit的抗滑桩建模方法,包括:
在Revit内加载抗滑桩建模插件;
基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
上述方案中,所述建模参数包括抗滑桩的尺寸参数,所述基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,包括:
基于所述特征参数和所述尺寸参数进行抗滑桩建模,得到抗滑桩模型。
上述方案中,所述特征参数包括抗滑桩的形状特征参数及桩位线的长度,所述建模参数包括抗滑桩的尺寸参数及桩间距参数,所述基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,包括:
基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定多条桩位线中每一条桩位线上抗滑桩的待建模数量;
基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型。
上述方案中,所述方法还包括:
基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定每一条桩位线上抗滑桩的起始建模点;
所述基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型,包括:
基于所述起始建模点、所述形状特征参数及所述待建模数量,在各桩位线上依次构建相应数量的抗滑桩模型。
上述方案中,所述基于所述桩位线的长度、所述尺寸参数,确定每一条桩位线上抗滑桩的起始建模点,包括:
确定多条桩位线中的第一条桩位线;
基于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定第一条桩位线上抗滑桩的起始建模点;
针对多条桩位线中的第N条桩位线,执行以下操作:
基于所述桩间距参数及第N-1条桩位线上抗滑桩的起始建模点,确定第N条桩位线上抗滑桩的起始建模点,所述N为大于或等于2的正整数。
上述方案中,所述在Revit内加载抗滑桩建模插件,包括:
在Revit内呈现Revit的操作界面,在所述操作界面内呈现外部插件触发功能项;
响应于针对所述外部插件触发功能项中针对抗滑桩建模插件的选择操作,加载抗滑桩建模插件。
上述方案中,所述方法还包括:
呈现模型展示界面,并在所述模型展示界面内呈现抗滑桩模型。
本申请实施例提供一种基于Revit的抗滑桩建模装置,包括:
加载模块,用于在Revit内加载抗滑桩建模插件;
特征参数获得模块,用于基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
建模参数获得模块,用于呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
建模模块,用于基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的基于Revit的抗滑桩建模方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的基于Revit的抗滑桩建模方法。
本申请实施例通过在Revit内加载抗滑桩建模插件;基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,实现了利用Revit进行抗滑桩的快速建模。
附图说明
图1是本申请实施例提供的电子设备100的一个可选的结构示意图;
图2是本申请实施例提供的基于Revit的抗滑桩建模方法的一个可选的流程示意图;
图3是本申请实施例提供的步骤201的一个可选的细化流程示意图;
图4是本申请实施例提供的Revit的操作界面的一个可选的示意图;
图5是本申请实施例提供的建模参数输入界面的一个可选的示意图;
图6是本申请实施例提供的步骤204的一个可选的细化流程示意图;
图7是本申请实施例提供的抗滑桩建模插件的一个可选的开发流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)Revit是Autodesk公司一套系列软件的名称。Revit系列软件是为建筑信息模型(BIM)构建的,可帮助建筑设计师设计、建造和维护质量更好、能效更高的建筑。Revit是我国建筑业BIM体系中使用最广泛的软件之一。
2)Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
本申请实施例提供一种基于Revit的抗滑桩建模方法、装置、电子设备和计算机可读存储介质,能够实现利用Revit实现抗滑桩的快速建模。
首先对本申请实施例提供的用于实施上述基于Revit的抗滑桩建模方法的电子设备进行说明。参见图1,图1是本申请实施例提供的电子设备100的一个可选的结构示意图,在实际应用中,电子设备100可以实施为终端或服务器。其中,终端可以是笔记本电脑,平板电脑,台式计算机,智能手机,专用消息设备,便携式游戏设备,智能音箱,智能手表等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)服务、以及大数据和人工智能平台等基础云计算服务的云服务器。图1所示的电子设备100包括:至少一个处理器101、存储器105、至少一个网络接口102和用户接口103。电子设备100中的各个组件通过总线系统104耦合在一起。可理解,总线系统104用于实现这些组件之间的连接通信。总线系统104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图1中将各种总线都标为总线系统104。
处理器101可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口103包括使得能够呈现媒体内容的一个或多个输出装置1031,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口103还包括一个或多个输入装置1032,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器105可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器105可选地包括在物理位置上远离处理器101的一个或多个存储设备。
存储器105包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器105旨在包括任意适合类型的存储器。
在一些实施例中,存储器105能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,本申请实施例中,存储器105中存储有操作系统1051、网络通信模块1052、呈现模块1053、输入处理模块1054及基于Revit的抗滑桩建模装置1055;具体地,
操作系统1051,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块1052,用于经由一个或多个(有线或无线)网络接口102到达其他计算设备,示例性的网络接口102包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块1053,用于经由一个或多个与用户接口103相关联的输出装置1031(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块1054,用于对一个或多个来自一个或多个输入装置1032之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的基于Revit的抗滑桩建模装置可以采用软件方式实现,图1示出了存储在存储器105中的基于Revit的抗滑桩建模装置1055,其可以是程序和插件等形式的软件,包括以下软件模块:获得模块10551、可靠度观测值确定模块10552、模型建立模块10553、模型参数确定模块10554及代入模块10555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的基于Revit的抗滑桩建模装置可以采用硬件方式实现,作为示例,本申请实施例提供的基于Revit的抗滑桩建模装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的基于Revit的抗滑桩建模方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的基于Revit的抗滑桩建模方法。
参见图2,图2是本申请实施例提供的基于Revit的抗滑桩建模方法的一个可选的流程示意图,将结合图2示出的步骤进行说明。
步骤201,在Revit内加载抗滑桩建模插件;
步骤202,基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
步骤203,呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
步骤204,基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
需要说明的是,抗滑桩建模插件为预先导入Revit内。在实际实施时,终端在Revit内加载抗滑桩建模插件。具体地,参见图3,图3是本申请实施例提供的步骤201的一个可选的细化流程示意图,步骤201可以通过如下方式实现:
步骤301,在Revit内呈现Revit的操作界面,在所述操作界面内呈现外部插件触发功能项;
步骤302,响应于针对所述外部插件触发功能项中针对抗滑桩建模插件的选择操作,加载抗滑桩建模插件。
示例性地,参见图4,图4是本申请实施例提供的Revit的操作界面的一个可选的示意图,其中,“外部工具”即为本申请实施例的外部插件触发功能项,终端响应于针对所述外部插件触发功能项中针对抗滑桩建模插件的选择操作,加载抗滑桩建模插件。
在实际实施时,终端基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数。然后,呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数。具体地,终端在加载抗滑桩建模插件后,在Revit内呈现建模插件界面,并在建模插件界面内呈现参数输入功能项,终端响应于针对参数输入功能项的触发操作,呈现建模参数输入界面。用户则可以在建模参数输入界面内输入建模参数。参见图5,图5是本申请实施例提供的建模参数输入界面的一个可选的示意图。在实际实施时,终端响应于针对建模参数输入界面的输入操作,获得输入的建模参数。
在一些实施例中,所述建模参数包括抗滑桩的尺寸参数,所述204,可以通过如下方式实现:基于所述特征参数和所述尺寸参数进行抗滑桩建模,得到抗滑桩模型。
需要说明的是,抗滑桩的尺寸参数包括抗滑桩的桩长度、截面长度和截面宽度。示例性地,图5中示出输入的建模参数中,抗滑桩的桩长度为25m,截面长度为2200mm,截面宽度为2600mm。
在一些实施例中,所述特征参数包括抗滑桩的形状特征参数及桩位线的长度,所述建模参数包括抗滑桩的尺寸参数及桩间距参数。参见图6,图6是本申请实施例提供的步骤204的一个可选的细化流程示意图,所述步骤204,可以通过如下方式实现:
步骤601,基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定多条桩位线中每一条桩位线上抗滑桩的待建模数量;
步骤602,基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型。
需要说明的是,桩间距参数为两个相邻抗滑桩的中心之间的距离参数。示例性地,参见图5,图5中示出的输入的建模参数中,桩间距参数为6m。在实际实施时,终端基于桩位线的长度、抗滑桩的尺寸参数及所述桩间距参数,确定多条桩位线中每一条桩位线上抗滑桩的待建模数量,然后基于形状特征参数及桩间距参数,在每一条桩位线上构建相应数量的抗滑桩模型。
在一些实施例中,在步骤602之前,还可以执行:基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定每一条桩位线上抗滑桩的起始建模点。相应地,步骤602通过如下方式实现:基于所述起始建模点、所述形状特征参数及所述待建模数量,在各桩位线上依次构建相应数量的抗滑桩模型。
在实际实施时,步骤602可以通过如下方式实现:确定多条桩位线中的第一条桩位线;基于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定第一条桩位线上抗滑桩的起始建模点;针对多条桩位线中的第N条桩位线,执行以下操作:基于所述桩间距参数及第N-1条桩位线上抗滑桩的起始建模点,确定第N条桩位线上抗滑桩的起始建模点,所述N为大于或等于2的正整数。
这里,多条桩位线中的第一条桩位线为多条桩位线中位于最外层的一条桩位线。终端基于桩位线的长度、抗滑桩的尺寸参数及桩间距参数,确定第一条桩位线上抗滑桩的起始建模点。接着,终端基于所述桩间距参数及第一条桩位线上抗滑桩的起始建模点,确定第二条桩位线上抗滑桩的起始建模点。然后基于第二条桩位线上抗滑桩的起始建模点确定第三条桩位线上抗滑桩的起始建模点。对于第三条桩位线以后的桩位线采用上述同样的方式进行起始建模点的确定,在此不作赘述。
在实际实施时,在步骤204之后,还执行以下操作:呈现模型展示界面,并在所述模型展示界面内呈现抗滑桩模型。
具体地,终端在建模完成后,将抗滑桩模型通过模型展示界面进行展示,以供用户浏览。
本申请实施例中,抗滑桩建模为预先开发并导入Revit。具体地,参见图7,图7是本申请实施例提供的抗滑桩建模插件的一个可选的开发流程示意图。
步骤701,新建项目Visio Studio创建类库;
步骤702,引用Revit接口定义文件RevitAPI.dll和RevitAPlui.dll及其他系统文件;
步骤703,引用RevitAPI和RevitAPIU1命名空间;
步骤704,引用Windows窗体命令命名空间及其他命名空间;
步骤705,为命令添加属性Transaction(TransactionMode.Manual)Regeneration(RegenerationOption.Manual)(Automatic、Manual、Readonly);
其中,步骤703和步骤704可以择一执行,若执行步骤703,则在步骤705之后执行步骤706;若执行步骤704,则在步骤705之后执行步骤709。在实际实施时,终端通过VS软件创建开发项目,引用Revit API等的接口。然后新建一个类,为命令类添加事物和更新属性为Manual,继承IExternal Application接口,从IExternal Application派生实现OnStartup()和On Shutdown()方法。
示例性地,可以通过如下方式实现抗滑桩建模插件的选项卡的建立:
using System;//以下是调库和插件,服务,文挡等
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.DB.Architecture;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.DB.Structure;
在步骤705之后,执行步骤706~步骤708或者执行步骤709~步骤711。
步骤706,新建派,从IExternalCommand接口派生,重载Execute()方法;
步骤707,引用RevitAPI和RevitAPIUl命名空间;
步骤708,判断能否生成.dll文件,若能,执行步骤712,若否,则返回步骤707;
步骤709,新建派,从ExternalApplication接口派生,重载Onstarup和Onshutdown()方法;
步骤710,引用Windows窗体命令命名空间及其他命名空间;
步骤711,判断能否生成.dll文件,若能,执行步骤712,若否,则返回步骤710;
在实际实施时,终端在外部命令(IExternal Command)接口中通过IExternalCommand的方式实现Revit功能的扩展,IExternal Command接口中有一个抽象函数Excute,所有的外部命令都是通过重载Excute函数来实现外部命令和Revit的接口。这里,Excute函数是外部命令的主函数,它有三个参数:输入参数command Data、输出参数message、输出参数elements。以下为外部命令实现程序代码示例:
namespace抗滑桩布置
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.Transaction Mode.Manual)]
public class Class1:IExternalCommand//定义一个外部执行接口的公共类
public Result Execute(ExternalCommandData revit,ref string message,ElementSet elements)//通过接口接收执行结果集信息
{
//获取文档
UIDocument uidoc=revit.Application.ActiveUIDocument;
Document doc=uidoc.Document;
//获取应用
Application app=revit.Application.Application;
FamilySymbol fs=null;
//过滤族类型
FilteredElementCollector types=new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol));
//找到指定组类型
foreach(FamilySymbol f in types)
{
if(f.Name=="nM")
{
fs=f;//应用附名
}
};
这里,使用double.Parse语句读取抗滑桩的尺寸。通过fin.LookupParameter命令修改抗滑桩长度、宽度和高度。采用布尔类型的值,做抗滑桩累进计算,达到批量复制抗滑桩的效果。
步骤712,加载命令,测试抗滑桩建模插件;
步骤713,判断测试是否通过,若测试通过,则结束抗滑桩建模插件的开发过程,若测试未通过,则返回步骤707或步骤710。
这里,若步骤713的前序步骤为步骤701-步骤702-步骤703-步骤705-步骤706-步骤707-步骤708-步骤712,则在测试未通过时,返回步骤707;若步骤713的前序步骤为步骤701-步骤702-步骤704-步骤705-步骤709-步骤710-步骤711-步骤712,则在测试未通过时,返回步骤710。
在实际实施时,加载命令的方式可以是通过.addin文件,还可以是通过AddinManager加载工具。通过加载命令进行抗滑桩的建模测试,以测试抗滑桩建模插件。在实际实施时,当终端加载抗滑桩建模插件后,在用户输入相关参数之后,终端自动读抗滑桩的建模参数,建模参数是进行定位点确定的基础。读取抗滑桩的尺寸参数使用double.Parse语句,获取抗滑桩长度时,可以通过位置线端点坐标的差来确定。以下为参数控制命令实现程序代码示例:
Form1 f1=new抗滑桩布置.Form1();
f1.ShowDialog();
if(f1.sw)
{
//桩参数,长宽高,间距
double H=double.Parse(f1.tBH.Text)*1000/304.8;
double L=double.Parse(f1.tBL.Text)/304.8;
double B=double.Parse(f1.tBB.Text)/304.8;
double D=double.Parse(f1.tBD.Text)*1000/304.8;
using(Transaction tran=new Transaction(doc,"创建"))
在实际实施时,当终端获得抗滑桩的特征参数和建模参数后,对第一条桩位线进行抗滑桩的建模布置。具体地,在实际工程项目中,考虑桩位线的长度,需要测量线的长度并考虑桩间距创建抗滑桩的数量。这样就是需要通过for(inti=0;i<line.Length/D;i++)循环的形式通过线的起始点-终止点长度/桩间距求得放置抗滑桩的数量。通过的方式创建抗滑桩族类型FamilyInstance fin=doc.Create.NewFamilyInstance(xzy,fs,StructuralType.NonStructural),并通过fin.LookupParameter命令修改抗滑桩长度、宽度和高度。
以下为布置首段命令实现程序代码示例:
//布置首段代码
else
{
XYZ xyz1=uidoc.Selection.PickPoint("选择起始点");
XYZ xyz2=uidoc.Selection.PickPoint("选择末端点");
//根据两个端点建立一条边
Line line=Line.CreateBound(xyz1,xyz2);//计算边得的方向角的大小
double ar=Math.Asin(line.Direction.Y);
if(line.Direction.X<0&&line.Direction.Y<0)
{
ar=-Math.Asin(line.Direction.Y);
}
if(line.Direction.X<0&&line.Direction.Y>0)
{
ar=-Math.Asin(line.Direction.Y);
}
for(int i=0;i<line.Length/D;i++)
{
XYZ xzy=line.Evaluate(i*D/line.Length,true);
FamilyInstance fin=doc.Create.NewFamilyInstance(xzy,fs,StructuralType.NonStructural);ElementTransformUtils.RotateElement(doc,fin.Id,Line.CreateBound(xzy,xzy+new XYZ(0,0,1)),ar);//边的旋转
fin.LookupParameter("H").Set(H);
fin.LookupParameter("L").Set(L);
fin.LookupParameter("B").Set(B);
}
}
在实际实施时,当终端确定第一条桩位线的抗滑桩的布置之后,根据排序依次确定其余桩位线的抗滑桩布置。具体地,终端在Revit API中使用(Transac tion tran=newTransaction(doc,"创建"))来创建修改新的文档。使用RadioButton控件创建次线布置,当与其他单选按钮成对出现时,允许用户从一组选项中选择单个选项。也就是说,当同一个容器中(Form、Panel、GroupBox、PictureBox等)存在两个以上的单选按钮时,只能有一个被选中。但不在同一个容器中的几组单选按钮彼此不关联,是可以有多个被选中的。应用Checked属性判断选项是否被选中。该属性是一个布尔类型的值,如果被选中,Checked的值为true,否则为false。通过for(int i=0;i<line.Length/D;i++)循环的形式通过线的起始点-终止点长度/桩间距求得放置抗滑桩的数量。应用Reference re=uidoc.Selection.PickObject(ObjectType.Element)命令读取前一根线的最后跟抗滑桩。以前一根线上最后一根抗滑桩的中心为圆心,以桩间距为半径画圆,交于次线的交点作为次线的第一根抗滑桩的桩中心点。通过的方式创建抗滑桩族类型FamilyInstance fin=doc.Create.NewFamilyInstance(xzy,fs,StructuralType.NonStructural,并通过fin.LookupParameter命令修改抗滑桩长度、宽度和高度。
以下为累进计算命令实现程序代码示例:
using(Transaction tran=new Transaction(doc,"创建"))
{
tran.Start();
if(f1.radioButton2.Checked)
{
XYZ xyz1=uidoc.Selection.PickPoint("选择起始点");
XYZ xyz2=uidoc.Selection.PickPoint("选择末端点");
Reference re=uidoc.Selection.PickObject(ObjectType.Element);
FamilyInstance finSel=doc.GetElement(re.ElementId)as FamilyInstance;
XYZ xyzSel=(finSel.Location as LocationPoint).Point;
Arc arc=Arc.Create(xyzSel,D,0,2*Math.PI,new XYZ(1,0,0),new XYZ(0,1,0));
Line line1=Line.CreateBound(xyz1,xyz2);
XYZ inserXyz=IntersectionPoint(line1,arc);
Line line=Line.CreateBound(inserXyz,xyz2);
double ar=Math.Asin(line.Direction.Y);
if(line.Direction.X<0&&line.Direction.Y<0)
{
ar=-Math.Asin(line.Direction.Y);
}
if(line.Direction.X<0&&line.Direction.Y>0)
{
ar=-Math.Asin(line.Direction.Y);
}
for(int i=0;i<line.Length/D;i++)
{
XYZ xzy=line.Evaluate(i*D/line.Length,true);
FamilyInstance fin=doc.Create.NewFamilyInstance(xzy,fs,StructuralType.NonStructural);
ElementTransformUtils.RotateElement(doc,fin.Id,Line.CreateBound(xzy,xzy+new XYZ(0,0,1)),ar);
fin.LookupParameter("H").Set(H);
fin.LookupParameter("L").Set(L);
fin.LookupParameter("B").Set(B);
本申请实施例中,通过在Revit内加载抗滑桩建模插件;基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,实现了利用Revit进行抗滑桩的快速建模。本申请实施例针对抗滑桩布设,开发基于Revit抗滑桩布设的插件,用来快速布设抗滑桩,完善了软件对于三维结构建模的支持。
下面继续说明本申请实施例提供的基于Revit的抗滑桩建模装置1055的实施为软件模块的示例性结构,在一些实施例中,如图1所示,存储在存储器105的基于Revit的抗滑桩建模装置1055中的软件模块可以包括:
加载模块10551,用于在Revit内加载抗滑桩建模插件;
特征参数获得模块10552,用于基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
建模参数获得模块10553,用于呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
建模模块10554,用于基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
在一些实施例中,所述建模参数包括抗滑桩的尺寸参数,所述建模模块10554,还用于基于所述特征参数和所述尺寸参数进行抗滑桩建模,得到抗滑桩模型。
在一些实施例中,所述特征参数包括抗滑桩的形状特征参数及桩位线的长度,所述建模参数包括抗滑桩的尺寸参数及桩间距参数,所述建模模块10554,还用于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定多条桩位线中每一条桩位线上抗滑桩的待建模数量;基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型。
在一些实施例中,所述方法还包括:起始建模点确定模块,用于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定每一条桩位线上抗滑桩的起始建模点;所述建模模块10554,还用于基于所述起始建模点、所述形状特征参数及所述待建模数量,在各桩位线上依次构建相应数量的抗滑桩模型。
在一些实施例中,所述起始建模点确定模块,还用于确定多条桩位线中的第一条桩位线;基于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定第一条桩位线上抗滑桩的起始建模点;针对多条桩位线中的第N条桩位线,执行以下操作:基于所述桩间距参数及第N-1条桩位线上抗滑桩的起始建模点,确定第N条桩位线上抗滑桩的起始建模点,所述N为大于或等于2的正整数。
在一些实施例中,所述加载模块10551,还用于在Revit内呈现Revit的操作界面,在所述操作界面内呈现外部插件触发功能项;响应于针对所述外部插件触发功能项中针对抗滑桩建模插件的选择操作,加载抗滑桩建模插件。
在一些实施例中,所述装置还包括:模型呈现模块,用于呈现模型展示界面,并在所述模型展示界面内呈现抗滑桩模型。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的基于Revit的抗滑桩建模方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的基于Revit的抗滑桩建模方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例能够实现利用Revit实现抗滑桩的快速建模。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种基于Revit的抗滑桩建模方法,其特征在于,包括:
在Revit内加载抗滑桩建模插件;
基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
2.根据权利要求1所述的方法,其特征在于,所述建模参数包括抗滑桩的尺寸参数,所述基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,包括:
基于所述特征参数和所述尺寸参数进行抗滑桩建模,得到抗滑桩模型。
3.根据权利要求1所述的方法,其特征在于,所述特征参数包括抗滑桩的形状特征参数及桩位线的长度,所述建模参数包括抗滑桩的尺寸参数及桩间距参数,所述基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型,包括:
基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定多条桩位线中每一条桩位线上抗滑桩的待建模数量;
基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定每一条桩位线上抗滑桩的起始建模点;
所述基于所述形状特征参数及每一条桩位线上抗滑桩的待建模数量,在各桩位线上构建相应数量的抗滑桩模型,包括:
基于所述起始建模点、所述形状特征参数及所述待建模数量,在各桩位线上依次构建相应数量的抗滑桩模型。
5.根据权利要求4所述的方法,其特征在于,所述基于所述桩位线的长度、所述尺寸参数,确定每一条桩位线上抗滑桩的起始建模点,包括:
确定多条桩位线中的第一条桩位线;
基于基于所述桩位线的长度、所述尺寸参数及所述桩间距参数,确定第一条桩位线上抗滑桩的起始建模点;
针对多条桩位线中的第N条桩位线,执行以下操作:
基于所述桩间距参数及第N-1条桩位线上抗滑桩的起始建模点,确定第N条桩位线上抗滑桩的起始建模点,所述N为大于或等于2的正整数。
6.根据权利要求1所述的方法,其特征在于,所述在Revit内加载抗滑桩建模插件,包括:
在Revit内呈现Revit的操作界面,在所述操作界面内呈现外部插件触发功能项;
响应于针对所述外部插件触发功能项中针对抗滑桩建模插件的选择操作,加载抗滑桩建模插件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
呈现模型展示界面,并在所述模型展示界面内呈现抗滑桩模型。
8.一种基于Revit的抗滑桩建模装置,其特征在于,包括:
加载模块,用于在Revit内加载抗滑桩建模插件;
特征参数获得模块,用于基于所述抗滑桩建模插件,通过Revit调用外部命令,获得抗滑桩的特征参数;
建模参数获得模块,用于呈现建模参数输入界面,响应于针对所述建模参数输入界面的输入操作,获得输入的建模参数;
建模模块,用于基于所述特征参数和所述建模参数进行抗滑桩建模,得到抗滑桩模型。
9.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的基于Revit的抗滑桩建模方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至7任一项所述的基于Revit的抗滑桩建模方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770658.5A CN115168948A (zh) | 2022-06-30 | 2022-06-30 | 基于Revit的抗滑桩建模方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770658.5A CN115168948A (zh) | 2022-06-30 | 2022-06-30 | 基于Revit的抗滑桩建模方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168948A true CN115168948A (zh) | 2022-10-11 |
Family
ID=83489519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210770658.5A Pending CN115168948A (zh) | 2022-06-30 | 2022-06-30 | 基于Revit的抗滑桩建模方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168948A (zh) |
-
2022
- 2022-06-30 CN CN202210770658.5A patent/CN115168948A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8762936B2 (en) | Dynamic design-time extensions support in an integrated development environment | |
US9262850B2 (en) | Descriptive framework for data visualization | |
US9778921B2 (en) | Method for creating, exporting, sharing, and installing graphics functional blocks | |
JP4856237B2 (ja) | グラフィック・デザイナの再利用を可能にする宣言型定義 | |
US20170242667A1 (en) | Software development tool using a workflow pattern that describes software applications | |
CN108027722A (zh) | 在编译和部署中动态更新应用 | |
US20060143148A1 (en) | Method and apparatus for building metadata driven software development kit | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
CN103718155A (zh) | 运行时系统 | |
KR20130086138A (ko) | 크로스―플랫폼 어플리케이션 프레임워크 | |
AU2005200697B2 (en) | Priority binding | |
CN111221521A (zh) | 日志代码的生成方法、装置、计算机系统和可读存储介质 | |
US20080015911A1 (en) | Methods and apparatuses for developing business solutions | |
CN111784108B (zh) | 一种主数据管理平台的建模方法和装置 | |
US20120060141A1 (en) | Integrated environment for software design and implementation | |
US20170168860A1 (en) | Dynamically binding data in an application | |
Benouda et al. | Automatic code generation within MDA approach for cross-platform mobiles apps | |
CN113641338A (zh) | 一种动态生成视图组件的方法及装置 | |
CN115454417A (zh) | web前端项目搭建方法 | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN115168948A (zh) | 基于Revit的抗滑桩建模方法、装置及电子设备 | |
CN112181418B (zh) | 一种核反应堆计算软件图形界面的快速构建方法及系统 | |
CN113805877A (zh) | 基于idea插件的项目工程的构建方法及装置 | |
CN111221560A (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 |