Revit-based efficient and intelligent splitting and merging layout method
Through the user interface and automated judgment of the Revit software, the problem of low efficiency in drawing splitting and merging layouts in large-scale projects is solved, intelligent splitting and merging is realized, and design efficiency and standardization are improved.
Patent Information
- Application Number
- CN202510796058.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-16
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2045-06-16
AI Technical Summary
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.
The Revit software provides a user setting interface to automatically judge and prompt errors, intelligently split and merge drawings, including automatic filling of drawing numbers and names, and intelligent split and merge layout methods based on BIM model.
It realizes efficient and intelligent splitting and merging of drawings, and programmatic, automated and standardized drawing layout and numbering, improving design efficiency.
Smart Images

Figure CN120296830A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of building information model information technology, and particularly relates to an efficient and intelligent splitting and merging layout method based on Revit. Background Art
[0002] In recent years, the value of Revit software has become increasingly prominent in the pipeline comprehensive application based on the BIM model. The drawings issued during the BIM detailed design process are the most important technical means to ensure the implementation of the BIM model on site. However, in large projects, there are often cumbersome tasks such as splitting thousands of drawings, arranging them separately / merging them, naming the drawings, and numbering the drawings. This work can only be carried out through manual and inefficient operations. Especially for large projects, it greatly affects the progress of project deepening. Therefore, there is a need to provide an efficient and intelligent splitting and merging layout method based on Revit, which can solve the problem of low efficiency in manually splitting and merging the layout of drawings in the prior art. 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 in manually splitting and merging the layout of drawings in the prior art.
[0004] The present invention is implemented as follows: An efficient and intelligent splitting and merging layout method based on Revit includes the following steps: 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 row for placing details, the prefix of the drawing number, and the prefix of the drawing name; Step 2: The user customarily selects the detail views that need to be merged and laid out from the BIM model; Step 3: Judge the rationality of the input, that is, perform tolerance judgment. If the judgment is reasonable, execute Step 4. If the judgment is unreasonable, prompt an error through a pop-up window or other means and exit the command; Step 4: Arrange the detail views selected by the user horizontally and vertically into the drawing frame in turn; Step 5: Take one drawing as a unit and arrange the detail views on this drawing; Step 6: When the drawing frame of one drawing is filled with detail views and the detail views have not been completely arranged, create a new drawing, repeat Step 5, and continue to arrange the detail views in the drawing frame of the new drawing until all the detail views are arranged; Step 7: Name the numbers and names of the drawings according to the prefix of the drawing number, the prefix of the drawing name customarily input by the user, and the situation automatically judged by the program; Step 8: When generating drawings, the flat fabric layout drawing will split views, layout, and automatically fill in the drawing number and drawing name by floor, specialty, and area with one key. Step 9: Prompt the user that the drawing fabric splitting and detail view layout have been completed.
[0005] The described Step 3 includes the following sub-steps: Step 3.1: Obtain the true length L and true height H of the drawing frame size of the drawing through the viewSheet.Outline property of the Revit software and through calculation, and record them as viewSheet.L and viewSheet.H respectively. Step 3.2: Determine whether the width of any detail view checked by the user exceeds the true length of the drawing frame, and at the same time determine whether the height of any detail view exceeds the true height of the drawing frame. If so, it is judged as unreasonable, then prompt the user and exit the subsequent commands; if not, it is judged as reasonable, and Step 4 is executed.
[0006] The described Step 4 includes the following sub-steps: Step 4.1: Batch add project parameters to the drawing through categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) of the Revit software. Step 4.2: Determine the drawing family and family type according to the detail views selected by the user interaction, and load the drawing family into the project through doc.LoadFamily(fileName) of the Revit software. Step 4.3: According to the 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 method doc.CreatViewSheet(familySymbol.Id) of the Revit software, and record this instance of the drawing family as viewSheet.
[0007] The described Step 5 includes the following sub-steps: Step 5.1: Determine the V position of the detail view in the drawing. Step 5.2: Determine the U position of the detail view in the drawing. Step 5.3: Calculate the U and V positions of the detail view name in the drawing according to the length viewL and height viewH of the detail view and the V and U positions of the detail view in the drawing. Step 5.4: Place the detail views by using Viewport.Create(doc, viewSheet.Id, viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id), and place the detail view names and the thin lines at the bottom of the detail view names by using TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id).
[0008] The said Step 5.1 includes the following sub-steps: Step 5.1.1: Sort all the detail views by name, and obtain the length viewL and height viewH of all the detail views through viewSection.Outline of Revit software; Step 5.1.2: Cumulatively add the long dimensions of the detail views in sequence. The long dimension = the length viewL of the detail view + the default minimum column spacing off, until the cumulatively added long dimension of the detail views exceeds viewSheet.L of the drawing frame size or all the detail views have been cumulatively added; Step 5.1.3: Complete the arrangement of the detail views in one row, and record the row number where the cumulatively added detail views in Step 5.1.2 are located as 1; Step 5.1.4: Judge whether the row number is ≤ the number of rows row of the detail views set by the user in Step 1, and judge whether all the detail views have been arranged. If both are no, execute Step 5.1.5. If at least one is yes, execute Step 5.1.6; Step 5.1.5: Repeat Step 5.1.2, and the row number +1, then return to Step 5.1.4; Step 5.1.6: In each row of detail views, take the maximum value Max(viewH) of the height viewH of the detail views as the row height occupied by the detail views in this row of the drawing; Step: Evenly distribute the row spacing based on the net height Max(viewSheetBox.V) of the drawing frame that can place the detail views and Max(viewH) of all rows; Step 5.1.8: Obtain the V value of the bottom dimension of each row, and record it as Row[r].V.
[0009] The said Step 5.2 includes the following sub-steps: Step 5.2.1: Take the lengths of all the detail views in one row, and calculate their total length; Step 5.2.2: Evenly distribute the detail views in this row according to viewSheet.L of the drawing frame size, and calculate the new column spacing newoff; Step 5.2.3: Starting from the minimum U position coordinate viewSheetBox.Min.U of the drawing frame, calculate the U positions of each large-scale view in this row one by one.
[0010] The said Step 8 includes the following sub-steps: Step 8.1: Provide a second user setting interface through Revit software. The second user setting interface is used for the user to specify whether to generate drawings according to the already marked drawing views, or to split and layout the drawings by floor, discipline, and area. At the same time, select the drawing frame size of the drawing sheet, and clarify the basis for area splitting of the split layout. Step 8.2: The user checks the floors, disciplines, and areas to be split. In the said Step 8.2, after the user checks the floors, disciplines, and areas to be split, perform an input rationality judgment, that is, perform a tolerance judgment. If the judgment is reasonable, execute Step 8.3. If the judgment is unreasonable, prompt an error through a pop-up window or other means and exit the command. Step 8.3: Split the views according to floors, areas, and disciplines and rename the views. Step 8.4: Perform drawing layout on the views split in Step 8.3.
[0011] In the said Step 8.2, after clicking to add the floors to be split, all unadded floor plan views will pop up. After clicking to add the disciplines to be split, the corresponding view templates will pop up for discipline splitting. After clicking to add the areas to be split, the corresponding scope boxes will pop up for area splitting.
[0012] The said Step 8.3 includes the following sub-steps: Step 8.3.1: Loop by single floor, copy multiple main views of the floor by discipline, apply the view template, and finally rename the view name. Step 8.3.2: Loop by area, copy each discipline main view as relevant and split it into multiple area views. Duplicate the discipline main view as relevant through the method Duplicate(ViewDuplicateOption.AsDependent) in Revit software, and achieve view clipping by assigning values to the CropBox. Finally, add the area view name to rename the view. Step 8.3.3: Repeat Step 8.3.2 until all areas are looped through. Step 8.3.4: Repeat Steps 8.3.1 to 8.3.3 until all floors are looped through.
[0013] The said Step 8.4 includes the following sub-steps: Step 8.4.1: Create a drawing sheet by using the method doc.CreatViewSheet in Revit software, and place the views split in Step 8.3 by using the method Viewport.Create in Revit software; Step 8.4.2: Set the drawing sheet name by using the method TextNote.Create in Revit software, and draw an underline for the drawing sheet name by using the method doc.Create.NewDetailCurve in Revit software, so that the view and the view name are placed at the center of the drawing sheet; Step 8.4.3: Assign values to the drawing sheet name and the drawing sheet number by using the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set() in Revit software.
[0014] Compared with the prior art, the present invention has the following beneficial effects: 1. Since the present invention makes up for the problems of manual splitting, merging and low efficiency in the native functions of Revit software, it can be applied to various drawing stages such as design, detailed design, and processing based on Revit software, and has a wide range of applications.
[0015] 2. The present invention can efficiently and intelligently complete merging and splitting of layout plans, and realizes programmed, automated and standardized drawing layout, drawing naming and drawing numbering. Description of the Drawings
[0016] Figure 1 is a flowchart of the efficient and intelligent splitting and merging layout method based on Revit of the present invention; Figure 2 is a schematic interface diagram of the drawing family in the efficient and intelligent splitting and merging layout method based on Revit of the present invention; Figure 3 is a schematic interface diagram of the family type in the efficient and intelligent splitting and merging layout method based on Revit of the present invention; Figure 4 is a schematic layout interface diagram of the large-scale view in the efficient and intelligent splitting and merging layout method based on Revit of the present invention; Figure 5 is a schematic selection interface diagram of the large-scale view in the efficient and intelligent splitting and merging layout method based on Revit of the present invention; Figure 6It is a prompt interface diagram for the successful layout of large-scale view layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 7 It is an interface diagram of the drawing list file after the successful layout of large-scale view layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 8 It is the drawing after the successful layout of large-scale view layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 9 It is a schematic diagram of the splitting and layout interface in the efficient intelligent splitting and merging layout method based on Revit of the present invention (the interface for splitting drawings by floor, specialty, and by the bounding box as the area); Figure 10 It is a schematic diagram of the splitting and layout interface in the efficient intelligent splitting and merging layout method based on Revit of the present invention (the interface for splitting drawings by the marked drawing views and taking the grid as the area); Figure 11 It is a schematic diagram of the splitting and layout interface in the efficient intelligent splitting and merging layout method based on Revit of the present invention (the interface for splitting drawings by floor); Figure 12 It is a schematic diagram of the splitting and layout interface in the efficient intelligent splitting and merging layout method based on Revit of the present invention (the interface for splitting drawings by specialty); Figure 13 It is a schematic diagram of the splitting and layout interface in the efficient intelligent splitting and merging layout method based on Revit of the present invention (the interface for splitting drawings by area); Figure 14 It is a prompt interface diagram for the successful splitting and layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 15 It is the view list after the successful splitting and layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 16 It is an interface diagram of the drawing list file after the successful splitting and layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention; Figure 17 It is an interface diagram with views and view names placed in the drawing frame after the successful splitting and layout in the efficient intelligent splitting and merging layout method based on Revit of the present invention. Detailed implementation manner
[0017] The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments.
[0018] Please refer to the attached Figure 1 , an efficient intelligent splitting and merging layout method based on Revit, includes the following steps: 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 detail rows row to be placed, the prefix of the drawing number, and the prefix of the drawing name.
[0019] Step 2: The user customarily selects the detail views that need to be combined for layout from the BIM model.
[0020] Step 3: Judge the input rationality, that is, conduct tolerance judgment. If the judgment is reasonable, execute Step 4; if the judgment is unreasonable, prompt an error in a pop-up window or other ways and exit the command.
[0021] The above-mentioned Step 3 includes the following sub-steps: Step 3.1: Obtain the true length L and true height H of the drawing frame size of the drawing through the viewSheet.Outline (i.e., the outer frame of the drawing frame) attribute of Revit software and through calculation, and record them as viewSheet.L and viewSheet.H respectively.
[0022] Step 3.2: Judge whether the detail views selected by the user are particularly wide, that is, whether the detail width exceeds the true length of the drawing frame, and at the same time judge whether there are particularly high ones in the detail views, that is, whether the detail height exceeds the true height of the drawing frame. If so, judge it as unreasonable, then inform the user in a prompt manner and exit the subsequent command; if not, judge it as reasonable and execute Step 4.
[0023] Specifically, in the layout of the detail views, it is necessary to judge that the maximum value Max(View.H) of the height viewH of the detail view ≤ the net height Max(viewSheetBox.V) that the drawing frame can place the detail view / the number of rows row set by the user & the maximum value Max(View.L) of the length viewL of the detail view ≤ Max(viewSheetBox.U) (this parameter represents the net length of the drawing frame, obtained by the method opened by Revit software, Max(viewSheetBox.U) = BoundingBoxXYZ.Max.U - BoundingBoxXYZ.Min.U). If the above conditions are not met, it is necessary to prompt the user with the name of the View that does not meet the conditions and require the user to adjust the View.
[0024] Step 4: Arrange the detail views selected by the user horizontally and vertically into the drawing frame in turn, as shown in the appendix Figure 5 as follows.
[0025] The above-mentioned Step 4 includes the following sub-steps: Step 4.1: Use categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) in Revit software to batch add project parameters to the drawings.
[0026] Preferably, the project parameters may include version number, overall design responsibility, checking, review, etc., which are used to complete the title block information and express the necessary key information that the title block needs to convey. The types and quantities of project parameters can be adjusted adaptively according to actual requirements. Use the categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) plugin in Revit software to achieve batch addition of project parameters, thus avoiding users adding project parameters one by one manually and improving efficiency.
[0027] Step 4.2: Determine the drawing family and family type according to the detail view selected by user interaction. Load the drawing family into the project through doc.LoadFamily(fileName) in Revit software, as shown in Appendix Figure 2 and Appendix Figure 3 shown.
[0028] Specifically, create an RVT project file through Revit software, and load the drawing family (rfa) (i.e., the file object shown in Appendix Figure 2 shown) into the created RVT project file to prepare for creating and using an instance of this family in the next step.
[0029] Step 4.3: According to user interaction, select the specified family type, and use the method doc.CreatViewSheet(familySymbol.Id) in Revit software to place the drawing family of the selected family type onto the drawing in the RVT project file, and record the created instance of this drawing family as viewSheet.
[0030] In Step 4.2, the drawing family has been loaded into the RVT project file. In Step 4.3, according to the user's specification, select the corresponding family type, create a family instance, and place the drawing family instance onto the drawing.
[0031] Step 5: Take one drawing as a unit and arrange the detail views on this drawing, as shown in Appendix Figure 4 shown.
[0032] The above-mentioned Step 5 includes the following sub-steps: Step 5.1: Determine the V position of the detail view on the drawing.
[0033] The described step 5.1 includes the following sub-steps: Step 5.1.1: Sort all the large-scale views by name, and obtain the length viewL and height viewH of all the large-scale views through viewSection.Outline of the Revit software.
[0034] Step 5.1.2: Cumulatively add the long dimensions of the large-scale views in sequence. The long dimension = the length viewL of the large-scale view + the default minimum column spacing off, until the cumulatively added long dimension of the large-scale views exceeds viewSheet.L of the drawing frame size or all the large-scale views are cumulatively added up.
[0035] Step 5.1.3: Complete the arrangement of one row of large-scale views, and record the row number where the large-scale views cumulatively added in step 5.1.2 are located as 1.
[0036] Step 5.1.4: Judge whether the row number ≤ the number of rows row of the large-scale views placed set by the user in step 1, and judge whether all the 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.
[0037] Step 5.1.5: Repeat step 5.1.2, and the row number +1, then return to step 5.1.4.
[0038] At this time, the row positions of all the large-scale views in this drawing are determined. Then, it is necessary to determine the UV positions of each large-scale view.
[0039] Step 5.1.6: In each row of large-scale views, take the maximum value Max(viewH) of the height viewH of the large-scale views as the row height occupied by the large-scale views in this row of this drawing.
[0040] Step 5.1.7: Evenly distribute the row spacing based on the net height Max(viewSheetBox.V) where the drawing frame can place the large-scale views and Max(viewH) of all rows.
[0041] Specifically, the BoundingBoxXYZ.Max and BoundingBoxXYZ.Min of viewSheet can be obtained according to the method opened by the Revit software, and then the net height Max(viewSheetBox.V) where the drawing frame can place the large-scale views = BoundingBoxXYZ.Max.V - BoundingBoxXYZ.Min.V.
[0042] Step 5.1.8: Obtain the V value of the bottom size of each row, and record it as Row[r].V.
[0043] Step 5.2: Judge the U position occupied by the large-scale views in the drawing.
[0044] For each layout detail view in a row, the column spacing needs to be recalculated for aesthetic reasons. Step 5.2 includes the following sub-steps: Step 5.2.1: Take the lengths of all the detail views in a row and calculate their total length.
[0045] Step 5.2.2: Evenly distribute the detail views in this row according to the viewSheet.L of the drawing frame size, and calculate the new column spacing newoff.
[0046] Step 5.2.3: Starting from the minimum U position coordinate viewSheetBox.Min.U of the drawing frame, calculate the U positions of each detail view in this row one by one.
[0047] Specifically, the BoundingBoxXYZ.Min of viewSheet can be obtained according to the method opened by the Revit software, and then the minimum U position coordinate BoundingBoxXYZ.Min.U of the drawing frame is obtained.
[0048] Step 5.3: Calculate the U and V positions on the drawing occupied by the detail view name according to the length viewL and height viewH of the detail view, and the V and U positions of the detail view on the drawing.
[0049] Step 5.4: Place the detail view through Viewport.Create(doc, viewSheet.Id, viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id) of the 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 the Revit software.
[0050] Step 6: When the drawing frame of a drawing is filled with detail views and the detail views have not been completely arranged, create a new drawing, repeat Step 5, and continue to arrange the detail views in the drawing frame of the new drawing until all the detail views are arranged.
[0051] Step 7: Name the drawing numbers and names according to the drawing number prefix and drawing name prefix customarily input by the user.
[0052] Specifically, a program can be created to search for drawing numbers with the same drawing number prefix and drawing names with the same drawing name prefix in the current project, and name the new drawing numbers and names. For example: First, find all drawing numbers with the GZ prefix in the project, then obtain the maximum number of the drawing numbers with the GZ prefix. Suppose it is GZ-005, then the new drawing numbers with the GZ prefix will be named GZ-006 in sequence; if no drawing numbers with the GZ prefix are found in the project, then the drawing numbers will start from GZ-001. The drawing naming is similar. Generally, it is named "Large Sample Drawing of Hangers in Basement Floor (1)", and generally, the maximum value of the numbers in the brackets is found and incremented for naming.
[0053] All large sample views are arranged on the drawing one by one. As shown in the appendix Figure 8 After the layout is completed, the drawing list can be displayed through the browser. As shown in the appendix Figure 7 shown.
[0054] The large sample layout function of the present invention automatically and evenly arranges the large sample views and large sample view names into the drawing frame of the drawing according to the drawing frame set by the user, and numbers and names each drawing in a standardized manner. The present invention can determine the specific layout positions of the large sample views based on the drawing frame size and the set spacing, and automatically create a new drawing after the drawing frame of a drawing is filled with view samples, and start a new large sample view layout.
[0055] Please refer to the appendix Figure 9 to appendix Figure 17 For step 8: When drawing, the plane split layout will split the views, layout, and automatically fill in the drawing numbers and drawing names by floor, specialty, and area with one key.
[0056] The said step 8 includes the following sub-steps: Step 8.1: Provide a second user setting interface through the Revit software. The second user setting interface is used for the user to specify whether to draw according to the already marked drawing views or to perform split layout by floor, specialty, and area. At the same time, select the drawing frame size of the drawing to be output, and clarify the area split basis for the split layout. As shown in the appendix Figure 9 and appendix Figure 10 shown.
[0057] The area split basis for the split layout includes split layout by floor, specialty, and area, the range box selected for the area split basis, the already cropped plane view, and the axis network.
[0058] Step 8.2: The user checks the split floors, disciplines (i.e., view templates), and areas (i.e., scope boxes); among them, after clicking to add split floors, all floor plan views that have not been added will pop up. After clicking to add split disciplines, the corresponding pop-up for discipline splitting is the view template. After clicking to add split areas, the corresponding pop-up for area splitting is the scope box, as shown in Appendix Figure 11 to Appendix Figure 13 shown.
[0059] The function to pop up all unadded floor plan views after clicking to add split floors is implemented by 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)). Correspondingly, only simple modifications to the above function are needed to implement the functions of splitting by discipline and splitting by area. This function is a regular function in the Revit software and belongs to the common operation means of those skilled in the art, so it will not be elaborated here.
[0060] In the above-mentioned Step 8.2, after the user checks the split floors, disciplines, and areas, a rationality judgment of the input is made, that is, a tolerance judgment is made. If the judgment is reasonable, Step 8.3 is executed. If the judgment is unreasonable, an error is prompted through a pop-up window or other means, and the command is exited.
[0061] The specific process of the input rationality judgment is as follows: In the plane layout diagram, it is necessary to judge that when the floors, disciplines, and areas (taking the scope box as an example) to be selected on the user interface are checked, at least one object of each of the floors, disciplines, and areas is selected; if the area is divided by the XY-axis grid, at least 2 grids in each direction need to be checked and added to the list. If the above conditions are met, the judgment is reasonable; if the above conditions are not met, the judgment is unreasonable.
[0062] Step 8.3: Split the views according to the floors, areas, and disciplines and rename the views.
[0063] The above-mentioned Step 8.3 includes the following sub-steps: Step 8.3.1: Loop by individual floors, copy multiple main views of the floors by discipline, apply the view template, and finally rename the view names.
[0064] Specifically, copy the main view through the method ElementTransformUtils.CopyElement() in Revit software, then apply the view template using the method viewPlan.get_Parameter(BuiltInParameter.VIEW_TEMPLATE).Set(), and finally rename the view name.
[0065] Step 8.3.2: Loop by area, copy each professional main view as relevant, and split it into multiple area views. Duplicate the professional main view as relevant through the method Duplicate(ViewDuplicateOption.AsDependent) in Revit software, and achieve view clipping by assigning values to the CropBox. Finally, add the area view name to rename the view.
[0066] Step 8.3.3: Repeat Step 8.3.2 until all areas are looped through.
[0067] Step 8.3.4: Repeat Steps 8.3.1 to 8.3.3 until all floors are looped through.
[0068] Step 8.4: Arrange the views split in Step 8.3 on the drawing sheets.
[0069] The said Step 8.4 includes the following sub-steps: Step 8.4.1: Create a drawing sheet through the method doc.CreatViewSheet in Revit software, and place the views split in Step 8.3 through the method Viewport.Create.
[0070] Step 8.4.2: Set the drawing sheet name through the method TextNote.Create in Revit software, and draw an underline for the drawing sheet name through the method doc.Create.NewDetailCurve, so that the view and the view name are placed in the center of the drawing sheet.
[0071] Step 8.4.3: Assign values to the drawing sheet name and the drawing sheet number through the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set().
[0072] The present invention can automatically generate layout drawings based on floors, view templates (i.e., specialties), scope boxes or grids (i.e., areas). After the layout drawing is completed, a list of relevant views formed by the layout drawing can be displayed on the browser, as shown in Attachment Figure 15 shown, and a list of relevant drawings, as shown in Attachment Figure 16 shown. After the layout drawing runs through the Revit software, views and their view names are placed in the drawing frame, as shown in Attachment Figure 17 shown.
[0073] In the present invention, the merging layout of detail views (i.e., steps 1 to 7) can be carried out independently, and the layout drawing of drawings can also be carried out independently (i.e., step 8), and efficient and intelligent splitting and merging layout can be achieved.
[0074] Step 9: Prompt the user by means of a pop-up window or the like that the drawing layout and the detail view layout have been completed, as shown in Attachment Figure 6 (successful layout of detail views) and Attachment Figure 14 shown (successful drawing layout).
[0075] The above are only the preferred embodiments of the present invention and are not used to limit the protection scope of the invention. Therefore, any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. An efficient and intelligent splitting and merging layout method based on Revit, characterized in that: It includes the following steps: 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 detail rows row, the prefix of the drawing number, and the prefix of the drawing name; Step 2: The user customizes and checks the detail views that need to be combined for layout from the BIM model; Step 3: Judge the input rationality, that is, perform tolerance judgment. If the judgment is reasonable, execute Step 4. If the judgment is unreasonable, prompt an error through a pop-up window or other means and exit the command; Step 4: Arrange the detail views checked by the user into the drawing frame horizontally and vertically in sequence; Step 5: Take one drawing as a unit and arrange the detail views on this drawing; Step 6: When the detail views are arranged in the drawing frame of one drawing and there are still detail views not arranged, create a new drawing, repeat Step 5, and continue to arrange the detail views in the drawing frame of the new drawing until all detail views are arranged; Step 7: Name the drawing numbers and names of the drawings according to the prefix of the drawing number, the prefix of the drawing name customarily input by the user, and the situation automatically judged by the program; Step 8: When outputting drawings, the plane split layout will split the views, layout them, and automatically fill in the drawing numbers and drawing names according to the floors, disciplines, and regions with one key; Step 9: Prompt the user that the drawing split layout and the detail view layout have been completed.
2. The method for efficient and intelligent splitting and merging layout based on Revit according to claim 1, wherein: The said Step 3 includes the following sub-steps: Step 3.1: Obtain the true length L and true height H of the drawing frame size of the drawing through the viewSheet.Outline property of Revit software and through calculation, and record them as viewSheet.L and viewSheet.H respectively; Step 3.2: Judge whether the width of any detail view checked by the user exceeds the true length of the drawing frame, and at the same time judge whether the height of any detail view in the detail views exceeds the true height of the drawing frame. If so, judge it as unreasonable, then prompt the user and exit the subsequent command; if not, judge it as reasonable and execute Step 4.
3. The method for efficient intelligent splitting and merging layout based on Revit according to claim 1 is characterized in that: The said Step 4 includes the following sub-steps: Step 4.1: Batch add project parameters to the drawing through categories.Insert(doc.Settings.Categories.get_Item(BuiltInCategory.OST_Sheets)) of Revit software; Step 4.2: Determine the drawing family and family type according to the detail views selected by the user interaction, and load the drawing family into the project through doc.LoadFamily(fileName) of Revit software; Step 4.3: According to the 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 method doc.CreatViewSheet(familySymbol.Id) of Revit software, and record the created instance of this drawing family as viewSheet.
4. The high-efficiency intelligent splitting and merging layout method based on Revit according to claim 1, wherein: The said Step 5 includes the following sub-steps: Step 5.1: Judge the V position occupied by the detail views in the drawing; Step 5.2: Determine the U position of the enlarged view in the drawing sheet; Step 5.3: Calculate the U and V positions of the enlarged view name in the drawing sheet based on the length viewL and height viewH of the enlarged view, and the V and U positions of the enlarged view in the drawing sheet; Step 5.4: Place the enlarged view by using Viewport.Create(doc, viewSheet.Id, viewSections[i].Id, viewXYZ).ChangeTypeId(viewportType.Id) in Revit software, and place the enlarged view name and the thin line at the bottom of the enlarged view name by using TextNote.Create(doc, viewSheet.Id, titleUV, titleStr, tny.Id).
5. The method for efficient intelligent splitting and merging layout based on Revit according to claim 4, characterized in that: The said Step 5.1 includes the following sub-steps: Step 5.1.1: Sort all the enlarged views by name, and obtain the length viewL and height viewH of all the enlarged views through viewSection.Outline in Revit software; Step 5.1.2: Cumulatively add the long dimensions of the enlarged views in sequence. The long dimension = the length viewL of the enlarged view + the default minimum column spacing off, until the cumulatively added long dimension of the enlarged views exceeds viewSheet.L of the drawing frame size or all the enlarged views are cumulatively added; Step 5.1.3: Complete the arrangement of one row of enlarged views, and record the row number where the enlarged views are cumulatively added in Step 5.1.2 as 1; Step 5.1.4: Determine whether the row number ≤ the number of rows row of the enlarged views set by the user in Step 1, and determine whether all the enlarged views have been arranged. If both are no, then execute Step 5.1.
5. If at least one is yes, then execute Step 5.1.6; Step 5.1.5: Repeat Step 5.1.2, and the row number +1, and return to Step 5.1.4; Step 5.1.6: In each row of enlarged views, take the maximum value Max(viewH) of the height viewH of the enlarged views as the row height occupied by the enlarged views in this row of the drawing sheet; Step 5.1.7: Evenly distribute the row spacing based on the net height Max(viewSheetBox.V) of the drawing frame that can place the enlarged views and Max(viewH) of all rows; Step 5.1.8: Obtain the V value of the bottom dimension of each row, and record it as Row[r].V.
6. The method for efficient intelligent splitting and merging layout based on Revit according to claim 4, characterized in that: The said Step 5.2 includes the following sub-steps: Step 5.2.1: Take the lengths of all the enlarged views in one row, and calculate their total length; Step 5.2.2: Evenly distribute the enlarged views in this row according to viewSheet.L of the drawing frame size, and calculate the new column spacing newoff; Step 5.2.3: Calculate the U position of each enlarged view in this row one by one starting from the minimum U position coordinate viewSheetBox.Min.U of the drawing frame.
7. The method for efficient and intelligent splitting and merging layout based on Revit according to claim 1, characterized in that: The said Step 8 includes the following sub-steps: Step 8.1: Provide a second user setting interface through the Revit software. The second user setting interface is used for the user to specify whether to generate drawings according to the marked drawing views, or to split and layout the drawings by floor, discipline, and area. At the same time, select the frame size of the drawing sheet and clarify the basis for area splitting of the split layout drawings. Step 8.2: The user checks the floors, disciplines, and areas to be split. In Step 8.2, after the user checks the floors, disciplines, and areas to be split, an input rationality judgment is made, that is, a tolerance judgment is performed. If the judgment is reasonable, Step 8.3 is executed. If the judgment is unreasonable, an error is prompted through a pop-up window or other means, and the command is exited. Step 8.3: Split the views according to floors, areas, and disciplines and rename the views. Step 8.4: Perform drawing layout on the views split in Step 8.
3.
8. The method for efficient intelligent splitting and merging layout based on Revit according to claim 7, wherein: In Step 8.2, after clicking to add a split floor, all unadded floor plan views are popped up. After clicking to add a split discipline, the corresponding view template is popped up for discipline splitting. After clicking to add a split area, the corresponding scope box is popped up for area splitting.
9. The method for efficient intelligent splitting and merging layout based on Revit according to claim 7, characterized in that: Step 8.3 includes the following sub-steps: Step 8.3.1: Loop by individual floor, copy multiple main views of the floor by discipline, apply the view template, and finally rename the view name. Step 8.3.2: Loop by area, copy each discipline main view as related, split it into multiple area views. Duplicate the discipline main view as related through the method Duplicate(ViewDuplicateOption.AsDependent) in the Revit software, and implement view clipping by assigning values to the CropBox. Finally, add the area view name to rename the view. Step 8.3.3: Repeat Step 8.3.2 until all areas are looped through. Step 8.3.4: Repeat Steps 8.3.1 to 8.3.3 until all floors are looped through.
10. The method for efficient intelligent splitting and merging layout based on Revit according to claim 7, characterized in that: Step 8.4 includes the following sub-steps: Step 8.4.1: Create a drawing sheet through the method doc.CreatViewSheet in the Revit software, and place the views split in Step 8.3 through the method Viewport.Create in the Revit software. Step 8.4.2: Set the drawing name through the method TextNote.Create in the Revit software, and draw an underline for the drawing name through the method doc.Create.NewDetailCurve in the Revit software, so that the view and the view name are placed in the center of the drawing sheet. Step 8.4.3: Assign values to the sheet name and sheet number by using the methods viewSheet.get_Parameter(BuiltInParameter.SHEET_NAME).Set() and viewSheet.get_Parameter(BuiltInParameter.SHEET_NUMBER).Set() in 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
BIM (Building Information Modeling)-based peripheral wall panel design method and system
CN116861542A
Fabricated building steel bar truss floor support plate design method and system based on BIM
CN116956444A
Mobile printing robot and printing methods with line printing pathway optimization
US20200338580A1