CN120296830B - 基于Revit的高效智能拆分、合并布图方法 - Google Patents
基于Revit的高效智能拆分、合并布图方法Info
- Publication number
- CN120296830B CN120296830B CN202510796058.XA CN202510796058A CN120296830B CN 120296830 B CN120296830 B CN 120296830B CN 202510796058 A CN202510796058 A CN 202510796058A CN 120296830 B CN120296830 B CN 120296830B
- Authority
- CN
- China
- Prior art keywords
- view
- views
- revit
- split
- large sample
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Revit的高效智能拆分、合并布图方法,包括步骤:供第一用户设置界面,用户勾选需要进行合并布图的大样视图;判断输入合理性,不合理则退出;大样视图布置到图框中,以一张图纸为单位布置大样视图;一张图纸的图框中布置满大样视图,且大样视图还未排布完毕时,新建一张图纸,继续排布大样视图直至所有大样视图排布完毕;对图纸的编号和名称进行命名;在出图时,平面拆布图将按楼层、专业、区域一键拆分视图、布图并对图纸编号和图纸命名进行自动填写;提示用户,完成图纸拆布与大样视图排布。本发明涉及建筑信息模型信息技术领域,能够解决现有技术中图纸的人工拆分、合并布图低效的问题。
Description
技术领域
本发明涉及建筑信息模型信息技术领域,尤其涉及一种基于Revit的高效智能拆分、合并布图方法。
背景技术
近年来,Revit软件在基于BIM模型的管线综合应用中价值越发凸显,在BIM深化设计过程中出具的图纸是保障BIM模型现场成果落地的最重要的技术手段。但是在大型项目中,常常面临几千张图纸的拆分、单独/合并布置、图纸命名、图纸编号的繁杂工作。此项工作只能通过手动低效率的操作,尤其对于大型项目而言,非常影响项目深化进度。因此,需要提供一种基于Revit的高效智能拆分、合并布图方法,能够解决现有技术中图纸的人工拆分、合并布图低效的问题。
发明内容
本发明的目的在于提供一种基于Revit的高效智能拆分、合并布图方法,能够解决现有技术中图纸的人工拆分、合并布图低效的问题。
本发明是这样实现的:
一种基于Revit的高效智能拆分、合并布图方法,包括以下步骤:
步骤1:通过Revit软件提供第一用户设置界面,第一用户设置界面用于设置图框尺寸、放置大样行数row、图纸编号前缀和图纸名称前缀;
步骤2:用户从BIM模型中自定义勾选需要进行合并布图的大样视图;
步骤3:判断输入合理性,即进行容差判断,若判断为合理,则执行步骤4,若判断为不合理,则通过弹窗等方式提示错误,并退出命令;
步骤4:将用户勾选的大样视图按照横向和纵向依次布置到图框中;
步骤5:以一张图纸为单位,在该图纸上布置大样视图;
步骤6:在一张图纸的图框中布置满大样视图,且大样视图还未排布完毕时,新建一张图纸,重复步骤5,继续在新的图纸的图框中排布大样视图,直至所有大样视图排布完毕;
步骤7:按照用户自定义输入的图纸编号前缀、图纸名称前缀以及程序自动判断情况,对图纸的编号和名称进行命名;
步骤8:在出图时,平面拆布图将按楼层、专业、区域一键拆分视图、布图并对图纸编号和图纸命名进行自动填写;
步骤9:提示用户,已完成图纸拆布与大样视图排布。
所述的步骤3包括以下分步骤:
步骤3.1:通过Revit软件的viewSheet.Outline属性以及通过计算得到图纸的图框尺寸的真实长度L和真实高度H,分别记为viewSheet.L、viewSheet.H;
步骤3.2:判断用户勾选的大样视图是否有大样宽度超出图框真实长度的,同时判断大样视图中是否有大样高度超出图框真实高度的,若有,判断为不合理,则以提示用户并退出后续命令;若没有,判断为合理,并执行步骤4。
所述的步骤4包括以下分步骤:
步骤4.1:通过Revit软件的categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets))给图纸批量添加项目参数;
步骤4.2:按照用户交互选择的大样视图确定图纸族以及族类型,通过Revit软件的doc.LoadFamily(fileName)将图纸族载入项目;
步骤4.3:根据用户交互,选定指定的族类型,通过Revit软件的方法doc.CreatViewSheet(familySymbol.Id)将选定族类型的图纸族放置到RVT项目文件的图纸中,将创建的这个图纸族实例记录为viewSheet。
所述的步骤5包括以下分步骤:
步骤5.1:判断大样视图所占据图纸中的V位置;
步骤5.2:判断大样视图所占据图纸中的U位置;
步骤5.3:根据大样视图的长度viewL和高度viewH、大样视图所占据图纸中的V、U位置计算大样视图名称所占据图纸中的U、V位置;
步骤5.4:通过Revit软件的Viewport.Create(doc, viewSheet.Id,viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id)放置大样视图,通过Revit软件的TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id)放置大样视图名称以及大样视图名称底部的细线。
所述的步骤5.1包括以下分步骤:
步骤5.1.1:对所有的大样视图按名称进行排序,通过Revit软件的viewSection.Outline获取所有大样视图的长度viewL和高度viewH;
步骤5.1.2:依次累加大样视图的长尺寸,长尺寸=大样视图的长度viewL+默认最小的列间距off,直至大样视图的长尺寸累加至超过图框尺寸的viewSheet.L或所有大样视图累加完毕;
步骤5.1.3:完成一行大样视图的排布,记步骤5.1.2中累加的大样视图所在的行数为1;
步骤5.1.4:判断行数是否≤步骤1中用户设定的放置大样行数row,并判断所有大样视图是否已经排布完毕,若均为否,则执行步骤5.1.5,若至少有一个为是,则执行步骤5.1.6;
步骤5.1.5:重复步骤5.1.2,且行数+1,返回步骤5.1.4;
步骤5.1.6:在每一行大样视图中,取大样视图的高度viewH的最大值Max(viewH)作为本图纸中此行大样视图占据的行高;
步骤以图框能放置大样视图的净高Max(viewSheetBox.V)和所有行的Max(viewH)为基础均布行距;
步骤5.1.8:得到每一行的行底尺寸V数值,记为Row[r].V。
所述的步骤5.2包括以下分步骤:
步骤5.2.1:取一行中所有大样视图的长度,并计算其长度总和;
步骤5.2.2:按照图框尺寸的viewSheet.L对该行中的大样视图进行列均布,并计算得到新的列间距newoff;
步骤5.2.3:以图框的最小U位置坐标viewSheetBox.Min.U为起点逐一计算该行中各大样视图的U位置。
所述的步骤8包括以下分步骤:
步骤8.1:通过Revit软件提供第二用户设置界面,第二用户设置界面用于用户指定是按照已标注好的出图视图进行出图,还是按楼层、专业、区域进行拆布图,同时选定出图图纸的图框尺寸,以及明确拆布图的区域拆分依据;
步骤8.2:用户勾选拆分的楼层、专业、区域;
所述的步骤8.2中,在用户勾选拆分的楼层、专业、区域后,进行输入合理性判断,即进行容差判断,若判断为合理,则执行步骤8.3,若判断为不合理,则通过弹窗等方式提示错误,并退出命令;
步骤8.3:根据楼层、区域、专业拆分视图并重命名视图;
步骤8.4:对步骤8.3中拆分的视图进行图纸布置。
所述的步骤8.2中,点击添加拆分的楼层后,弹出所有未添加过的楼层平面视图,点击添加拆分的专业后,专业拆分对应弹出的是视图样板,点击添加拆分的区域后,区域拆分对应弹出的是范围框。
所述的步骤8.3包括以下分步骤:
步骤8.3.1:按单个楼层循环,将楼层按专业复制多个主视图,应用视图样板,最后重命名视图名称;
步骤8.3.2:按区域进行循环,将每个专业主视图复制作为相关,拆分成多个区域视图,通过Revit软件中的方法Duplicate(ViewDuplicateOption.AsDependent))将专业主视图复制作为相关,并通过给CropBox赋值实现剪裁视图,最后添加区域视图名称来重命名视图;
步骤8.3.3:重复步骤8.3.2,直至将所有的区域都循环完成;
步骤8.3.4:重复步骤8.3.1至步骤8.3.3直至将所有的楼层都循环完成。
所述的步骤8.4包括以下分步骤:
步骤8.4.1:通过Revit软件中的方法doc.CreatViewSheet建立图纸,通过Revit软件中的方法Viewport.Create放置步骤8.3中拆分的视图;
步骤8.4.2:通过Revit软件中的方法TextNote.Create进行图纸名称的设置,通过Revit软件中的方法doc.Create.NewDetailCurve进行图纸名称下划线的绘制,使得视图和视图名称放置在图纸中心;
步骤8.4.3:通过Revit软件中的方法viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set()、viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set()进行图纸名称和图纸编号的赋值。
本发明与现有技术相比,具有以下有益效果:
1、本发明由于弥补了Revit软件原生功能需要人工拆分、合并布图且效率低的问题,可应用于基于Revit软件进行设计、深化设计、加工等各个需要出图阶段,应用范围广泛。
2、本发明能够高效智能的完成合并布图、拆分布图,实现了程序化、自动化、规范化的图纸布置、图纸命名和图纸编号。
附图说明
图1是本发明基于Revit的高效智能拆分、合并布图方法的流程图;
图2是本发明基于Revit的高效智能拆分、合并布图方法中图纸族的界面示意图;
图3是本发明基于Revit的高效智能拆分、合并布图方法中族类型的界面示意图;
图4是本发明基于Revit的高效智能拆分、合并布图方法中大样视图的布图界面示意图;
图5是本发明基于Revit的高效智能拆分、合并布图方法中大样视图的选择界面示意图;
图6是本发明基于Revit的高效智能拆分、合并布图方法中大样视图布图成功的提示界面图;
图7是本发明基于Revit的高效智能拆分、合并布图方法中大样视图布图成功后的图纸列表文件界面图;
图8是本发明基于Revit的高效智能拆分、合并布图方法中大样视图布图成功后的图纸;
图9是本发明基于Revit的高效智能拆分、合并布图方法中拆布图界面示意图(按楼层、专业,以及按范围框作为区域拆分图纸的界面);
图10是本发明基于Revit的高效智能拆分、合并布图方法中拆布图界面示意图(按已标注好的出图视图、以轴网为区域拆分图纸的界面);
图11是本发明基于Revit的高效智能拆分、合并布图方法中拆布图界面示意图(按楼层拆分图纸界面);
图12是本发明基于Revit的高效智能拆分、合并布图方法中拆布图界面示意图(按专业拆分图纸界面);
图13是本发明基于Revit的高效智能拆分、合并布图方法中拆布图界面示意图(按区域拆分图纸界面);
图14是本发明基于Revit的高效智能拆分、合并布图方法中拆布图成功的提示界面图;
图15是本发明基于Revit的高效智能拆分、合并布图方法中拆布图成功后的视图列表;
图16是本发明基于Revit的高效智能拆分、合并布图方法中拆布图成功后的图纸列表文件界面图;
图17是本发明基于Revit的高效智能拆分、合并布图方法中拆布图成功后图框中放置了视图和视图名称的界面图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
请参见附图1,一种基于Revit的高效智能拆分、合并布图方法,包括以下步骤:
步骤1:通过Revit软件提供第一用户设置界面,第一用户设置界面用于设置图框尺寸、放置大样行数row、图纸编号前缀和图纸名称前缀。
步骤2:用户从BIM模型中自定义勾选需要进行合并布图的大样视图。
步骤3:判断输入合理性,即进行容差判断,若判断为合理,则执行步骤4,若判断为不合理,则通过弹窗等方式提示错误,并退出命令。
所述的步骤3包括以下分步骤:
步骤3.1:通过Revit软件的viewSheet.Outline(即图框的外框)属性以及通过计算得到图纸的图框尺寸的真实长度L和真实高度H,分别记为viewSheet.L、viewSheet.H。
步骤3.2:判断用户勾选的大样视图是否有特别宽即大样宽度超出图框真实长度的,同时判断大样视图中是否有特别高即大样高度超出图框真实高度的,若有,判断为不合理,则以提示的方式告知用户并退出后续命令;若没有,判断为合理,并执行步骤4。
具体的,在大样视图的布图中,需要判断大样视图的高度viewH的最大值Max(View.H)≤图框能放置大样视图的净高Max(viewSheetBox.V)/用户设置布置行数row&大样视图的长度viewL的最大值Max(View.L)≤Max(viewSheetBox.U)(这个参数表达的是图框的净长,由Revit软件开放的方法获取,Max(viewSheetBox.U)=BoundingBoxXYZ.Max.U-BoundingBoxXYZ.Min.U),如果不满足以上条件,需要给用户提示不满足条件的View名称,并要求用户对View进行调整。
步骤4:将用户勾选的大样视图按照横向和纵向依次布置到图框中,如附图5所示。
所述的步骤4包括以下分步骤:
步骤4.1:通过Revit软件的categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets))给图纸批量添加项目参数。
优选的,项目参数可包括版本号、设计总负责、校对、审核等,用于完善图框信息,表达图框需要表达的必要关键信息。项目参数的种类和数量可根据实际需求适应性调整,使用Revit软件的categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets))插件实现对项目参数的批量添加,从而可以避免用户手动一个一个添加项目参数,提高效率。
步骤4.2:按照用户交互选择的大样视图确定图纸族以及族类型,通过Revit软件的doc.LoadFamily(fileName)将图纸族载入项目,如附图2和附图3所示。
具体的,通过Revit软件创建RVT项目文件,将图纸族(rfa)(即附图2所示的文件对象)载入到所创建的RVT项目文件中,为下一步创建使用这个族实例做准备。
步骤4.3:根据用户交互,选定指定的族类型,通过Revit软件的方法doc.CreatViewSheet(familySymbol.Id)将选定族类型的图纸族放置到RVT项目文件的图纸中,将创建的这个图纸族实例记录为viewSheet。
在步骤4.2中已把图纸族载入到RVT项目文件中,在步骤4.3中根据用户指定选中对应的族类型、创建族实例,并将图纸族实例方式到图纸中。
步骤5:以一张图纸为单位,在该图纸上布置大样视图,如附图4所示。
所述的步骤5包括以下分步骤:
步骤5.1:判断大样视图所占据图纸中的V位置。
所述的步骤5.1包括以下分步骤:
步骤5.1.1:对所有的大样视图按名称进行排序,通过Revit软件的viewSection.Outline获取所有大样视图的长度viewL和高度viewH。
步骤5.1.2:依次累加大样视图的长尺寸,长尺寸=大样视图的长度viewL+默认最小的列间距off,直至大样视图的长尺寸累加至超过图框尺寸的viewSheet.L或所有大样视图累加完毕。
步骤5.1.3:完成一行大样视图的排布,记步骤5.1.2中累加的大样视图所在的行数为1。
步骤5.1.4:判断行数是否≤步骤1中用户设定的放置大样行数row,并判断所有大样视图是否已经排布完毕,若均为否,则执行步骤5.1.5,若至少有一个为是,则执行步骤5.1.6。
步骤5.1.5:重复步骤5.1.2,且行数+1,返回步骤5.1.4。
此时本图纸中的大样视图均明确了行位置,接着需要确定每一个大样视图的UV位置。
步骤5.1.6:在每一行大样视图中,取大样视图的高度viewH的最大值Max(viewH)作为本图纸中此行大样视图占据的行高。
步骤5.1.7:以图框能放置大样视图的净高Max(viewSheetBox.V)和所有行的Max(viewH)为基础均布行距。
具体的,可根据Revit软件开放的方法获得viewSheet的BoundingBoxXYZ.Max和BoundingBoxXYZ.Min,然后获得图框能放置大样的净高Max(viewSheetBox.V)=BoundingBoxXYZ.Max.V-BoundingBoxXYZ.Min.V。
步骤5.1.8:得到每一行的行底尺寸V数值,记为Row[r].V。
步骤5.2:判断大样视图所占据图纸中的U位置。
对于每一行排布的大样视图,为了美观度需要重新计算列间距。所述的步骤5.2包括以下分步骤:
步骤5.2.1:取一行中所有大样视图的长度,并计算其长度总和。
步骤5.2.2:按照图框尺寸的viewSheet.L对该行中的大样视图进行列均布,并计算得到新的列间距newoff。
步骤5.2.3:以图框的最小U位置坐标viewSheetBox.Min.U为起点逐一计算该行中各大样视图的U位置。
具体的,可根据Revit软件开放的方法获得viewSheet的BoundingBoxXYZ.Min,再取得图框的最小U位置坐标BoundingBoxXYZ.Min.U。
步骤5.3:根据大样视图的长度viewL和高度viewH、大样视图所占据图纸中的V、U位置计算大样视图名称所占据图纸中的U、V位置。
步骤5.4:通过Revit软件的Viewport.Create(doc, viewSheet.Id,viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id)放置大样视图,通过Revit软件的TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id)放置大样视图名称以及大样视图名称底部的细线。
步骤6:在一张图纸的图框中布置满大样视图,且大样视图还未排布完毕时,新建一张图纸,重复步骤5,继续在新的图纸的图框中排布大样视图,直至所有大样视图排布完毕。
步骤7:按照用户自定义输入的图纸编号前缀、图纸名称前缀,对图纸的编号和名称进行命名。
具体的,可创建程序用于寻找当前项目中同图纸编号前缀的图纸编号,以及同图纸名称前缀的图纸名称,并为新的图纸编号和名称进行命名。例如:先在项目中找到所有GZ前缀的图纸编号,然后取得GZ前缀的图纸编号的最大编号,假设为GZ-005,那么新的GZ为前缀的图纸编号就依次往下命名为GZ-006;如果在项目中未找到GZ前缀的图纸编号,那么图纸编号就从GZ-001开始进行编号。图纸命名类同,命名一般为“地下一层支吊架大样(一)”,一般对括号中的数字进行寻找最大值并进行递增命名。
所有大样视图逐一布置到图纸上,如附图8所示,布图完成后,可通过浏览器显示图纸列表,如附图7所示。
本发明的大样布图功能为按照用户自定义设置的图框自动均匀的将大样视图和大样视图名称布置到图纸的图框中,并对每个图纸进行规范的编号和命名。本发明能够通过图框尺寸和设定间距确定大样视图的具体排布位置,并在一张图纸的图框布满视图大样后自动创建新的图纸,启动再一次的大样视图布置。
请参见附图9至附图17,步骤8:在出图时,平面拆布图将按楼层、专业、区域一键拆分视图、布图并对图纸编号和图纸命名进行自动填写。
所述的步骤8包括以下分步骤:
步骤8.1:通过Revit软件提供第二用户设置界面,第二用户设置界面用于用户指定是按照已标注好的出图视图进行出图,还是按楼层、专业、区域进行拆布图,同时选定出图图纸的图框尺寸,以及明确拆布图的区域拆分依据,如附图9和附图10所示。
所述的拆布图的区域拆分依据包括按楼层、专业、区域拆布图、区域拆分依据选择的范围框、已裁剪的平面视图、轴网。
步骤8.2:用户勾选拆分的楼层、专业(即视图样板)、区域(即范围框);其中,点击添加拆分的楼层后,弹出所有未添加过的楼层平面视图,点击添加拆分的专业后,专业拆分对应弹出的是视图样板,点击添加拆分的区域后,区域拆分对应弹出的是范围框,如附图11至附图13所示。
点击添加拆分的楼层后弹出所有未添加过的楼层平面视图的功能通过函数newFilteredElementCollector(_document).WhereElementIsNotElementType().OfCategory(BuiltInCategory.OST_Views). OfClass(typeof(ViewPlan)). Select(p =>p as ViewPlan). Where(p =>!p.IsTemplate). Where(p=>!mainVMFloorIds.Contains(p.Id))实现。相应的,只需要对以上函数做简单修改即可实现按专业拆分和按区域拆分的功能,该功能为Revit软件中的常规功能,属于本领域技术人员的常用操作手段,此处不再赘述。
所述的步骤8.2中,在用户勾选拆分的楼层、专业、区域后,进行输入合理性判断,即进行容差判断,若判断为合理,则执行步骤8.3,若判断为不合理,则通过弹窗等方式提示错误,并退出命令。
输入合理性判断的具体过程为为:
在平面拆布图中,需要判断用户交互界面上该进行选定的如楼层、专业、区域(以范围框为例)勾选时,楼层、专业、区域均至少选中了一个对象;若区域是以XY方向轴网进行划分,每个方向至少需要有2个轴网被勾选入列表。若满足上述条件,则判断为合理,若不满足上述条件,则判断为不合理。
步骤8.3:根据楼层、区域、专业拆分视图并重命名视图。
所述的步骤8.3包括以下分步骤:
步骤8.3.1:按单个楼层循环,将楼层按专业复制多个主视图,应用视图样板,最后重命名视图名称。
具体的,通过Revit软件中的方法ElementTransformUtils.CopyElement()复制主视图,然后使用方法viewPlan.get_Parameter(BuiltInParameter.VIEW_TEMPLATE).Set()应用视图样板,最后重命名视图名称即可。
步骤8.3.2:按区域进行循环,将每个专业主视图复制作为相关,拆分成多个区域视图,通过Revit软件中的方法Duplicate(ViewDuplicateOption.AsDependent))将专业主视图复制作为相关,并通过给CropBox赋值实现剪裁视图,最后添加区域视图名称来重命名视图。
步骤8.3.3:重复步骤8.3.2,直至将所有的区域都循环完成。
步骤8.3.4:重复步骤8.3.1至步骤8.3.3直至将所有的楼层都循环完成。
步骤8.4:对步骤8.3中拆分的视图进行图纸布置。
所述的步骤8.4包括以下分步骤:
步骤8.4.1:通过Revit软件中的方法doc.CreatViewSheet建立图纸,通过Revit软件中的方法Viewport.Create放置步骤8.3中拆分的视图。
步骤8.4.2:通过Revit软件中的方法TextNote.Create进行图纸名称的设置,通过Revit软件中的方法doc.Create.NewDetailCurve进行图纸名称下划线的绘制,使得视图和视图名称放置在图纸中心。
步骤8.4.3:通过Revit软件中的方法viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set()、viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set()进行图纸名称和图纸编号的赋值。
本发明能够基于楼层、视图样板(即专业)、范围框或轴网(即区域)实现自动拆布图出图。在拆布图完成后,可在浏览器上显示拆布图形成的相关视图列表,如附图15所示,以及相关图纸列表,如附图16所示。拆布图通过Revit软件运行后,图框中放置视图及其视图名称,如附图17所示。
在本发明中,可独立进行大样视图的合并布图(即步骤1至步骤7),也可独立进行图纸的拆布图出图(即步骤8),能够实现高效智能的拆分、合并布图。
步骤9:通过弹窗等方式提示用户,已完成图纸拆布与大样视图排布,如附图6(大样视图排布成功)和附图14(图纸拆布成功)所示。
以上仅为本发明的较佳实施例而已,并非用于限定发明的保护范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于Revit的高效智能拆分、合并布图方法,其特征是:包括以下步骤:
步骤1:通过Revit软件提供第一用户设置界面,第一用户设置界面用于设置图框尺寸、放置大样行数row、图纸编号前缀和图纸名称前缀;
步骤2:用户从BIM模型中自定义勾选需要进行合并布图的大样视图;
步骤3:判断输入合理性,即进行容差判断,若判断为合理,则执行步骤4,若判断为不合理,则通过弹窗等方式提示错误,并退出命令;
步骤4:将用户勾选的大样视图按照横向和纵向依次布置到图框中;
步骤5:以一张图纸为单位,在该图纸上布置大样视图;
步骤6:在一张图纸的图框中布置满大样视图,且大样视图还未排布完毕时,新建一张图纸,重复步骤5,继续在新的图纸的图框中排布大样视图,直至所有大样视图排布完毕;
步骤7:按照用户自定义输入的图纸编号前缀、图纸名称前缀以及程序自动判断情况,对图纸的编号和名称进行命名;
步骤8:在出图时,平面拆布图将按楼层、专业、区域一键拆分视图、布图并对图纸编号和图纸命名进行自动填写;
步骤9:提示用户,已完成图纸拆布与大样视图排布;
所述的步骤3包括以下分步骤:
步骤3.1:通过Revit软件的viewSheet.Outline属性以及通过计算得到图纸的图框尺寸的真实长度L和真实高度H,分别记为viewSheet.L、viewSheet.H;
步骤3.2:判断用户勾选的大样视图是否有大样宽度超出图框真实长度的,同时判断大样视图中是否有大样高度超出图框真实高度的,若有,判断为不合理,则以提示用户并退出后续命令;若没有,判断为合理,并执行步骤4;
所述的步骤4包括以下分步骤:
步骤4.1:通过Revit软件的categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets))给图纸批量添加项目参数;
步骤4.2:按照用户交互选择的大样视图确定图纸族以及族类型,通过Revit软件的doc.LoadFamily(fileName)将图纸族载入项目;
步骤4.3:根据用户交互,选定指定的族类型,通过Revit软件的方法doc.CreatViewSheet(familySymbol.Id)将选定族类型的图纸族放置到RVT项目文件的图纸中,将创建的这个图纸族实例记录为viewSheet;
所述的步骤5包括以下分步骤:
步骤5.1:判断大样视图所占据图纸中的V位置;
步骤5.2:判断大样视图所占据图纸中的U位置;
步骤5.3:根据大样视图的长度viewL和高度viewH、大样视图所占据图纸中的V、U位置计算大样视图名称所占据图纸中的U、V位置;
步骤5.4:通过Revit软件的Viewport.Create(doc,viewSheet.Id,viewSections[i].Id,viewXYZ).ChangeTypeId(viewportType.Id)放置大样视图,通过Revit软件的TextNote.Create(doc,viewSheet.Id,titleUV,titleStr,tny.Id)放置大样视图名称以及大样视图名称底部的细线;
所述的步骤5.1包括以下分步骤:
步骤5.1.1:对所有的大样视图按名称进行排序,通过Revit软件的viewSection.Outline获取所有大样视图的长度viewL和高度viewH;
步骤5.1.2:依次累加大样视图的长尺寸,长尺寸=大样视图的长度viewL+默认最小的列间距off,直至大样视图的长尺寸累加至超过图框尺寸的viewSheet.L或所有大样视图累加完毕;
步骤5.1.3:完成一行大样视图的排布,记步骤5.1.2中累加的大样视图所在的行数为1;
步骤5.1.4:判断行数是否≤步骤1中用户设定的放置大样行数row,并判断所有大样视图是否已经排布完毕,若均为否,则执行步骤5.1.5,若至少有一个为是,则执行步骤5.1.6;
步骤5.1.5:重复步骤5.1.2,且行数+1,返回步骤5.1.4;
步骤5.1.6:在每一行大样视图中,取大样视图的高度viewH的最大值Max(viewH)作为本图纸中此行大样视图占据的行高;
步骤5.1.7:以图框能放置大样视图的净高Max(viewSheetBox.V)和所有行的Max(viewH)为基础均布行距;
步骤5.1.8:得到每一行的行底尺寸V数值,记为Row[r].V;
所述的步骤5.2包括以下分步骤:
步骤5.2.1:取一行中所有大样视图的长度,并计算其长度总和;
步骤5.2.2:按照图框尺寸的viewSheet.L对该行中的大样视图进行列均布,并计算得到新的列间距newoff;
步骤5.2.3:以图框的最小U位置坐标viewSheetBox.Min.U为起点逐一计算该行中各大样视图的U位置;
所述的步骤8包括以下分步骤:
步骤8.1:通过Revit软件提供第二用户设置界面,第二用户设置界面用于用户指定是按照已标注好的出图视图进行出图,还是按楼层、专业、区域进行拆布图,同时选定出图图纸的图框尺寸,以及明确拆布图的区域拆分依据;
步骤8.2:用户勾选拆分的楼层、专业、区域;
所述的步骤8.2中,在用户勾选拆分的楼层、专业、区域后,进行输入合理性判断,即进行容差判断,若判断为合理,则执行步骤8.3,若判断为不合理,则通过弹窗等方式提示错误,并退出命令;
步骤8.3:根据楼层、区域、专业拆分视图并重命名视图;
步骤8.4:对步骤8.3中拆分的视图进行图纸布置。
2.根据权利要求1所述的基于Revit的高效智能拆分、合并布图方法,其特征是:所述的步骤8.2中,点击添加拆分的楼层后,弹出所有未添加过的楼层平面视图,点击添加拆分的专业后,专业拆分对应弹出的是视图样板,点击添加拆分的区域后,区域拆分对应弹出的是范围框。
3.根据权利要求1所述的基于Revit的高效智能拆分、合并布图方法,其特征是:所述的步骤8.3包括以下分步骤:
步骤8.3.1:按单个楼层循环,将楼层按专业复制多个主视图,应用视图样板,最后重命名视图名称;
步骤8.3.2:按区域进行循环,将每个专业主视图复制作为相关,拆分成多个区域视图,通过Revit软件中的方法Duplicate(ViewDuplicateOption.AsDependent))将专业主视图复制作为相关,并通过给CropBox赋值实现剪裁视图,最后添加区域视图名称来重命名视图;
步骤8.3.3:重复步骤8.3.2,直至将所有的区域都循环完成;
步骤8.3.4:重复步骤8.3.1至步骤8.3.3直至将所有的楼层都循环完成。
4.根据权利要求1所述的基于Revit的高效智能拆分、合并布图方法,其特征是:所述的步骤8.4包括以下分步骤:
步骤8.4.1:通过Revit软件中的方法doc.CreatViewSheet建立图纸,通过Revit软件中的方法Viewport.Create放置步骤8.3中拆分的视图;
步骤8.4.2:通过Revit软件中的方法TextNote.Create进行图纸名称的设置,通过Revit软件中的方法doc.Create.NewDetailCurve进行图纸名称下划线的绘制,使得视图和视图名称放置在图纸中心;
步骤8.4.3:通过Revit软件中的方法viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set()、viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set()进行图纸名称和图纸编号的赋值。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510796058.XA CN120296830B (zh) | 2025-06-16 | 2025-06-16 | 基于Revit的高效智能拆分、合并布图方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510796058.XA CN120296830B (zh) | 2025-06-16 | 2025-06-16 | 基于Revit的高效智能拆分、合并布图方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN120296830A CN120296830A (zh) | 2025-07-11 |
| CN120296830B true CN120296830B (zh) | 2025-08-29 |
Family
ID=96279026
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510796058.XA Active CN120296830B (zh) | 2025-06-16 | 2025-06-16 | 基于Revit的高效智能拆分、合并布图方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120296830B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107220443A (zh) * | 2017-06-01 | 2017-09-29 | 武汉凌云建筑装饰工程有限公司 | 一种bim图纸批量输出方法 |
| CN116628826A (zh) * | 2023-07-18 | 2023-08-22 | 中设数字技术有限公司 | 一种基于bim模型快速拆分方法及系统 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104200026B (zh) * | 2014-09-01 | 2017-05-03 | 深圳汇林达科技有限公司 | 三维空间软件的配模方法及系统 |
| JP7527663B2 (ja) * | 2019-04-23 | 2024-08-05 | ダスティ ロボティックス インコーポレイテッド | ライン印刷経路最適化を伴う自走式印刷ロボット及び印刷方法 |
| CN116861542A (zh) * | 2023-09-01 | 2023-10-10 | 国舜绿建科技有限公司 | 基于bim的外围护墙板设计方法和系统 |
| CN116956444B (zh) * | 2023-09-20 | 2024-01-12 | 国舜绿建科技有限公司 | 基于bim的装配式建筑钢筋桁架楼承板设计方法和系统 |
| US20250021707A1 (en) * | 2024-03-07 | 2025-01-16 | Shisheng Pan | Building structure automatic design and automatic drawing |
-
2025
- 2025-06-16 CN CN202510796058.XA patent/CN120296830B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107220443A (zh) * | 2017-06-01 | 2017-09-29 | 武汉凌云建筑装饰工程有限公司 | 一种bim图纸批量输出方法 |
| CN116628826A (zh) * | 2023-07-18 | 2023-08-22 | 中设数字技术有限公司 | 一种基于bim模型快速拆分方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN120296830A (zh) | 2025-07-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7581189B2 (en) | Dynamically generating a database report during a report building process | |
| US20060271863A1 (en) | User definable task based interface | |
| CN110705237B (zh) | 文档的自动生成方法、数据处理设备及存储介质 | |
| CN1794245A (zh) | 带有用户交互图形工具的产品编辑和仿真数据库系统 | |
| US20030090526A1 (en) | Analysis work support system | |
| US7065478B2 (en) | Computer-aided progressive die design system and method | |
| CN105183645A (zh) | 一种基于复用的雷达软件测试设计与实现的方法 | |
| CN109033523B (zh) | 一种基于三维cad模型的装配工艺规程生成系统与方法 | |
| CN110727969B (zh) | 工作流自动调整方法、装置、设备及存储介质 | |
| CN120296830B (zh) | 基于Revit的高效智能拆分、合并布图方法 | |
| CN106610929A (zh) | 数字出版的结构化内容文件的排版方法和装置 | |
| CN101727439A (zh) | 一种排版方法及其装置 | |
| US6633836B1 (en) | Design system, design method, and storage medium storing design program for structural analysis after amendment of model form | |
| CN101706837A (zh) | 基于数学模型的夹具元件库建立方法 | |
| JPH09120415A (ja) | 部品表示方法および部品選択支援装置 | |
| CN109902275A (zh) | 一种自定义表格的方法以及电子设备 | |
| CN107908813B (zh) | 基于ObjectARX的城市规划数字地形参数化处理方法 | |
| CN111352920A (zh) | 基于bim平台的bipv构件库的构建方法及系统 | |
| CN111651161A (zh) | 图形化界面构建方法、装置、计算机设备及存储介质 | |
| CN115860676B (zh) | 一种农作物育种材料自动晋级推荐方法及系统 | |
| CN116244777A (zh) | 计算机辅助设计属性块数据修改方法、设备及介质 | |
| CN120562390A (zh) | 模型信息数据自动化处理方法 | |
| JPH117402A (ja) | データ処理方法 | |
| JPH05334364A (ja) | 検索条件式作成方法 | |
| JPH0836487A (ja) | データ処理システム |
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 |