Efficient and intelligent splitting and merging layout method based on Revit

Through the user setting interface and automated layout function of the Revit software, the problem of low efficiency in drawing splitting and merging layout in large projects is solved, intelligent splitting and merging is realized, and design efficiency and standardization are improved.

CN120296830BActive Publication Date: 2025-08-29CHINA CONSTR EIGHTH BUREAU NORTHWEST CONSTR CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510796058.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-16
Publication Date
2025-08-29
Estimated Expiration
2045-06-16

AI Technical Summary

Technical Problem

The existing Revit software is inefficient in the process of splitting and merging drawings in large projects, and requires manual operation, which affects the progress of project deepening.

Method used

Through the user setting interface provided by Revit software, automatic judgment and layout of large sample views are performed, and intelligently splitting and merging layouts are performed according to the frame size and user settings, including tolerance judgment, automatic filling of drawing numbers and names, and supports a variety of splitting methods such as floor, professional and area.

Benefits of technology

It realizes efficient and intelligent splitting and merging of drawings, improves the efficiency of design and deepens design, and realizes programmatic, automated and standardized drawing layout and numbering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120296830B_ABST
    Figure CN120296830B_ABST
Patent Text Reader

Abstract

The present invention discloses an efficient and intelligent splitting and merging layout method based on Revit, comprising the following steps: providing a first user with an interface, wherein the user selects the large-scale views that need to be merged and laid out; judging the rationality of the input, and exiting if it is unreasonable; arranging the large-scale views into a drawing frame, and arranging the large-scale views in units of one drawing; when the drawing frame of a drawing is full of large-scale views and the large-scale views have not been completely arranged, creating a new drawing and continuing to arrange the large-scale views until all large-scale views are arranged; naming the drawings; when outputting the drawings, the planar layout will split the views and layout by floor, specialty, and area with one click, and automatically fill in the drawing numbers and drawing names; prompting the user to complete the drawing splitting and large-scale view arrangement. The present invention relates to the field of building information model information technology, and can solve the problem of low efficiency in manual splitting and merging layout of drawings in the prior art.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of building information model information technology, and in particular to a Revit-based efficient intelligent splitting and merging layout method. Background Art

[0002] In recent years, the value of Revit software in the integrated application of pipelines based on BIM models has become increasingly prominent. The drawings produced during the BIM in-depth design process are the most important technical means to ensure the implementation of BIM model results on-site. However, in large-scale projects, there is often the complex task of splitting, arranging separately / merging, naming, and numbering thousands of drawings. This work can only be done manually and inefficiently, which greatly affects the progress of project development, especially for large projects. Therefore, it is necessary to provide an efficient and intelligent splitting and merging layout method based on Revit that can solve the problem of inefficient manual splitting and merging of drawings in the existing technology. Summary of the Invention

[0003] The purpose of the present invention is to provide an efficient and intelligent splitting and merging layout method based on Revit, which can solve the problem of low efficiency of manual splitting and merging layout of drawings in the prior art.

[0004] The present invention is achieved in that:

[0005] An efficient and intelligent splitting and merging layout method based on Revit includes the following steps:

[0006] Step 1: Use the Revit software to provide a first user setting interface, which is used to set the drawing frame size, the number of rows for placing large samples, the drawing number prefix, and the drawing name prefix;

[0007] Step 2: The user selects the large-scale view that needs to be merged from the BIM model;

[0008] Step 3: Determine the rationality of the input, that is, perform tolerance judgment. If it is judged to be reasonable, execute step 4. If it is judged to be unreasonable, prompt an error through a pop-up window or other means, and exit the command;

[0009] Step 4: Arrange the selected large-scale views in the drawing frame in the horizontal and vertical directions;

[0010] Step 5: Arrange the large-scale view on one drawing;

[0011] Step 6: When all the detail views are arranged in the drawing frame, and the detail views have not been arranged yet, create a new drawing and repeat step 5 to continue arranging the detail views in the drawing frame of the new drawing until all the detail views are arranged;

[0012] Step 7: Name the drawings according to the user-defined drawing number prefix, drawing name prefix, and the program's automatic judgment;

[0013] Step 8: When drawing, the plan layout will split the view and layout by floor, discipline, and area with one click, and automatically fill in the drawing number and drawing name;

[0014] Step 9: Prompt the user that the drawing layout and large-scale view arrangement have been completed.

[0015] Described step 3 comprises the following sub-steps:

[0016] Step 3.1: Use the viewSheet.Outline property in Revit software and calculate the true length L and true height H of the drawing frame size, which are recorded as viewSheet.L and viewSheet.H respectively;

[0017] Step 3.2: Determine whether the width of the large-scale view selected by the user exceeds the actual length of the drawing frame, and also determine whether the height of the large-scale view exceeds the actual height of the drawing frame. If so, it is judged to be unreasonable, and the user is prompted and subsequent commands are exited; if not, it is judged to be reasonable, and step 4 is executed.

[0018] Described step 4 comprises the following sub-steps:

[0019] Step 4.1: Use Revit software's categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) to batch add project parameters to the drawings;

[0020] Step 4.2: Determine the drawing family and family type according to the detailed view selected by the user, and load the drawing family into the project through doc.LoadFamily(fileName) in Revit software;

[0021] Step 4.3: Based on user interaction, select the specified family type, and place the drawing family of the selected family type into the drawing of the RVT project file through the Revit software method doc.CreatViewSheet(familySymbol.Id), and record the created drawing family instance as viewSheet.

[0022] Described step 5 comprises the following sub-steps:

[0023] Step 5.1: Determine the V position occupied by the large-scale view in the drawing;

[0024] Step 5.2: Determine the U position occupied by the large-scale view in the drawing;

[0025] Step 5.3: Calculate the U and V positions of the large view name in the drawing based on the length viewL and height viewH of the large view and the V and U positions of the large view in the drawing;

[0026] Step 5.4: Place the detail view through Viewport.Create(doc, viewSheet.Id,viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id) of Revit software, and place the detail view name and the thin line at the bottom of the detail view name through TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id) of Revit software.

[0027] The step 5.1 includes the following sub-steps:

[0028] Step 5.1.1: Sort all detail views by name, and obtain the length viewL and height viewH of all detail views through viewSection.Outline in Revit software;

[0029] Step 5.1.2: Accumulate the length of the large view in sequence. The length = the length of the large view viewL + the default minimum column spacing off, until the accumulated length of the large view exceeds the frame size viewSheet.L or all the large views are accumulated.

[0030] Step 5.1.3: Complete the layout of a row of large template views. Note that the row number of the large template views accumulated in step 5.1.2 is 1.

[0031] Step 5.1.4: Determine whether the number of rows is less than or equal to the number of rows set by the user in step 1, and determine whether all large-scale views have been arranged. If both are negative, proceed to step 5.1.5. If at least one is positive, proceed to step 5.1.6.

[0032] Step 5.1.5: Repeat step 5.1.2, increase the number of rows by 1, and return to step 5.1.4;

[0033] Step 5.1.6: In each row of large-scale views, take the maximum value of the large-scale view height (viewH) as the row height occupied by the large-scale view in this row of the drawing;

[0034] Steps: Distribute row spacing evenly based on the net height (Max. viewSheetBox.V) of the drawing frame that can hold the large view and the Max. height (viewH) of all rows.

[0035] Step 5.1.8: Get the bottom row size V value of each row, recorded as Row[r].V.

[0036] The step 5.2 includes the following sub-steps:

[0037] Step 5.2.1: Take the lengths of all large views in a row and calculate the sum of their lengths;

[0038] Step 5.2.2: Evenly distribute the large views in the row according to the frame size viewSheet.L, and calculate the new column spacing newoff;

[0039] Step 5.2.3: Calculate the U position of each large sample view in the row one by one, starting from the minimum U position coordinate viewSheetBox.Min.U of the sheet frame.

[0040] Described step 8 comprises the following sub-steps:

[0041] Step 8.1: Revit software provides a second user interface for users to specify whether to produce drawings according to the marked drawings or to break the drawings into sections by floor, discipline, or area. The second interface also allows users to select the drawing frame size and specify the basis for breaking the sections into sections.

[0042] Step 8.2: The user selects the floor, major, and area to be split;

[0043] In step 8.2, after the user selects the split floor, major, and area, the input rationality is judged, that is, the tolerance is judged. If it is judged to be reasonable, step 8.3 is executed. If it is judged to be unreasonable, an error is prompted by a pop-up window or the like, and the command is exited;

[0044] Step 8.3: Split the views according to floors, areas, and disciplines and rename them;

[0045] Step 8.4: Arrange the drawings for the views split in step 8.3.

[0046] In the above step 8.2, after clicking to add a split floor, all the floor plan views that have not been added will pop up. After clicking to add a split discipline, the view template corresponding to the discipline split will pop up. After clicking to add a split area, the range box corresponding to the area split will pop up.

[0047] The step 8.3 includes the following sub-steps:

[0048] Step 8.3.1: Loop through each floor, copy multiple main views by discipline, apply view templates, and finally rename the view names;

[0049] Step 8.3.2: Loop by area, copy each professional master view as a dependent, split it into multiple area views, copy the professional master view as a dependent using the Revit software method Duplicate(ViewDuplicateOption.AsDependent)), and crop the view by assigning a value to CropBox. Finally, rename the view by adding the area view name.

[0050] Step 8.3.3: Repeat step 8.3.2 until all areas have been cycled;

[0051] Step 8.3.4: Repeat steps 8.3.1 to 8.3.3 until all floors have been cycled through.

[0052] The step 8.4 includes the following sub-steps:

[0053] Step 8.4.1: Create a drawing using the doc.CreatViewSheet method in Revit software, and place the view split in step 8.3 using the Viewport.Create method in Revit software;

[0054] Step 8.4.2: Use the TextNote.Create method in Revit to set the drawing name, and use the doc.Create.NewDetailCurve method in Revit to underline the drawing name so that the view and view name are placed in the center of the drawing.

[0055] Step 8.4.3: Assign the sheet name and sheet number through the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set() in the Revit software.

[0056] Compared with the prior art, the present invention has the following beneficial effects:

[0057] 1. Since the present invention makes up for the problem that the original function of Revit software requires manual splitting and merging of layouts and is inefficient, it can be applied to various stages that require drawing, such as design, in-depth design, and processing based on Revit software, and has a wide range of applications.

[0058] 2. The present invention can efficiently and intelligently complete the merging and splitting of layouts, and realize the programmed, automated and standardized drawing layout, drawing naming and drawing numbering. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] Figure 1 This is a flow chart of the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0060] Figure 2 This is a schematic diagram of the interface of the drawing family in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0061] Figure 3 This is a schematic diagram of the interface of family types in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0062] Figure 4 It is a schematic diagram of the layout interface of the large-scale view in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0063] Figure 5 This is a schematic diagram of the selection interface of the large-scale view in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0064] Figure 6 This is a prompt interface diagram of a successful layout of a large-scale view in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0065] Figure 7 This is a drawing list file interface diagram after the layout of the large-scale view is successfully completed in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0066] Figure 8 It is a drawing after the layout of the large view is successfully completed in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0067] Figure 9 This is a schematic diagram of the layout splitting interface in the efficient and intelligent layout splitting and merging method based on Revit of the present invention (an interface for splitting drawings by floor, discipline, and by range box as an area);

[0068] Figure 10 This is a schematic diagram of the layout splitting interface in the efficient and intelligent splitting and merging layout method based on Revit of the present invention (an interface for splitting drawings based on marked output views and axis grids as regions);

[0069] Figure 11 This is a schematic diagram of the layout splitting interface (the interface for splitting drawings by floor) in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0070] Figure 12 This is a schematic diagram of the layout splitting interface in the efficient and intelligent layout splitting and merging method based on Revit of the present invention (split drawing interface by profession);

[0071] Figure 13 This is a schematic diagram of the layout splitting interface (the interface for splitting drawings by area) in the efficient and intelligent layout splitting and merging method based on Revit of the present invention;

[0072] Figure 14 This is a prompt interface diagram of a successful layout split in the efficient and intelligent layout splitting and merging method based on Revit of the present invention;

[0073] Figure 15 It is a list of views after successful layout splitting in the efficient and intelligent layout splitting and merging method based on Revit of the present invention;

[0074] Figure 16 This is a drawing list file interface diagram after the layout is successfully split in the efficient and intelligent splitting and merging layout method based on Revit of the present invention;

[0075] Figure 17 This is an interface diagram in which views and view names are placed in a drawing frame after the layout is successfully split in the efficient and intelligent splitting and merging layout method based on Revit of the present invention. DETAILED DESCRIPTION

[0076] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.

[0077] Please see the attached Figure 1 , an efficient and intelligent splitting and merging layout method based on Revit, including the following steps:

[0078] Step 1: Provide a first user setting interface through Revit software. The first user setting interface is used to set the drawing frame size, the number of rows for placing large samples, the drawing number prefix, and the drawing name prefix.

[0079] Step 2: The user customizes and selects the large-scale views that need to be merged from the BIM model.

[0080] Step 3: Determine the rationality of the input, that is, perform tolerance judgment. If it is judged to be reasonable, execute step 4. If it is judged to be unreasonable, prompt an error through a pop-up window or other means, and exit the command.

[0081] Described step 3 comprises the following sub-steps:

[0082] Step 3.1: Use the viewSheet.Outline property (i.e., the outer frame of the drawing frame) in Revit software and calculate the actual length L and actual height H of the drawing frame size, which are recorded as viewSheet.L and viewSheet.H respectively.

[0083] Step 3.2: Determine whether the large-scale view selected by the user is particularly wide, that is, the width of the large-scale view exceeds the actual length of the drawing frame. At the same time, determine whether the large-scale view is particularly high, that is, the height of the large-scale view exceeds the actual height of the drawing frame. If so, it is judged to be unreasonable, and the user is informed in a prompt manner and subsequent commands are exited; if not, it is judged to be reasonable, and step 4 is executed.

[0084] Specifically, in the layout of the large-scale view, it is necessary to judge whether the maximum value of the height of the large-scale view viewH Max(View.H) ≤ the net height of the large-scale view that can be placed in the frame Max(viewSheetBox.V) / the number of layout rows set by the user row&the maximum value of the length of the large-scale view viewL Max(View.L) ≤ Max(viewSheetBox.U) (this parameter expresses the net length of the drawing frame, which is obtained by the method opened by the Revit software, Max(viewSheetBox.U)=BoundingBoxXYZ.Max.U-BoundingBoxXYZ.Min.U). If the above conditions are not met, the user needs to be prompted with the name of the View that does not meet the conditions, and the user is required to adjust the View.

[0085] Step 4: Arrange the selected large-scale views in the drawing frame in the horizontal and vertical order, as shown in the attached figure. Figure 5 shown.

[0086] Described step 4 comprises the following sub-steps:

[0087] Step 4.1: Use Revit software's categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) to batch add project parameters to the drawings.

[0088] Preferably, project parameters can include version number, design director, proofreader, and reviewer, etc., to complete the drawing frame information and express the necessary key information required by the drawing frame. The type and number of project parameters can be adjusted according to actual needs. Use the Revit software's categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) plug-in to batch add project parameters, eliminating the need for users to manually add project parameters one by one and improving efficiency.

[0089] Step 4.2: Determine the drawing family and family type according to the large view selected by the user interactively, and load the drawing family into the project through doc.LoadFamily(fileName) of Revit software, as shown in the attached file. Figure 2 and attached Figure 3 shown.

[0090] Specifically, create an RVT project file using Revit software and convert the drawing family (rfa) (i.e. Figure 2 The file object shown in the figure is loaded into the created RVT project file in preparation for creating and using this family instance in the next step.

[0091] Step 4.3: Based on user interaction, select the specified family type, and place the drawing family of the selected family type into the drawing of the RVT project file through the Revit software method doc.CreatViewSheet(familySymbol.Id), and record the created drawing family instance as viewSheet.

[0092] In step 4.2, the drawing family has been loaded into the RVT project file. In step 4.3, the corresponding family type is selected according to the user's specifications, a family instance is created, and the drawing family instance is inserted into the drawing.

[0093] Step 5: Arrange the large view on one drawing as a unit, as shown in the attached Figure 4 shown.

[0094] Described step 5 comprises the following sub-steps:

[0095] Step 5.1: Determine the V position occupied by the large-scale view in the drawing.

[0096] The step 5.1 includes the following sub-steps:

[0097] Step 5.1.1: Sort all detail views by name, and obtain the length viewL and height viewH of all detail views through viewSection.Outline of Revit software.

[0098] Step 5.1.2: Accumulate the length of the large view in sequence. The length = the length of the large view viewL + the default minimum column spacing off, until the length of the large view is accumulated to viewSheet.L which exceeds the frame size or all large views are accumulated.

[0099] Step 5.1.3: Complete the layout of a row of large-scale views. Note that the number of rows of large-scale views accumulated in step 5.1.2 is 1.

[0100] Step 5.1.4: Determine whether the number of rows is ≤ the number of rows set by the user in step 1, and determine whether all large-scale views have been arranged. If both are no, execute step 5.1.5. If at least one is yes, execute step 5.1.6.

[0101] Step 5.1.5: Repeat step 5.1.2, adding 1 to the number of rows, and return to step 5.1.4.

[0102] At this point, the row positions of the large-scale views in this drawing are all clearly defined, and then the UV position of each large-scale view needs to be determined.

[0103] Step 5.1.6: In each row of large-scale views, take the maximum value of the large-scale view height viewH, Max(viewH), as the row height occupied by this row of large-scale views in this drawing.

[0104] Step 5.1.7: Distribute the row spacing evenly based on the net height (Max) of the drawing frame that can hold the large view (viewSheetBox.V) and the Max (viewH) of all rows.

[0105] Specifically, you can obtain the BoundingBoxXYZ.Max and BoundingBoxXYZ.Min of the viewSheet according to the method open in the Revit software, and then obtain the net height Max (viewSheetBox.V) = BoundingBoxXYZ.Max.V - BoundingBoxXYZ.Min.V where the drawing frame can place the sample.

[0106] Step 5.1.8: Get the bottom row size V value of each row, recorded as Row[r].V.

[0107] Step 5.2: Determine the U position occupied by the large-scale view in the drawing.

[0108] For each row of layout, the column spacing needs to be recalculated for aesthetics. Step 5.2 includes the following sub-steps:

[0109] Step 5.2.1: Take the lengths of all large view drawings in a row and calculate the sum of their lengths.

[0110] Step 5.2.2: Evenly distribute the large views in the row according to the viewSheet.L of the drawing frame size, and calculate the new column spacing newoff.

[0111] Step 5.2.3: Calculate the U position of each large sample view in the row one by one, starting from the minimum U position coordinate of the sheet frame viewSheetBox.Min.U.

[0112] Specifically, you can obtain the BoundingBoxXYZ.Min of the viewSheet according to the method open in the Revit software, and then obtain the minimum U position coordinate of the frame, BoundingBoxXYZ.Min.U.

[0113] Step 5.3: Calculate the U and V positions of the large view name in the drawing based on the length viewL and height viewH of the large view and the V and U positions occupied by the large view in the drawing.

[0114] Step 5.4: Place the detail view through Viewport.Create(doc, viewSheet.Id,viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id) of Revit software, and place the detail view name and the thin line at the bottom of the detail view name through TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id) of Revit software.

[0115] Step 6: When all the large-scale views are arranged in the drawing frame, and the large-scale views have not been arranged yet, create a new drawing, repeat step 5, and continue to arrange the large-scale views in the drawing frame of the new drawing until all the large-scale views are arranged.

[0116] Step 7: Name the drawings according to the drawing number prefix and drawing name prefix input by the user.

[0117] Specifically, a program can be created to find drawing numbers with the same drawing number prefix and drawing names with the same drawing name prefix in the current project, and to name the new drawing numbers and names. For example: first find all drawing numbers with the prefix GZ in the project, then get the maximum number of the drawing numbers with the prefix GZ, assuming it is GZ-005, then the new drawing numbers with the prefix GZ will be named GZ-006 in sequence; if no drawing numbers with the prefix GZ are found in the project, then the drawing numbers will start from GZ-001. Drawing naming is similar, and is generally named "Underground Floor Support and Hanger Detail (I)". Generally, the maximum value of the numbers in the brackets is found and named incrementally.

[0118] All large-scale views are arranged on the drawings one by one, as shown in the attached Figure 8 After the layout is completed, the drawing list can be displayed through the browser, as shown in the attached Figure 7 shown.

[0119] The master layout function of this invention automatically and evenly arranges master views and their names within the drawing frame according to the user-defined frame settings, and standardizes the numbering and naming of each drawing. The invention can determine the specific layout position of master views by frame size and set spacing. Once the frame of a drawing is fully filled with master views, a new drawing is automatically created to start the master view layout again.

[0120] Please see the attached Figure 9 To the attached Figure 17 , Step 8: When drawing, the plane layout will split the view and layout by floor, profession, and area with one click and automatically fill in the drawing number and drawing name.

[0121] Described step 8 comprises the following sub-steps:

[0122] Step 8.1: The second user setting interface is provided by Revit software. The second user setting interface is used by the user to specify whether to produce drawings according to the marked drawing views or to split the layout by floor, discipline, or area. At the same time, the drawing frame size is selected and the regional division basis of the layout is clarified, as shown in the attached figure. Figure 9 and attached Figure 10 shown.

[0123] The regional splitting basis of the layout diagram includes floor, specialty, regional layout diagram, range box selected by regional splitting basis, cropped plan view, and axis grid.

[0124] Step 8.2: The user selects the split floors, disciplines (i.e., view templates), and areas (i.e., scope boxes). After clicking Add Split Floor, all unadded floor plan views will pop up. After clicking Add Split Discipline, the view template will pop up for the discipline split. After clicking Add Split Area, the scope box will pop up for the area split, as shown in the attached figure. Figure 11 To the attached Figure 13 shown.

[0125] The function that pops up all unadded floor plan views after clicking to add a split floor is implemented through the function 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)). Accordingly, only a simple modification to the above function is required to implement the function of splitting by discipline and by area. This function is a common function in Revit software and is a common operation method used by those skilled in the art, so it will not be repeated here.

[0126] In step 8.2, after the user checks the split floors, majors, and areas, the input rationality is judged, that is, a tolerance judgment is performed. If it is judged to be reasonable, step 8.3 is executed. If it is judged to be unreasonable, an error is prompted through a pop-up window or the like, and the command is exited.

[0127] The specific process of input rationality judgment is as follows:

[0128] In the plan layout, it's necessary to ensure that at least one object is selected for each of the selected items (e.g., floors, disciplines, and areas, using the range box as an example) on the user interface. If the areas are divided by XY grids, at least two grids in each direction must be selected. If these conditions are met, the plan is considered reasonable; if not, it's considered unreasonable.

[0129] Step 8.3: Split the views according to floors, areas, and disciplines and rename the views.

[0130] The step 8.3 includes the following sub-steps:

[0131] Step 8.3.1: Loop through each floor, copy multiple main views by discipline, apply view templates, and finally rename the view names.

[0132] Specifically, copy the main view through the method ElementTransformUtils.CopyElement() in the Revit software, then use the method viewPlan.get_Parameter(BuiltInParameter.VIEW_TEMPLATE).Set() to apply the view template, and finally rename the view name.

[0133] Step 8.3.2: Loop by area, copy each professional main view as related, split it into multiple area views, copy the professional main view as related through the Duplicate(ViewDuplicateOption.AsDependent) method in the Revit software, and crop the view by assigning a value to CropBox. Finally, rename the view by adding the area view name.

[0134] Step 8.3.3: Repeat step 8.3.2 until all areas have been cycled.

[0135] Step 8.3.4: Repeat steps 8.3.1 to 8.3.3 until all floors have been cycled through.

[0136] Step 8.4: Arrange the drawings for the views split in step 8.3.

[0137] The step 8.4 includes the following sub-steps:

[0138] Step 8.4.1: Create a drawing using the doc.CreatViewSheet method in Revit software, and place the view split in step 8.3 using the Viewport.Create method in Revit software.

[0139] Step 8.4.2: Use the TextNote.Create method in Revit to set the drawing name, and use the doc.Create.NewDetailCurve method in Revit to underline the drawing name so that the view and view name are placed in the center of the drawing.

[0140] Step 8.4.3: Assign the sheet name and sheet number through the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set() in the Revit software.

[0141] The present invention can realize automatic layout drawing based on floor, view template (ie discipline), scope box or axis grid (ie area). After the layout drawing is completed, the related view list formed by the layout drawing can be displayed on the browser, as shown in the attached figure. Figure 15 As shown in the attached drawings, Figure 16 After the layout drawing is run through Revit software, the view and its view name are placed in the drawing frame, as shown in the attached figure. Figure 17 shown.

[0142] In the present invention, the large-scale views can be independently combined and laid out (i.e., steps 1 to 7), and the drawings can be independently split and drawn out (i.e., step 8), thereby enabling efficient and intelligent splitting and merging of layouts.

[0143] Step 9: Use a pop-up window to prompt the user that the drawing layout and layout of the large-scale view have been completed, as shown in the attached Figure 6 (Large view layout successful) and attached Figure 14 (The drawing is removed successfully) as shown.

[0144] The above are only preferred embodiments of the present invention and are not intended to limit the scope of protection of the invention. Therefore, any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.

Claims

1. An efficient and intelligent splitting and merging layout method based on Revit, characterized by: The following steps are involved: Step 1: Use the Revit software to provide a first user setting interface, which is used to set the drawing frame size, the number of rows for placing large samples, the drawing number prefix, and the drawing name prefix; Step 2: The user selects the large-scale view that needs to be merged from the BIM model; Step 3: Determine the rationality of the input, that is, perform tolerance judgment. If it is judged to be reasonable, execute step 4. If it is judged to be unreasonable, prompt an error through a pop-up window or other means, and exit the command; Step 4: Arrange the selected large-scale views in the drawing frame in the horizontal and vertical directions; Step 5: Arrange the large-scale view on one drawing; Step 6: When all the detail views are arranged in the drawing frame, and the detail views have not been arranged yet, create a new drawing and repeat step 5 to continue arranging the detail views in the drawing frame of the new drawing until all the detail views are arranged; Step 7: Name the drawings according to the user-defined drawing number prefix, drawing name prefix, and the program's automatic judgment; Step 8: When drawing, the plan layout will split the view and layout by floor, discipline, and area with one click, and automatically fill in the drawing number and drawing name; Step 9: The user is prompted that the drawing layout and layout of the large-scale views have been completed; Described step 3 comprises the following sub-steps: Step 3.1: Use the viewSheet.Outline property in Revit software and calculate the true length L and true height H of the drawing frame size, which are recorded as viewSheet.L and viewSheet.H respectively; Step 3.2: Determine whether the width of the selected large view exceeds the actual length of the drawing frame, and also determine whether the height of the large view exceeds the actual height of the drawing frame. If so, it is judged to be unreasonable, prompt the user and exit the subsequent command; if not, it is judged to be reasonable and execute step 4; Described step 4 comprises the following sub-steps: Step 4.1: Use Revit software's categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) to batch add project parameters to the drawings; Step 4.2: Determine the drawing family and family type according to the detailed view selected by the user, and load the drawing family into the project through doc.LoadFamily(fileName) in Revit software; Step 4.3: Based on user interaction, select the specified family type, and place the drawing family of the selected family type into the drawing of the RVT project file through the Revit software method doc.CreatViewSheet(familySymbol.Id). The created drawing family instance is recorded as viewSheet; Described step 5 comprises the following sub-steps: Step 5.1: Determine the V position occupied by the large-scale view in the drawing; Step 5.2: Determine the U position occupied by the large-scale view in the drawing; Step 5.3: Calculate the U and V positions of the large view name in the drawing based on the length viewL and height viewH of the large view and the V and U positions of the large view in the drawing; Step 5.4: Place the detail view through Viewport.Create(doc,viewSheet.Id,viewSections[i].Id,viewXYZ).ChangeTypeId(viewportType.Id) in Revit software, and place the detail view name and the thin line at the bottom of the detail view name through TextNote.Create(doc,viewSheet.Id,titleUV,titleStr,tny.Id) in Revit software; The step 5.1 includes the following sub-steps: Step 5.1.1: Sort all detail views by name, and obtain the length (viewL) and height (viewH) of all detail views through viewSection.Outline in Revit software; Step 5.1.2: Increment the length of the large view in sequence. The length = the length of the large view viewL + the default minimum column spacing off, until the accumulated length of the large view exceeds the frame size viewSheet.L or all the large views are accumulated. Step 5.1.3: Complete the layout of a row of large-scale views. Note that the row number of the large-scale views accumulated in step 5.1.2 is 1. Step 5.1.4: Determine whether the number of rows is less than or equal to the number of rows set by the user in step 1, and determine whether all large-scale views have been arranged. If both are negative, proceed to step 5.1.

5. If at least one is positive, proceed to step 5.1.

6. Step 5.1.5: Repeat step 5.1.2, increase the number of rows by 1, and return to step 5.1.4; Step 5.1.6: In each row of large-scale views, take the maximum value of the large-scale view height (viewH) as the row height occupied by the large-scale view in this row of the drawing; Step 5.1.7: Distribute the row spacing evenly based on the Max height (viewSheetBox.V) of the drawing frame that can hold the large view and the Max height (viewH) of all rows; Step 5.1.8: Get the bottom row size V value of each row, recorded as Row[r].V; The step 5.2 includes the following sub-steps: Step 5.2.1: Take the lengths of all large views in a row and calculate the sum of their lengths; Step 5.2.2: Evenly distribute the large views in the row according to the viewSheet.L of the drawing frame size, and calculate the new column spacing newoff; Step 5.2.3: Calculate the U position of each sheet view in the row one by one, starting from the minimum U position coordinate of the sheet viewSheetBox.Min.U. Described step 8 comprises the following sub-steps: Step 8.1: Revit software provides a second user interface for users to specify whether to produce drawings according to the marked drawings or to break the drawings into sections by floor, discipline, or area. The second interface also allows users to select the drawing frame size and specify the basis for breaking the sections into sections. Step 8.2: The user selects the floor, major, and area to be split; In step 8.2, after the user selects the split floor, major, and area, the input rationality is judged, that is, the tolerance is judged. If it is judged to be reasonable, step 8.3 is executed. If it is judged to be unreasonable, an error is prompted by a pop-up window or the like, and the command is exited; Step 8.3: Split the views according to floors, areas, and disciplines and rename them; Step 8.4: Arrange the drawings for the views split in step 8.

3.

2. The efficient and intelligent splitting and merging layout method based on Revit according to claim 1 is characterized by: In the above step 8.2, after clicking to add a split floor, all the floor plan views that have not been added will pop up. After clicking to add a split discipline, the view template corresponding to the discipline split will pop up. After clicking to add a split area, the range box corresponding to the area split will pop up.

3. The efficient and intelligent splitting and merging layout method based on Revit according to claim 1 is characterized by: The step 8.3 includes the following sub-steps: Step 8.3.1: Loop through each floor, copy multiple main views by discipline, apply view templates, and finally rename the view names; Step 8.3.2: Loop by area, copy each professional master view as a dependent, split it into multiple area views, copy the professional master view as a dependent using the Revit software method Duplicate(ViewDuplicateOption.AsDependent)), and crop the view by assigning a value to CropBox. Finally, rename the view by adding the area view name. Step 8.3.3: Repeat step 8.3.2 until all areas have been cycled; Step 8.3.4: Repeat steps 8.3.1 to 8.3.3 until all floors have been cycled through.

4. The efficient and intelligent splitting and merging layout method based on Revit according to claim 1 is characterized by: The step 8.4 includes the following sub-steps: Step 8.4.1: Create a drawing using the doc.CreatViewSheet method in Revit software, and place the view split in step 8.3 using the Viewport.Create method in Revit software; Step 8.4.2: Use the TextNote.Create method in Revit to set the drawing name, and use the doc.Create.NewDetailCurve method in Revit to underline the drawing name so that the view and view name are placed in the center of the drawing. Step 8.4.3: Assign the drawing name and drawing number through the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set() in the Revit software.

Citation Information

Patent Citations

  • Batch output method for building information modeling (BIM) drawings

    CN107220443A

  • Quick splitting method and system based on BIM (Building Information Modeling)

    CN116628826A