Method for realizing quick statistics of engineering quantity of any three-dimensional component

Through Revit's secondary development and cycle methods, nested shared components of three-dimensional components are identified and counted, which solves the shortcomings of traditional manual calculation and Revit detailed list functions, realizes engineering quantity statistics for any selected area, and improves design efficiency and accuracy.

CN120471394APending Publication Date: 2025-08-12NANJING KISEN INT ENG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510619919.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-14
Publication Date
2025-08-12

AI Technical Summary

Technical Problem

In traditional design, the engineering volume of various professional components depends on manual calculation, and the design efficiency and accuracy cannot be guaranteed. The Revit detailed list function cannot count the component engineering volume of any selected area, and cannot identify shared components nested inside components in a specific selected area, resulting in the missing statistics of some engineering volumes.

Method used

Through the secondary development of Revit, the getMemberID and GetSubComponentIds methods are used to obtain component ID collections in combination with while loops, identify and count shared nested components at any depth, and use GetMaterialIds and GetInstanceGeometry methods to obtain component materials and geometric shape volumes, and export the bill of quantities.

Benefits of technology

It realizes fast, accurate and flexible engineering quantity statistics of any three-dimensional components, simplifies the operation process, improves design efficiency and accuracy, and ensures the completeness and ease of use of engineering quantity statistics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120471394A_ABST
    Figure CN120471394A_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of three-dimensional component statistical engineering quantity, and discloses a method for realizing rapid statistical engineering quantity of any three-dimensional component. According to the method, through a secondary development technology of Revit, rapid engineering quantity statistics of three-dimensional components in a specific selection area or any selection area is realized, and the design efficiency and accuracy are improved; according to the method, the project amount information of the shared nested component nested in any depth in other components in the selected area can be quickly identified and acquired without creating a Revit detail table, so that the project amount statistics process is simplified; according to the method, the shared nested component at any depth is obtained by using a circulation method, so that the engineering quantity statistics of the complex component is simpler, more convenient and more efficient; according to the method, the volume of the component is obtained in a geometrical shape obtaining mode, statistics of the engineering quantity of the component without the material is achieved, the problem that the engineering quantity of the component without the material cannot be counted in an existing method is solved, and the accuracy and comprehensiveness of engineering quantity calculation are ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention mainly relates to the technical field of statistical engineering quantity of three-dimensional components, and in particular to a method for realizing rapid statistical engineering quantity of any three-dimensional component. Background Art

[0002] In traditional engineering design, the design of specialized components relies heavily on two-dimensional drawing techniques. This process not only requires manual component drawings, but also requires additional manual calculations of bills of quantities for various specialized components, such as process, civil engineering, and electrical engineering, during construction. However, manual calculations are particularly challenging when dealing with complex three-dimensional components (referred to as components).

[0003] In recent years, with the continuous development of Building Information Modeling (BIM) technology, its application in engineering design has become increasingly mature. Revit, a mainstream BIM 3D design software, has revolutionized engineering design and construction processes with its multiple advantages, including visualization, parameterization, digitization, collaboration, and simulation. Using Revit, designers from various disciplines can promptly identify and resolve overlaps between disciplines, more accurately calculate project quantities, and effectively achieve the goal of reducing costs and increasing efficiency.

[0004] Revit uses system components to draw major steel components such as stairs and railings, and system-loaded components to draw concrete components such as walls, floor slabs, and structural foundations. Externally loaded components are used to draw other steel and concrete components, complex-shaped components, and other specialized components. Nested components inevitably occur within system-loaded and externally loaded components. Because nested components within components may differ from the component type of the component itself, all Revit components (except system components) include a shared attribute. For loaded components with shared attributes, Revit's bill of materials function can independently calculate their project quantities, regardless of whether they are nested components within other components.

[0005] However, at different stages of construction, it's often necessary to count quantities for specific floor components or selected areas. Furthermore, Revit's schedule functionality is insufficient for counting quantities for any selected area, limiting its flexibility. Furthermore, because Revit doesn't recognize shared components nested within components within a selected area by default, without special processing, the quantity counts for some shared, nested components will be missing.

[0006] Therefore, in response to the above problems, it is necessary to improve and optimize the existing component engineering quantity statistics method. Summary of the Invention

[0007] Traditional engineering design has long suffered from the problem of relying on manual calculations for the quantities of various specialized components, resulting in a lack of guaranteed design efficiency and accuracy. In the practice of Building Information Modeling (BIM) design, the Revit bill of materials function can only count quantities by component category or specific attributes, and is unable to count the quantities of components in any selected area. Revit is unable to recognize shared components nested within components in a specific selected area by default, resulting in missing quantity statistics for some components. In view of this, and to address the problems of the prior art, the present invention provides a method for rapidly counting the quantities of any three-dimensional component, which can improve statistical efficiency, accuracy, and flexibility, while reducing operational complexity and improving ease of use.

[0008] To achieve the above object, the present invention provides a method for quickly calculating the engineering quantity of any three-dimensional component, comprising the following steps: Step 1: Create various models of the workshop in Revit, including system components, system loaded components, external loaded components, model groups, and parts, to form a 3D workshop model diagram. The model groups are composed of the same system components, the same system loaded components, or the same external loaded components, and the parts include one or more system components, system loaded components, and external loaded components. Step 2: In the 3D model diagram, select one or more models in any area; Step 3: Execute the program, which directly obtains the ID set of the selected system components, system loaded components, and externally loaded components; Step 4: The program obtains the component ID set contained in the selected model group and parts through processing; Step 5: Merge the component ID sets obtained in steps 1-4 to obtain any deeply shared nested component IDs contained in the components of the merged set; Step 6: Merge all acquired component ID sets, obtain component information through the IDs in the merged set, including component type, material, and volume information, and export it as a component bill of quantities.

[0009] Furthermore, the procedure of step 4 processes the method of obtaining the component ID set, including step 7: in Revit, obtaining the component IDs contained in the model group and the component by calling the getMemberID method.

[0010] Furthermore, in step 5, any shared nested components of any depth contained in any component in the merged set are obtained through a while loop method, which includes the following steps: S1: declare that the while loop method will collect all shared nested component sets contained in any component in the merged set and use them as the return value of the while loop method; S2: define any component in the merged set of step S1 as the first level, the next level of shared nested components as the second level, and traverse to define the next level of shared nested components as the Nth level; S3: Call GetSubComponentIds of the first level to obtain the shared nested component collection of the second level; S4: Using the while loop method, the first determination condition is whether the shared nested component set at the second level is empty. If it is empty, the loop terminates. If it is not empty, the shared nested components of the second level are collected into the shared nested component set of step S1; S5: Call GetSubComponentIds of the second level to obtain the shared nested component set of the third level; S6: Continue executing the while loop to determine whether the shared nested component set at the third level is empty. If it is empty, the loop stops. If it is not empty, the shared nested components of the third level are collected into the shared nested component set of step S1; S7: If the nesting level of the shared nested component is greater than or equal to 3, the while loop is traversed and executed until the judgment condition is empty.

[0011] Furthermore, in step 6, the volume of each component is calculated by first obtaining the material volume through the GetMaterialIds method. If the component is not assigned a material, the volume of its geometric shape is obtained using the GetInstanceGeometry method.

[0012] Beneficial effects: The present invention provides a method for realizing rapid quantity statistics of arbitrary three-dimensional components. Through the secondary development technology of Revit, rapid quantity statistics of three-dimensional components in a specific selected area or an arbitrary selected area are realized, thereby avoiding the low efficiency and error problems of traditional manual calculations and improving design efficiency and accuracy. The present invention can quickly identify and obtain quantity information of shared nested components nested at any depth inside other components in the selected area without creating a Revit bill of materials, thereby simplifying the process of quantity statistics, reducing operation complexity and improving usability, and ensuring the integrity and flexibility of quantity statistics. The present invention uses a loop method to obtain shared nested components of any depth, making the quantity statistics of complex components simpler and more efficient. The present invention innovatively uses the method of obtaining geometric shapes to obtain the volume of components, thereby realizing quantity statistics of components without material assignment, solving the problem that the existing method cannot count the quantity of components without material assignment, and ensuring the accuracy and comprehensiveness of quantity calculation. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1This is an overall flow chart of a method for quickly calculating engineering quantities of any three-dimensional component according to an embodiment of the present invention; Figure 2 This is a diagram of the selected foundation and various components on the ground floor involved in the embodiment of the present invention; Figure 3 is a model diagram of a pile foundation component involved in an embodiment of the present invention; Figure 4 It is a shared nested component of a spiral ladder involved in an embodiment of the present invention; Figure 5 It is the bill of quantities of any selected area (foundation and ground floor) involved in the embodiments of the present invention. DETAILED DESCRIPTION

[0014] like Figures 1 to 5 As shown, the present invention provides a method for quickly calculating the engineering quantity of any three-dimensional component. Example 1

[0015] A method for quickly calculating the engineering quantity of any three-dimensional component comprises the following steps: Step 1: Create various models of the workshop in Revit, including system components, system loaded components, external loaded components, model groups, and parts, to form a 3D workshop model diagram. The model groups are composed of the same system components, the same system loaded components, or the same external loaded components, and the parts include one or more system components, system loaded components, and external loaded components. Step 2: In the 3D model diagram, select one or more models in any area; Step 3: Execute the program, which directly obtains the ID set of the selected system components, system loaded components, and externally loaded components; Step 4: The program obtains the component ID set contained in the selected model group and parts through processing; In Revit, get the member ID contained in the model group and component by calling the getMemberID method; Step 5: Merge the component ID sets obtained in steps 1-4 to obtain any deeply shared nested component IDs contained in the components of the merged set; In step 5, the shared nested components of any depth contained in any component in the merged set are obtained through a while loop method, which includes the following steps: S1: declare that the while loop method will collect all shared nested component sets contained in any component in the merged set and use them as the return value of the while loop method; S2: define any component in the merged set of step S1 as the first level, the next level of shared nested components as the second level, and traverse to define the next level of shared nested components as the Nth level; S3: Call GetSubComponentIds of the first level to obtain the shared nested component collection of the second level; S4: Using the while loop method, the first determination condition is whether the shared nested component set at the second level is empty. If it is empty, the loop terminates. If it is not empty, the shared nested components of the second level are collected into the shared nested component set of step S1; S5: Call GetSubComponentIds of the second level to obtain the shared nested component set of the third level; S6: Continue executing the while loop to determine whether the shared nested component set at the third level is empty. If it is empty, the loop stops. If it is not empty, the shared nested components of the third level are collected into the shared nested component set of step S1; S7: If the nesting level of the shared nested component is greater than or equal to 3, then the while loop is executed until the judgment condition is empty; Step 6: Merge all acquired component ID sets, obtain component information through the IDs in the merged set, including component type, material, and volume information, and export it as a component bill of quantities; The calculation of the volume of various components first obtains the material volume through the GetMaterialIds method. If the component is not assigned a material, the GetInstanceGeometry method is used to obtain the volume of its geometric shape. Example 2

[0016] like Figure 1 As shown, a method for quickly calculating the engineering quantity of any three-dimensional component includes the following steps: Create various components of the cement factory kiln workshop in Revit to form a three-dimensional model of the workshop, such as Figure 1 As shown; In the 3D model, select all components of the foundation and ground floor, such as Figure 2 As shown; Execute the program, and the program directly obtains the ID sets of the selected structural column components, structural foundation components, chimney components, etc. The pile foundation components are in the model group, such as Figure 3 As shown, the material is "concrete, cast in place - C30". The program obtains the component ID and related information of the pile foundation in the selected model group by calling the getMemberID method, such as Figure 5 As shown in row 2; Merge the component ID sets obtained in the above steps, where the spiral ladder of the chimney component shares the nested component, such as Figure 4 As shown in the figure, the program obtains the spiral ladder shared nested component ID and related information by calling the GetSubComponentIds method of the chimney component. Since the spiral ladder component 3D model has no material assigned, the GetInstanceGeometry method is used to obtain the volume of its geometric shape, and the material information is replaced with its component name information, as shown in the figure. Figure 5 As shown in line 25; Merge all acquired component ID sets, obtain component type, material, volume and other information through the ID in the set, and export it as a component bill of quantities, such as Figure 5 shown.

[0017] It should be noted that any process or method description in the flowchart or otherwise described herein may be understood to represent a module, fragment or portion of code comprising one or more executable instructions for implementing the steps of a specific logical function or process, and that the scope of the preferred embodiments of the present application includes alternative implementations in which functions may not be performed in the order shown or discussed, including performing functions in a substantially simultaneous manner or in the reverse order depending on the functions involved, which should be understood by those skilled in the art to which the embodiments of the present application belong.

[0018] It should be understood that various parts of the present application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented using hardware, as in another embodiment, any one of the following technologies known in the art or a combination thereof can be used to implement: a discrete logic circuit having a logic gate circuit for implementing a logic function on a data signal, an application-specific integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0019] Those skilled in the art will understand that all or part of the steps in the method of the above embodiment can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable storage medium. When the program is executed, it includes one or a combination of the steps of the method embodiment.

[0020] In addition, the functional units in the various embodiments of the present application may be integrated into a processing module, or each unit may exist physically separately, or two or more units may be integrated into a module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a computer-readable storage medium.

[0021] The storage medium mentioned above can be a read-only memory, a magnetic disk or an optical disk, etc.

[0022] The existing technology has the following three problems: (1) Traditional engineering design has long relied on manual calculations for the quantities of various professional components, and design efficiency and accuracy cannot be guaranteed; (2) In BIM design practice, the Revit bill of materials function can only count the quantities by component category or specific attributes, and cannot count the quantities of components in any selected area; (3) Revit cannot recognize shared components nested within components in a specific selected area by default, resulting in missing quantity statistics for some components. The present invention aims to provide a method for quickly counting the quantities of any three-dimensional component. Compared with the existing technology, the present invention can improve statistical efficiency, accuracy and flexibility, while reducing operational complexity and improving ease of use.

[0023] Finally, it should be noted that the above are only preferred embodiments of the present invention and are not intended to limit the present invention. Although the present invention has been described in detail with reference to the embodiments, those skilled in the art can still modify the technical solutions described in the aforementioned embodiments or make equivalent replacements for some of the technical features therein. However, any modifications, equivalent replacements, 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. A method for realizing rapid statistical engineering quantity of any three-dimensional component, characterized in that: The following steps are involved: Step 1: Create various models of the workshop in Revit, including system components, system loaded components, external loaded components, model groups, and parts, to form a 3D workshop model diagram. The model groups are composed of the same system components, the same system loaded components, or the same external loaded components, and the parts include one or more system components, system loaded components, and external loaded components. Step 2: In the 3D model diagram, select one or more models in any area; Step 3: Execute the program, which directly obtains the ID set of the selected system components, system loaded components, and externally loaded components; Step 4: The program obtains the component ID set contained in the selected model group and parts through processing; Step 5: Merge the component ID sets obtained in steps 1-4 to obtain any deeply shared nested component IDs contained in the components of the merged set; Step 6: Merge all acquired component ID sets, obtain component information through the IDs in the merged set, including component type, material, and volume information, and export it as a component bill of quantities.

2. The method for realizing rapid statistical engineering quantity of arbitrary three-dimensional components according to claim 1, characterized in that: Step 4 The program processes the method of obtaining the component ID collection, including step 7: in Revit, obtaining the component ID contained in the model group and the component by calling the getMemberID method.

3. The method for realizing rapid statistical engineering quantity of arbitrary three-dimensional components according to claim 1 or 2, characterized in that: In step 5, shared nested components of any depth contained in any component in the merged set are obtained through a while loop method, and the while loop method includes the following steps: S1: declare that the while loop method will collect all shared nested component sets contained in any component in the merged set and use them as the return value of the while loop method; S2: define any component in the merged set of step S1 as the first level, the next level of shared nested components as the second level, and traverse to define the next level of shared nested components as the Nth level; S3: Call GetSubComponentIds of the first level to obtain the shared nested component collection of the second level; S4: Using the while loop method, the first determination condition is whether the shared nested component set at the second level is empty. If it is empty, the loop terminates. If it is not empty, the shared nested components of the second level are collected into the shared nested component set of step S1; S5: Call GetSubComponentIds of the second level to obtain the shared nested component set of the third level; S6: Continue executing the while loop to determine whether the shared nested component set at the third level is empty. If it is empty, the loop stops. If it is not empty, the shared nested components of the third level are collected into the shared nested component set of step S1; S7: If the nesting level of the shared nested component is greater than or equal to 3, the while loop is traversed and executed until the judgment condition is empty.

4. The method for realizing rapid statistical engineering quantity of arbitrary three-dimensional components according to claim 1, characterized in that: In step 6, the volume of each component is calculated by first obtaining the material volume through the GetMaterialIds method. If the component is not assigned a material, the volume of its geometric shape is obtained using the GetInstanceGeometry method.