Statistical method and system for cross-class construction quantities
By using the Dynamo program to batch filter and organize data in Revit software, the problems of low operational efficiency and difficulty in data integration in the statistical analysis of multiple types of component quantities in Revit software are solved, and efficient, flexible, accurate statistical analysis and dynamic updating of cross-category component quantities are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- CHINA CONSTR EIGHTH ENG DIV CORP LTD ZHEJIANG CONSTR CO LTD
- Filing Date
- 2026-02-27
- Publication Date
- 2026-05-29
AI Technical Summary
Existing Revit software has a cumbersome operation process, isolated data and difficulty in integration when performing statistical tasks on components in multiple categories and local areas. It lacks flexibility and reusability, cannot perform cross-category statistical analysis at once, and requires manual refresh when the model changes.
By using the Dynamo program in Revit software, target elements are selected in batches, parameter data is filtered and extracted, multiple sets of parameter data lists are generated, the data is structured and formatted, and then exported to an Excel spreadsheet, enabling automatic summarization and integrated statistics of cross-category component quantities.
It improves statistical efficiency, ensures data consistency and timeliness, supports dynamic updates, and enables efficient and flexible statistics on cross-category component quantities, reducing manual operations and avoiding data errors.
Smart Images

Figure CN122113233A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of architectural engineering design technology, and in particular to a statistical method and system for cross-category component quantities. Background Technology
[0002] Revit, as a mainstream building information modeling software, has a built-in schedule function that can be used for basic statistics of component quantities. However, existing methods have significant shortcomings when dealing with the task of statistically analyzing the quantities of components in multiple categories and localized areas.
[0003] The traditional method of quantity surveying relying solely on Revit's native schedule functionality has the following limitations and workflow:
[0004] 1. The operation process is cumbersome.
[0005] Users must create separate schedules for each component category (such as structural columns, beams, floor slabs, and walls). Within each schedule, filter conditions, statistical fields (such as volume, area, and count), and sorting / grouping rules must be manually and repeatedly set. These scattered statistical tables must then be exported one by one.
[0006] 2. Data isolation and subsequent manual integration.
[0007] The statistical data generated by the above methods are naturally scattered across multiple independent tables. To obtain a complete bill of quantities, users must manually merge, categorize, summarize, and verify the data in external software (such as Excel). This process is not only labor-intensive and inefficient, but also highly susceptible to human error, leading to data inconsistencies.
[0008] 3. The functions are rigid and lack flexibility.
[0009] Unable to perform cross-category statistics at once: Revit schedules are created strictly according to component categories, and it is not possible to directly generate a unified report that integrates multiple categories of components such as walls, beams, slabs, and columns.
[0010] It struggles to support dynamic and localized statistics: when the model undergoes design changes, all related detailed tables must be manually refreshed one by one. Furthermore, it cannot easily and quickly calculate the quantities of local components for specific areas or construction sections within the model.
[0011] Adjusting statistical rules is difficult: If new classification dimensions (such as by floor or material) need to be added or calculation rules need to be adjusted, a large number of existing detailed tables must be modified, making it impossible to achieve parameterized and configurable global updates.
[0012] Therefore, there is a need to provide a statistical method and system for cross-category component quantities, which can solve the problems of low operational efficiency, difficulty in data integration, and poor flexibility and reusability of existing multi-category component quantity statistical methods. Summary of the Invention
[0013] The purpose of this invention is to provide a statistical method and system for cross-category component quantities, which can solve the problems of low operational efficiency, difficulty in data integration, and poor flexibility and reusability in existing multi-category component quantity statistical methods.
[0014] This invention is implemented as follows:
[0015] A method for calculating the quantity of cross-category components includes the following steps:
[0016] Step 1: Create a model containing multiple types of components in Revit software and filter the target elements of the model;
[0017] Step 2: Extract the attributes and parameter values of the target element using the Dynamo program to form multiple sets of parameter data lists;
[0018] Step 3: Organize the parameter data list into a data structure;
[0019] Step 4: Adjust the format of the parameter data list;
[0020] Step 5: Export the data to the Excel spreadsheet.
[0021] Step 1 includes the following sub-steps:
[0022] Step 11: Select target elements in batches from the Revit model using the Select Model Elements node in the Dynamo program to create a list of component instances;
[0023] Step 12: Filter the target elements selected in Step 11 through the Code Block node of the Dynamo program;
[0024] Step 13: Configure the Excel spreadsheet path;
[0025] Step 14: Prepare the parameter names for each component instance.
[0026] In step 11, the target elements include multiple categories of components such as walls, columns, and beams.
[0027] In step 12, each component instance that needs to have its engineering quantity counted in the target element selected in step 11 is marked, and the component instances marked as "units to be extracted" are filtered out through the Code Block node.
[0028] In step 13, the storage path and table name of the output Excel file are specified through the "Information Entry Table Path" node in the Dynamo program.
[0029] In step 14, the parameters of the component instances to be counted are predefined through the "Parameter Name" node of the Dynamo program. These parameters include number, type name, length, area, volume, and ID. The parameters of each component instance are combined into a parameter name list through the List.Create node.
[0030] Step 2 includes the following sub-steps:
[0031] Step 21: Obtain the family type of each element through the FamilyInstance.Type node in the Dynamo program, and then obtain the family name through the FamilyType.Family node and the Family.Name node;
[0032] Step 22: Extract the name of the system family component through the Element.Name node of the Dynamo program, and extract the name and ID of the target element through the Element.Id node;
[0033] Step 23: Using multiple Element.GetParameterValueByName nodes in the Dynamo program, combined with a pre-defined list of parameter names, extract the parameter values corresponding to each target element (i.e., component) in batches to form multiple sets of parameter data lists.
[0034] Step 3 includes the following sub-steps:
[0035] Step 31: Generate serial numbers: Obtain the total number of the target elements after filtering through the List.Count node of the Dynamo program, and generate consecutive serial numbers starting from 1 using the Code Block node, which will serve as the first column of the table;
[0036] Step 32: Data row assembly: Using multiple List.Create nodes in the Dynamo program, combine "serial number + element ID + element name + family type + family name + parameter values" into a complete data row;
[0037] Step 33: Transpose and adjust the structure: Transpose the data into rows and columns using the List.Transpose node in the Dynamo program so that all attributes of each target element correspond to a row, which conforms to the column-row logic of an Excel spreadsheet.
[0038] Step 4 includes the following sub-steps:
[0039] Step 41: Merge nested parameter data lists using the List.Flatten node in the Dynamo program;
[0040] Step 42: Split the parameter data list by column number using the List.Chop node in the Dynamo program to ensure that the length of each row of data is consistent with the number of parameters.
[0041] A statistical system for cross-category component quantities, comprising a method for performing statistical methods on cross-category component quantities, including:
[0042] The component acquisition and filtering module is used to perform step 1;
[0043] The parameterized data extraction module is used to perform step 2;
[0044] The cross-category data fusion and calculation module is used to perform steps 3 and 4;
[0045] The results generation and output module is used to execute step 5.
[0046] Compared with the prior art, the present invention has the following advantages:
[0047] 1. This invention can significantly improve the statistical efficiency of cross-category component quantities: it transforms the traditional "multiple classification operations" into "one batch execution", reducing repetitive operations and shortening the repetitive operations in the traditional method to the minute level.
[0048] 2. This invention can achieve data fusion across different categories of components: By constructing data processing logic, it can automatically aggregate, classify, group and summarize the engineering quantity data from different categories of components, and directly output an integrated summary table with a clear structure that integrates multiple categories of data. This completely eliminates the errors that may be caused by manual copying, pasting and summarizing between multiple tables, ensuring the integrity and consistency of the data, and also facilitating the separate statistics of the engineering quantity of components in selected local model areas.
[0049] 3. This invention has excellent flexibility and adaptability: Through the visual programming interface of the Dynamo program, a graphical and node-based configurable statistical system is formed, which encapsulates complex statistical logic into an intuitive node process. Users can customize the extraction of component information (such as elevation and location) and quickly respond to and adapt to different project requirements or measurement specifications by adjusting key parameters (such as length, area, and volume). The adjustment is highly flexible, breaks down the data barriers between different component categories in Revit, and achieves efficient, accurate, and flexible integrated engineering quantity statistics.
[0050] 4. This invention establishes a dynamic link between the statistical process and the BIM model to ensure data timeliness: Through the deep binding between the statistical process and the Revit model, when there are changes to the Revit model, the engineering quantity statistics of the components can be updated with one click through the Dynamo program, always keeping pace with the latest Revit model status, which greatly improves the timeliness and application value of Revit model data. Attached Figure Description
[0051] Figure 1 This is a schematic diagram of the Revit model of the component in step 1 of the statistical method for cross-category component engineering quantities in this invention;
[0052] Figure 2 This is a partial screenshot of the Excel spreadsheet exported in step 5 of the cross-category component quantity statistical method of the present invention (structural column component quantity statistical list).
[0053] Figure 3 This is a partial screenshot of the Excel spreadsheet exported in step 5 of the cross-category component engineering quantity statistical method of the present invention (structural frame component engineering quantity statistical list).
[0054] Figure 4 This is a partial screenshot of the Excel spreadsheet exported in step 5 of the cross-category component engineering quantity statistical method of the present invention (structural plate component engineering quantity statistical list).
[0055] Figure 5 This is a partial screenshot of the Excel spreadsheet exported in step 5 of the statistical method for cross-category component quantities of the present invention (statistical list of shear wall quantities). Detailed Implementation
[0056] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.
[0057] A method for calculating the quantity of cross-category components includes the following steps:
[0058] Step 1: Create a model containing multiple types of components in Revit software and filter the target elements of the model.
[0059] Preferably, Revit 2020 can be used, but other versions of Revit can be used depending on the actual design requirements.
[0060] Step 1 includes the following sub-steps:
[0061] Step 11: Select target elements (i.e. component instances) in batches from the Revit model using the Select Model Elements node in the Dynamo program to form a list of component instances.
[0062] In step 11, the target elements include components of multiple categories such as walls, columns, and beams.
[0063] Preferably, the Dynamo program can be version 2.1, but other versions of the Dynamo program can be used depending on the actual statistical needs.
[0064] Step 12: Filter the target elements selected in Step 11 through the Code Block node of the Dynamo program.
[0065] In step 12, each component instance that needs to have its engineering quantity counted in the target element selected in step 11 is marked (for example, marked as "unit to be extracted"). The component instances marked as "unit to be extracted" are filtered out through the Code Block node to ensure that only component instances that meet the conditions are processed in the subsequent steps.
[0066] Step 13: Configure the Excel spreadsheet path.
[0067] Specifically, through the "Information Entry Table Path (Create Automatically If Not Existing)" node in the Dynamo program, you can specify the storage path and table name (such as "Sheet1") of the output Excel file.
[0068] Step 14: Prepare the parameter names for each component instance.
[0069] Specifically, the parameters of the component instances to be counted are predefined through the "Parameter Name" node of the Dynamo program. These parameters include number, type name, length, area, volume, ID, etc. The List.Create node combines the parameters of each component instance into a parameter name list, providing a basis for subsequent value retrieval.
[0070] Step 2: Extract the attributes and parameter values of the target element using the Dynamo program to form multiple sets of parameter data lists.
[0071] Step 2 includes the following sub-steps:
[0072] Step 21: Obtain the family type of each element through the FamilyInstance.Type node in the Dynamo program, and then obtain the family name through the FamilyType.Family node and the Family.Name node.
[0073] Step 22: Extract the name of the system family component through the Element.Name node of the Dynamo program, and extract the name and ID of the target element through the Element.Id node.
[0074] Step 23: Using multiple Element.GetParameterValueByName nodes in the Dynamo program, combined with a pre-defined list of parameter names (such as number, type name, length, area, volume, ID, etc.), extract the parameter values corresponding to each target element, i.e., the component, in batches to form multiple sets of parameter data lists.
[0075] Step 3: Organize the parameter data list into a data structure.
[0076] Step 3 includes the following sub-steps:
[0077] Step 31: Generate serial numbers: Obtain the total number of the target elements after filtering through the List.Count node of the Dynamo program, and generate consecutive serial numbers starting from 1 using the Code Block node, which will serve as the first column of the table.
[0078] Step 32: Data row assembly: Using multiple List.Create nodes in the Dynamo program, combine "serial number + element ID + element name + family type + family name + parameter values" into a complete data row.
[0079] Step 33: Transpose and adjust the structure: Transpose the data into rows and columns using the List.Transpose node in the Dynamo program so that all attributes of each target element correspond to a row, which conforms to the column-row logic of an Excel spreadsheet.
[0080] Step 4: Adjust the format of the parameter data list.
[0081] Step 4 includes the following sub-steps:
[0082] Step 41: Merge nested parameter data lists using the List.Flatten node in the Dynamo program to ensure data structure consistency.
[0083] Step 42: Split the parameter data list by column number using the List.Chop node in the Dynamo program to ensure that the length of each row of data is consistent with the number of parameters.
[0084] Step 5: Export the data to the Excel spreadsheet.
[0085] Specifically, the formatted data is written to an Excel file with the specified path and name in step 13 through the Data.ExportExcel node of the Dynamo program.
[0086] This invention is based on Revit models and Dynamo programs. Step 1 allows for the one-time, cross-category selection of required component instances from the Revit software model. Step 2 involves the unified, cross-category extraction of parameter data for each component instance. Steps 3 and 4 involve the fusion and grouping of data from cross-category component instances, enabling the exported results to be updated synchronously with parametric parameters.
[0087] In Dynamo's visual programming environment, specific node logic combinations and data processing flows can be built programmatically, including core node combination logic for data aggregation, transposition, and statistical data collection by key fields, thereby enabling quantity surveying for cross-category components. When changes occur in the Revit model, simply configuring the parameters of each node in Dynamo allows for one-click synchronization of data exported to an Excel spreadsheet.
[0088] A statistical system for cross-category component quantities includes:
[0089] The component acquisition and filtering module is used to perform step 1 above.
[0090] The parameterized data extraction module is used to perform step 2 above.
[0091] The cross-category data fusion and calculation module is used to perform steps 3 and 4 above.
[0092] The results generation and output module is used to perform step 5 above.
[0093] The statistical system's component acquisition and filtering module, parameterized data extraction module, cross-category data fusion and calculation module, and result generation and output module can be configured according to actual statistical needs. This allows users to quickly generate workflows for different statistical needs by modifying the input values of the statistical parameter list in the Dynamo program, without modifying the core logic structure of the entire system.
[0094] Example 1: The method of the present invention is used in the quantity survey of multiple categories of components in a building structure. The Revit model is shown in the attached figure. Figure 1 As shown.
[0095] In this embodiment, the target elements, i.e. the components to be counted, include structural columns, structural frames, shear walls, etc. The attributes and parameter values of the template elements are extracted by the Dynamo program to form multiple sets of parameter data lists. After the parameter data lists are organized and formatted, they are exported as Excel spreadsheets.
[0096] The exported Excel spreadsheet contains statistics for the family name "Concrete_Rectangle_Column", as shown in the attached file. Figure 2As shown in the attached table, the statistical data for the family name "Concrete_Rectangular Beam" is as follows. Figure 3 As shown in the attached figure, the statistical data of its structural panels are as follows. Figure 4 As shown in the attached figure, the statistical data for its shear walls are as follows. Figure 5 As shown.
[0097] This invention utilizes Dynamo as a data integration and logic processing engine to aggregate, align, and reconstruct the "information silos" that are scattered across various component categories in Revit in real time, realizing the "statistical analysis of cross-category component quantities" that is impossible to achieve in the native Revit environment.
[0098] The above are merely 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 within the scope of protection of the present invention.
Claims
1. A statistical method for cross-category component quantities, characterized by: Includes the following steps: Step 1: Create a model containing multiple types of components in Revit software and filter the target elements of the model; Step 2: Extract the attributes and parameter values of the target element using the Dynamo program to form multiple sets of parameter data lists; Step 3: Organize the parameter data list into a data structure; Step 4: Adjust the format of the parameter data list; Step 5: Export the data to the Excel spreadsheet.
2. The statistical method for cross-category component quantities according to claim 1, characterized in that: Step 1 includes the following sub-steps: Step 11: Select target elements in batches from the Revit model using the Select Model Elements node in the Dynamo program to create a list of component instances; Step 12: Filter the target elements selected in Step 11 through the Code Block node of the Dynamo program; Step 13: Configure the Excel spreadsheet path; Step 14: Prepare the parameter names for each component instance.
3. The statistical method for cross-category component quantities according to claim 2, characterized in that: In step 11, the target elements include multiple categories of components such as walls, columns, and beams.
4. The statistical method for cross-category component quantities according to claim 2, characterized in that: In step 12, each component instance that needs to have its engineering quantity counted in the target element selected in step 11 is marked, and the component instances marked as "units to be extracted" are filtered out through the Code Block node.
5. The statistical method for cross-category component quantities according to claim 2, characterized in that: In step 13, the storage path and table name of the output Excel file are specified through the "Information Entry Table Path" node in the Dynamo program.
6. The statistical method for cross-category component quantities according to claim 2, characterized in that: In step 14, the parameters of the component instances to be counted are predefined through the "Parameter Name" node of the Dynamo program. These parameters include number, type name, length, area, volume, and ID. The parameters of each component instance are combined into a parameter name list through the List.Create node.
7. The statistical method for cross-category component quantities according to claim 1, characterized in that: Step 2 includes the following sub-steps: Step 21: Obtain the family type of each element through the FamilyInstance.Type node in the Dynamo program, and then obtain the family name through the FamilyType.Family node and the Family.Name node; Step 22: Extract the name of the system family component through the Element.Name node of the Dynamo program, and extract the name and ID of the target element through the Element.Id node; Step 23: Using multiple Element.GetParameterValueByName nodes in the Dynamo program, combined with a pre-defined list of parameter names, extract the parameter values corresponding to each target element (i.e., component) in batches to form multiple sets of parameter data lists.
8. The statistical method for cross-category component quantities according to claim 1, characterized in that: Step 3 includes the following sub-steps: Step 31: Generate serial numbers: Obtain the total number of the target elements after filtering through the List.Count node of the Dynamo program, and generate consecutive serial numbers starting from 1 using the Code Block node, which will serve as the first column of the table; Step 32: Data row assembly: Using multiple List.Create nodes in the Dynamo program, combine "serial number + element ID + element name + family type + family name + parameter values" into a complete data row; Step 33: Transpose and adjust the structure: Transpose the data into rows and columns using the List.Transpose node in the Dynamo program so that all attributes of each target element correspond to a row, which conforms to the column-row logic of an Excel spreadsheet.
9. The statistical method for cross-category component quantities according to claim 1, characterized in that: Step 4 includes the following sub-steps: Step 41: Merge nested parameter data lists using the List.Flatten node in the Dynamo program; Step 42: Split the parameter data list by column number using the List.Chop node in the Dynamo program to ensure that the length of each row of data is consistent with the number of parameters.
10. A statistical system for cross-category component quantities, implementing the statistical method for cross-category component quantities as described in claim 1, characterized in that: include: The component acquisition and filtering module is used to perform step 1; The parameterized data extraction module is used to perform step 2; The cross-category data fusion and calculation module is used to perform steps 3 and 4; The results generation and output module is used to execute step 5.