An analysis and calculation method and system based on parameterized urban information model data, and a storage medium

By reading, converting, and managing CIM data, establishing syntax rules and function libraries, and parsing user programming statements, the problem of unified calculation and analysis of CIM data has been solved, standardized analysis and calculation methods have been implemented, product development efficiency and stability have been improved, and the application scope has been expanded.

CN119440534BActive Publication Date: 2025-11-25GUANGZHOU AOGE INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411367786.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-29
Publication Date
2025-11-25
Estimated Expiration
2044-09-29

AI Technical Summary

Technical Problem

Existing technologies cannot effectively achieve unified and standardized calculation and analysis of CIM data. In particular, the Express language only supports IFC data format and lacks generalized calculation and analysis capabilities.

Method used

By reading and transforming multi-source CIM data, management units are created, syntax rules and function libraries are established, statement parsing methods are constructed, and a CIM calculation runtime environment is built to realize the parsing and execution of user-programmed statements and output results.

Benefits of technology

It enables standardized analysis and calculation based on a unified CIM data standard, reducing redundant development, improving product development efficiency and stability, supporting unified calculation and analysis across multiple disciplines and fields, and expanding its application scope.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440534B_ABST
    Figure CN119440534B_ABST
Patent Text Reader

Abstract

The application belongs to the technical field of CIM and is a kind of analysis and calculation method, system and storage medium based on parameterized urban information model data, which comprises the following steps: reading and converting multi-source CIM data to obtain a semantic CIM data table; creating a management unit to provide data management functions for the CIM data table and analysis and calculation results; establishing syntax rules and a function library to generate a statement parsing method; the generated statement parsing method is used to parse programming statements written by users, so that the programming statements are organized into a format that can be analyzed and calculated; a CIM calculation runtime environment is established to build a basic execution class and an execution class for each function; the statement parsing method is called to execute the statements and realize the parsing of the programming statements; and the statement parsing result is output. The application is based on a unified CIM data standard, forms a standardized and reusable analysis and calculation method, reduces repeated development, and improves product research and development efficiency and management.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of CIM technology, specifically relating to an analysis and calculation method, system, and storage medium based on parametric urban information model data. Background Technology

[0002] In 2023, the "City Information Modeling (CIM) Shared and Exchanged Data" (hereinafter referred to as the Standard) was released for review, achieving unification of CIM spatial data in terms of geometric standards and data organization. Therefore, a unified calculation and analysis engine can be implemented under the condition of unified data format.

[0003] Engines for formatted data computation already exist on the market, typically found in relational database management software. There is also DAX, an expression computation engine based on tabular data models, which supports arithmetic operations, comparison operations, logical operations, text operations, data analysis, and visualization.

[0004] In the BIM field, IFC data is stored using the Express language. Express is a declarative, rule-based language used to describe and define the entities, attributes, relationships, functions, constraints, and logical aspects of a BIM model. It allows for the definition of entities, attributes, and relationships, enabling automated design and supporting various geometric and non-geometric entities. Express boasts high readability, maintainability, scalability, reusability, cross-platform support, and programmability. Therefore, it is widely used in CAD software development, data exchange, engineering analysis, and digital twins. However, this language currently only supports the IFC data format and focuses on using entities, attributes, and relationships to describe 3D geometry and topology information, lacking generalized computational and analytical capabilities. Therefore, how to perform standardized and unified computational analysis on CIM data remains to be addressed. Summary of the Invention

[0005] To address the problems existing in the prior art, this invention provides an analysis and calculation method, system, and storage medium based on parametric urban information model data, realizing the calculation and analysis of CIM data in a unified and standardized manner.

[0006] In this embodiment of the invention, the analysis and calculation method is implemented using the following technical solution: an analysis and calculation method based on parameterized urban information model data, comprising the following steps:

[0007] S1. Read and transform multi-source CIM data to obtain a semantic CIM data table;

[0008] S2. Create a management unit to provide data management functions for CIM data tables and analysis results;

[0009] S3. Establish syntax rules and function libraries, and construct statement parsing methods; the constructed statement parsing methods are used to parse user-written programming statements, organizing the programming statements into a format that can be analyzed and calculated;

[0010] S4. Establish the CIM calculation runtime environment, construct the basic execution class and the execution class of each function; then call the statement parsing method to read the data to be analyzed according to the parameters; finally, execute the function method corresponding to the statement.

[0011] S5. Output the parsed results of the statement.

[0012] In this embodiment of the invention, the analysis and calculation system adopts the following technical solution: an analysis and calculation system based on parametric urban information model data, comprising the following modules:

[0013] The data management module provides data management functions for CIM data tables and analysis results;

[0014] The parsing rule generation module is used to establish syntax rules and function libraries, and to construct statement parsing methods. The generated statement parsing methods are used to parse user-written programming statements, organizing them into a format that can be analyzed and calculated.

[0015] The parsing and calculation module is used to establish the CIM calculation runtime environment, construct the basic execution class and the execution class of each function; then it calls the statement parsing method to read the data to be analyzed according to the parameters; and executes the function method corresponding to the statement.

[0016] The input / output module provides the ability to read and convert multi-source CIM data to obtain semantic CIM data tables, and also outputs the calculation results from the data management module.

[0017] This invention also provides a storage medium storing computer instructions, which, when executed by a processor, implement the various steps of the above-described analysis and calculation method.

[0018] Compared with the prior art, the present invention has the following advantages and beneficial effects:

[0019] 1. Based on a unified CIM data standard, a standardized and reusable analysis and calculation method is formed to reduce redundant development and improve product development efficiency and governance.

[0020] 2. The computing engine of this invention includes multiple modules such as data management, input / output, parsing rule generation, and parsing calculation, which can realize automated management of input / output, memory, etc., and improve the stability of the product.

[0021] 3. This invention also provides a simple self-written language function. Users can write multiple lines of code to form rich programming modules according to different data conditions. Based on the programming module, users can write corresponding programming statements to meet specific requirements such as data analysis and calculation in various situations, making the product more widely applicable, more convenient and universal, and realizing unified standard calculation of CIM data in multiple disciplines and fields. Attached Figure Description

[0022] Figure 1 This is a flowchart illustrating the analysis and calculation method in an embodiment of the present invention;

[0023] Figure 2 This is a flowchart illustrating the execution of statements in an embodiment of the present invention;

[0024] Figure 3 This is the overall architecture diagram of the system in this embodiment of the invention;

[0025] Figure 4 This is an architecture diagram of the data management module in an embodiment of the present invention. Detailed Implementation

[0026] The present invention will be further described in detail below with reference to the embodiments and accompanying drawings, but the embodiments of the present invention are not limited thereto.

[0027] Example 1

[0028] This embodiment provides an analysis and calculation method based on parametric city information model data. The calculation and analysis are performed based on the data format defined in the "City Information Model (CIM) Shared Exchange Data". Figure 1 As shown, the specific steps include:

[0029] S1. Read and transform multi-source CIM data to obtain semantic CIM data tables.

[0030] In this embodiment, based on the data model of "City Information Model (CIM) Shared Exchange Data", multi-source CIM data is read and converted to obtain a semantic CIM data table.

[0031] For a BIM model, a Building Table and an Entity Table can be extracted. The Building Table stores basic information about the BIM model, such as its location, height, and building type. The Entity Table stores data for each component in the BIM model, including component ID, name, category, topological geometry, boundary, floor, and bounding box.

[0032] S2. Create a management unit to provide data management functions for CIM data tables and analysis calculation results, including data storage, data access, cache management, garbage collection and other functions.

[0033] The creation process for this step includes:

[0034] 1) Create a CIM data table management unit to manage CIM data tables and access them by searching using $TableName.ColumnName.

[0035] 2) Establish a context management unit to store the results of the analysis and calculation. The context management unit can store several object arrays, each of which can be objects of any length and data type, and can be accessed by searching using #Name.

[0036] Therefore, when accessing data, the data stored in the management unit can be obtained by name reference. For example, when accessing data in the CIM data table management unit, the data in the CIM data table management unit is referenced, and its format is $TableName.ColumnName, such as $EntityTable.category; when accessing data in the context management unit, the data in the context management unit is referenced, and its format is #Name, such as #1256, #IdValues.

[0037] The cache management function supports switching between memory and hard disk storage. It uses the Most Recently Used (MRU) technology to temporarily store unused memory data on the local disk, thus reducing memory pressure.

[0038] The garbage collection function can proactively determine whether the data in the context management unit needs to be accessed again based on subsequent statements. If not, it will release the memory and reduce memory pressure.

[0039] S3. Establish syntax rules and function libraries, and generate statement parsing methods; the generated statement parsing methods are used to parse user-written programming statements, organizing the programming statements into a format that can be analyzed and calculated.

[0040] Programming statements are text written and entered by the user. This step also provides a custom language feature. Based on this feature, users can write multiple lines of code to form rich programming modules, and then write corresponding programming statements based on these modules.

[0041] In this embodiment, the process of generating statement parsing in this step specifically includes:

[0042] S31. Establish syntax rules to define the user-inputable function names, naming rules, parameter types and numbers, function execution conditions, return values, and return types.

[0043] The specific composition pattern of grammar rules is as follows:

[0044] ReturnValue=Function(Params...)[,CON={conditions}][,AsType=ReturnType]

[0045] The meanings of each parameter in the specific composition pattern of the grammar rule are explained as follows:

[0046] 1) Function refers to a function, following camelCase naming conventions. For example, the function StringEquals (compares whether two strings are equal).

[0047] 2) Params represent parameters, which can be reference types, strings, or numbers. Each parameter can represent an object existing in the management unit. Parameters cannot contain characters that are delimiters, such as '[', ']', etc., but can be used in pairs with SJSON and EJSON to wrap JSON objects or strings other than delimiters.

[0048] 3) CON represents the execution condition, which is optional and used to determine whether the row data to be calculated is true. The format is "CON={condition column 1, condition column 2, ...}", and the symbol "!" can be used to negate specific condition columns.

[0049] 4) AsType indicates the return type and is optional. It allows for type conversion of the processed data, including integer (Int), floating-point (Double), string (String), JSON object (JSON), etc. For example, converting a string type to a numeric type, such as AsType=Double.

[0050] 5) ReturnValue represents the return value, used to mark the name of the data obtained after the function is executed.

[0051] The name of the data obtained after the function execution is the name stored in the context management unit; this name can be used to access the data again later. The return format is AsType=ReturnType.

[0052] S32. Establish a function library to define the functions that can be supported, and define the inputs, outputs, scopes, execution strategies and function targets of these functions.

[0053] The established function library, as shown in Table 1, includes functions for string processing, Boolean operations, numerical calculation, spatial geometry calculation, BIM calculation, and file processing.

[0054] Among them, string processing functions, such as the SubString() function, are used to extract and escape strings, and generally adopt a strategy of calculating each string one by one during execution.

[0055] Boolean functions and numerical computation functions, such as the MathCode() function, allow users to write complex calculation formulas. During execution, not only is the function's calculation expression parsed, but the data columns also need to be extracted. Computation libraries such as NCal can be used to execute the calculation process of these functions.

[0056] Spatial geometry calculation functions, such as the Gemetry2DIntersect() function, use GIS and other algorithms to realize the overlay, buffering, statistics, and distance calculation of spatial geometry.

[0057] BIM calculation functions, such as the GetBuildingBaseLine() function, need to obtain data from the building table and component table simultaneously and participate in the calculation when executed.

[0058] File processing functions, such as the ExportImg() function, read data and export files when executed.

[0059] Table 1. Partial contents of the function library

[0060]

[0061] For functions that require extensive computation during initialization, they should be decomposed into multiple sub-functions. For example, the shortest path calculation function can be decomposed into multiple sub-functions such as InitiateRoadMap(), UseRoadMap(), and DisposeRoadMap(). The InitiateRoadMap() function constructs the road network graph and stores it as an in-memory object in the context management unit.

[0062] S33. Generate a statement parsing method based on the syntax rules and the corresponding functions in the function library.

[0063] In this embodiment, the generated statement parsing method is as follows: based on syntax rules, the user-written programming statement is parsed using a character matching method to extract the function name, parameters, conditions, return value, return type, and other contents from the statement.

[0064] S4. Establish the CIM calculation runtime environment, construct the basic execution class and the execution class of each function; then call the statement parsing method to read the data to be analyzed according to the parameters; finally, execute the function method corresponding to the statement.

[0065] It can be based on existing mature underlying runtime environments as the computing runtime environment, such as .NET, Java, Python, Node, etc.; construct a base execution class (AgmExpressMethod_Base), including attributes such as name, description, ID, parameters, conditions, and return type, including the virtual function Execute(); create an execution class for each function in the function library, each execution class inherits from the base execution class and implements the virtual function Execute().

[0066] This step receives the programming statement written by the user and calls the statement parsing method to execute the statement and parse it, extracting the function name, parameters, conditions, return value, return type, etc. If there is a syntax error, the corresponding error message is returned and parsing stops.

[0067] The process of statement execution, such as Figure 2 As shown, it specifically includes:

[0068] S41. Read the first statement, call the statement parsing method to parse the statement, and obtain the function name, parameters, conditions, return value, return type, etc.

[0069] S42. Determine whether the parsed statement meets the requirements, check whether the function exists and whether the data corresponding to the parameters exists. If it does not meet the requirements, exit.

[0070] This step checks whether the environment in which the statement is executed meets the requirements, that is, whether there is an execution condition (CON); if there is an execution condition, it determines whether the execution condition is true.

[0071] S43. Locate the corresponding execution class based on the function name and generate an execution instance (InstanceExecuter); read the corresponding parameter data from the created management unit based on the parameters in the statement and assign it to the execution instance.

[0072] S44. Determine whether the parameter data assigned to the execution instance meets the execution conditions. If it does not meet the execution conditions, report an error and exit. If it meets the execution conditions, perform the execution calculation on the execution instance and store the calculation result in the created management unit.

[0073] S45. Read the other statements in sequence and repeat S41-S44 until the execution is complete.

[0074] S5. Output the parsed results of the statement.

[0075] This step can also output the data in the management unit to a database, image, table, or JSON text file according to user requirements for storage.

[0076] Example 2

[0077] This embodiment provides an analysis and calculation system based on parametric city information model data. It performs calculations and analyses based on the data format defined in the "City Information Model (CIM) Shared Exchange Data" and utilizes the AgmExpress calculation engine. Figure 3 As shown, it specifically includes a data management module, a parsing rule generation module, a parsing calculation module, and an input / output module.

[0078] The aforementioned AgmExpress computing engine is a library consisting of functions and computational methods that supports the data model defined in "City Information Model (CIM) Shared Exchange Data". It supports context-based dynamic computation, Boolean operations, mathematical operations, text operations, spatial geometry calculations, BIM calculations, pipeline calculations, etc. It also supports data quality inspection, lightweighting, review, spatial analysis and visualization of the model, such as network analysis and topology analysis, laying the technical foundation for the CIM platform to make rapid analysis and decisions.

[0079] The data management module provides data management functions for CIM data tables and analysis results; it is responsible for the data management, indexing, and access required by the calculation engine, including the CIM data table management unit and the context management unit, such as... Figure 4 As shown. The CIM data table management unit is used to manage CIM data tables input by the user. The context management unit is used to store the results processed by the parsing and calculation module. The context management unit can store several object arrays, each of which can be objects of any length and data type, and can be accessed by searching using #Name.

[0080] The parsing rule generation module is used to establish syntax rules and function libraries, and construct statement parsing methods. These generated parsing methods are used to parse user-written function code (i.e., programming statements), organizing them into a format that can be analyzed and computed. Within the parsing rule generation module, syntax rules are established to define user-inputable function names, naming conventions, parameter types and quantities, function execution conditions, return values, and return types. A function library is established to define the functions supported by the AgmExpress computing engine, including their inputs and outputs, scope, execution strategies, and function targets. Finally, based on the syntax rules and the corresponding functions in the function library, statement parsing methods are generated.

[0081] Programming statements are text written and input by the user. The parsing rule generation module also provides a custom language function. Based on the custom language function, users can write multiple lines of code to form rich programming modules according to different data conditions, and users can write corresponding programming statements based on these modules.

[0082] The parsing and calculation module is used to establish the CIM calculation runtime environment, construct the basic execution class and the execution class of each function; then it calls the statement parsing method to execute the statements and realize the parsing of the programming statements.

[0083] In this embodiment, the parsing and calculation module receives programming statements written by the user, obtains the data corresponding to the parameters from the data management module, and is responsible for parsing the programming statements, calculating and processing various CIM data. The processed results are then stored in the data management module.

[0084] The input / output module provides the ability to read and convert multi-source CIM data to obtain semantic CIM data tables, and also outputs data such as tables, images, JSON text, and statement parsing results for storage.

[0085] When applying the technical solution of this embodiment, the AgmExpress computing engine can be packaged into files such as DLL, Jar, and Exe for use by third-party platforms, or WebSocket and RESTful API interfaces can be provided for third-party applications to access and call.

[0086] Taking a topology check of the space on the 6th floor of a building as an example, the goal is to calculate whether rooms and doors intersect. When multiple rooms intersect with the same door, they are determined to be connected, ultimately resulting in several connected room groups.

[0087] 1) Generate standard CIM data tables from BIM model files, including a Building Table and an Entity Table. The Building Table stores basic information such as the location, height, and building type of the BIM model; the Entity Table stores data for each component of the BIM model, including component ID, name, category, topology, boundary, floor, and bounding box.

[0088] 2) Write the AgmExpress statement as shown in Table 2.

[0089] Table 2. AgmExpress Statements

[0090]

[0091] 3) The parsing calculation module calls the parsing rule generation module to parse the function name, parameters, return value, function execution conditions, and other contents of each statement.

[0092] For example, in statement 1, the function name is BooleanCode, and the parameter is a Boolean expression of type string: [$EntityTable.catagory]=="room"&&[$EntityTable.elevation]=="6F".

[0093] The expression contains [$EntityTable.catagory] and [$EntityTable.elevation], indicating that the catalog and elevation fields of the EntityTable need to be found in the data management module.

[0094] 4) The parsing and calculation module executes the written AgmExpress statements in sequence.

[0095] When the statement on line 1 is executed, each row in the EntityTable is checked to see if catalogue equals room and if elevation equals 6F. The parsed result is stored in the #Is6FRoom snap-in. Clearly, #Is6FRoom is of type boolean and its length equals the number of rows in the EntityTable.

[0096] When executing the statements in lines 2 and 3, the topology and ID information of the EntityTable are extracted based on the statement parsing result #Is6FRoom stored in the context management unit. Clearly, #RoomsID and #2974190 have the same length and are less than the length of the EntityTable, representing information for all rooms.

[0097] When the statement on line 4 is executed, the JSON object in #RoomsTopology and the EdgeArray content in the topologyelements object are extracted.

[0098] Execute the statements in lines 5, 6, and 7 to extract the door information from the EntityTable.

[0099] Executing line 8, the function `Gemetry2DIntersect` takes four parameters: geometric object data A (room), the ID of geometric object data A (room ID), geometric object data B (door), the ID of geometric object data B (door ID), and the buffer distance for geometric overlay calculation (the allowable tolerance when calculating the overlay of rooms and doors). The results are stored in `#RoomIntersectDoors`, indicating which doors each room is adjacent to, with each record storing the room ID and the IDs of the multiple adjacent doors.

[0100] Executing the statement on line 9, the function ClusterGroup clusters the results of #RoomIntersectDoors, eventually obtaining a group of rooms connected to doors.

[0101] 4) The final parsing result is returned to other interfaces through the input / output module.

[0102] For the system described in this embodiment, since the implementation of the technical solution corresponds to the method of Embodiment 1, this embodiment is described in a relatively brief manner. For the corresponding technical features, please refer to the description of each step in Embodiment 1, which will not be repeated here.

[0103] The above embodiments are preferred embodiments of the present invention, but the embodiments of the present invention are not limited to the above embodiments. Any changes, modifications, substitutions, combinations, or simplifications made without departing from the spirit and principle of the present invention shall be considered equivalent substitutions and shall be included within the protection scope of the present invention.

Claims

1. A method for analyzing and calculating data based on parametric urban information model data, characterized in that, Includes the following steps: S1. Read and transform multi-source CIM data to obtain a semantic CIM data table; S2. Create a management unit to provide data management functions for CIM data tables and analysis results; S3. Establish syntax rules and function libraries, and construct statement parsing methods; The constructed statement parsing method is used to parse user-written programming statements, organizing them into a format that can be analyzed and calculated. S4. Establish the CIM computing runtime environment, and construct the basic execution class and the execution class for each function; Then, the statement parsing method is called to read the data to be analyzed based on the parameters; Finally, the function method corresponding to the statement is executed; S5. Output the calculation results in the management unit; The process of creating the management unit in step S2 includes: Establish a CIM data table management unit to manage CIM data tables; Establish a context management unit to store the results of analysis and calculation, and retrieve the data stored in the management unit by name reference; Step S3, the process of constructing the statement parsing, specifically includes: S31. Establish syntax rules to define the input function names, naming rules, parameter types and numbers, function execution conditions, return values, and return types; S32. Establish a function library to define the functions that can be supported, and define the input, output, scope, execution strategy and function target of these functions; S33. Based on syntax rules, use character matching methods to parse programming statements and extract function names, parameters, conditions, return values, and return types from the statements; The execution of the statement in step S4 includes: S41. Read the first statement, call the statement parsing method, parse the statement, and obtain the function name, parameters, conditions, return value, and return type; S42. Determine whether the parsed statement meets the requirements, check whether the function exists and whether the data corresponding to the parameters exists. If it does not meet the requirements, exit. S43. Locate the corresponding execution class based on the function name and generate an execution instance; read the corresponding parameter data from the created management unit based on the parameters in the statement and assign it to the execution instance; S44. Determine whether the parameter data assigned to the execution instance meets the execution conditions. If it does not meet the execution conditions, report an error and exit. If it meets the execution conditions, perform the execution calculation on the execution instance and store the calculation result in the created management unit. S45. Read the other statements in sequence and repeat S41-S44 until the execution is complete.

2. The analytical calculation method according to claim 1, characterized in that, The data management functions in step S2 include data storage, data access, cache management, and garbage collection.

3. The analytical calculation method according to claim 1, characterized in that, The composition pattern of the syntax rules in step S31 is as follows: ReturnValue=Function(Params...)[,CON={conditions}][,AsType=ReturnType] Function represents a function; Params represents parameters, which can be one of reference type, string, or number, and each parameter represents an object existing in the management unit; CON represents the execution condition, used to determine whether the row data to be calculated is true; AsType represents the return type, which performs type conversion on the processed data; ReturnValue represents the return value, used to mark the name of the data obtained after the function is executed.

4. The analytical calculation method according to claim 1, characterized in that, The function library established in step S32 includes: String manipulation functions are used to extract and escape strings. Boolean operation functions and numerical calculation functions allow for the writing of complex calculation formulas, which are then parsed to extract the calculation expression and data columns during execution. Spatial geometry calculation functions are used to perform superposition, buffering, statistics, and distance calculations in spatial geometry. BIM calculation functions simultaneously obtain data from the building schedule and component schedule during execution and incorporate them into the calculations. The file processing function reads data and exports the file upon execution.

5. The analytical calculation method according to claim 1, characterized in that, Step S3 also provides a custom language function; based on the provided custom language function, write multiple lines of code to form a programming module according to different data conditions, and write corresponding programming statements based on the programming module.

6. An analysis and calculation system based on parametric urban information model data, characterized in that, The analysis and calculation system is implemented using the analysis and calculation method described in any one of claims 1-5, and includes the following modules: The data management module provides data management functions for CIM data tables and analysis results; The parsing rule generation module is used to establish syntax rules and function libraries, and generate statement parsing methods; The generated statement parsing method is used to parse user-written programming statements, organizing them into a format that can be analyzed and calculated. The parsing and calculation module is used to establish the CIM calculation runtime environment, and to build the basic execution class and the execution class for each function; Then, the statement parsing method is called to read the data to be analyzed based on the parameters; the function method corresponding to the statement is then executed. The input / output module provides the ability to read and convert multi-source CIM data to obtain semantic CIM data tables, and also outputs the calculation results from the data management module.

7. A storage medium storing computer instructions thereon, characterized in that, When computer instructions are executed by a processor, each step of the analytical calculation method described in any one of claims 1-5 is implemented.

Citation Information

Patent Citations

  • Urban information model multi-source data storage method and system and medium

    CN115422193A

  • Multi-dimensional parameterized city information model construction method and system and computer equipment

    CN116152451A