Analysis and calculation method and system based on parameterized city information model data and storage medium

Through an analysis and calculation method based on parameterized urban information model data, the problem of insufficient unified and standardized computing and analysis capabilities of CIM data is solved, and unified and standardized computing and analysis of CIM data is realized, which improves the product R&D efficiency and application scope.

CN119440534AActive Publication Date: 2025-02-14GUANGZHOU AOGE INTELLIGENT TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

It is difficult for the existing technology to conduct unified and standardized computing and analysis of urban information model (CIM) data, especially the generalization calculation and analysis capabilities of CIM data formats are insufficient.

Method used

Through an analysis and calculation method based on parameterized city information model data, including multi-step data reading, transformation, management, syntax rule establishment, function library construction, statement analysis and execution, we realize unified standardized calculation and analysis of CIM data. .

Benefits of technology

It realizes unified standardized calculation and analysis of CIM data, reduces repeated development, improves product R&D efficiency and stability, and expands the application scope and versatility of the product.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119440534A_ABST
    Figure CN119440534A_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of CIM, and relates to an analysis and calculation method and system based on parameterized city information model data and a storage medium, and the method comprises the steps: reading and converting multi-source CIM data, and obtaining a semantic CIM data table; the creation management unit provides a data management function for the CIM data table and the analysis calculation result; establishing a grammar rule and a function library, and generating a statement analysis method; the generated statement analysis method is used for analyzing a programming statement written by a user, so that the programming statement is organized into a format capable of being analyzed and calculated; establishing a CIM computing runtime environment, and constructing a basic execution class and an execution class of each function; calling a statement analysis method to perform statement execution so as to realize the analysis of the programming statement; and outputting a statement analysis result. Based on the unified CIM data standard, a normative and reusable analysis and calculation method is formed, repeated development is reduced, and the product research and development efficiency and treatment are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of CIM, and in particular relates to an analysis and calculation method, system and storage medium based on parameterized city information model data. Background Art

[0002] In 2023, the review version of "City Information Model (CIM) Shared Exchange Data" (hereinafter referred to as the standard) was released, which achieved the unification of CIM spatial data in terms of geometric standards and data organization. Therefore, a unified calculation and analysis engine can be realized under the conditions of a unified data format.

[0003] There are engines for formatted data calculations on the market, typically relational database management software. There is also a DAX expression calculation engine based on the table data model, which supports arithmetic operations, comparison operations, logical operations, text operations, data analysis and visualization.

[0004] In the field of BIM, IFC data is stored in the Express language. The Express language is a declarative, rule-based language used to describe the entities, attributes, relationships, functions, constraints, and logical aspects of the box definition model; it allows the definition of entities, attributes, and relationships, can realize automated design, and supports various geometric and non-geometric entities. The Express language has strong readability, high maintainability, strong scalability, high reusability, cross-platform support, and strong programmability. Therefore, it is widely used in CAD software development, data exchange, engineering analysis, digital twins, and other fields. However, the language currently only supports the IFC data format, focusing on the use of entities, attributes, and relationships to describe 3D geometry and topology information, and does not have generalized calculation and analysis capabilities. Therefore, how to perform unified and standardized calculation and analysis of CIM data remains to be solved. Summary of the invention

[0005] In order to solve the problems existing in the prior art, the present invention provides an analysis and calculation method, system and storage medium based on parameterized city information model data, which realizes the calculation and analysis of unified and standardized CIM data.

[0006] In an embodiment of the present invention, the analysis and calculation method is implemented by adopting the following technical solution: an analysis and calculation method based on parameterized urban information model data, comprising the following steps: S1. Read and convert 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 and calculation results; S3. Establish grammar rules and function libraries, and construct a statement parsing method; the constructed 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; S4. Establish the CIM computing 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; S5. Output the statement parsing result.

[0007] In the embodiment of the present invention, the following technical solution is adopted for the analysis and calculation system: an analysis and calculation system based on parameterized urban information model data, comprising the following modules: Data management module, used to provide data management functions for CIM data tables and analysis and calculation results; The parsing rule generation module is used to establish grammar rules and function libraries and construct a statement parsing method; the generated statement parsing method is used to parse the programming statements written by the user and organize the programming statements into a format that can be analyzed and calculated; The parsing and calculation module is used to establish the CIM calculation runtime environment, build the basic execution class and the execution class of each function; then call the statement parsing method, read the data to be analyzed according to the parameters; and execute the function method corresponding to the statement; The input and output module provides the ability to read and convert multi-source CIM data, obtain semantic CIM data tables, and output the calculation results in the data management module.

[0008] An embodiment of the present invention further provides a storage medium on which computer instructions are stored. When the computer instructions are executed by a processor, each step of the above-mentioned analysis and calculation method is implemented.

[0009] Compared with the prior art, the present invention has the following advantages and beneficial effects: 1. Based on the unified CIM data standard, a standardized and reusable analysis and calculation method is formed to reduce duplication of development and improve product R&D efficiency and governance.

[0010] 2. The computing engine of the present invention includes multiple modules such as data management, input and output, analysis rule generation, and analysis calculation, which can realize automatic management of input and output, memory, etc., and improve the stability of the product.

[0011] 3. The present invention also provides a simple self-compiled language function. Users can write multiple lines of code to form rich programming modules (Module) according to different data situations. 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 more versatile, and realizing unified and standardized calculation of CIM data in multiple professions and fields. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 is a schematic flow chart of an analysis and calculation method in an embodiment of the present invention; Figure 2 It is a schematic diagram of the flow of statement execution in an embodiment of the present invention; Figure 3 is a general architecture diagram of the system in an embodiment of the present invention; Figure 4 It is an architecture diagram of the data management module in an embodiment of the present invention. DETAILED DESCRIPTION

[0013] The present invention is further described in detail below in conjunction with embodiments and drawings, but the embodiments of the present invention are not limited thereto.

[0014] Example 1 This embodiment provides an analysis and calculation method based on parameterized city information model data, and performs calculation and analysis based on the data format defined in the "City Information Model (CIM) Shared Exchange Data", such as Figure 1 As shown, the specific steps include: S1. Read and convert multi-source CIM data to obtain a semantic CIM data table.

[0015] 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.

[0016] For example, for a BIM model, you can extract the building table (BuildingTable) and the component table (EntityTable). The building table stores basic information such as the location, height, and building type of the BIM model. The component table stores the data of each component of the BIM model, including the component ID, name, classification, topology, boundary, floor, bounding box, etc.

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

[0018] The creation process of this step includes: 1) Create a CIM data table management unit to manage CIM data tables and use $TableName.ColumnName for search and access.

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

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

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

[0022] The garbage collection function can actively determine whether the data of the context management unit needs to be accessed again based on subsequent statements. If not, the memory is released to reduce memory pressure.

[0023] S3. Establish grammar rules and function library, and generate 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.

[0024] Programming statements are texts written and input by users. This step also provides a self-editing language function. Based on the self-editing language function provided in this step, users can write multiple lines of code to form rich programming modules according to different data conditions, and based on the programming modules, users can write corresponding programming statements.

[0025] In this embodiment, the process of generating statement parsing in this step specifically includes: S31. Establish grammar rules to define the function name, naming rules, parameter type and quantity, function execution conditions, return value and return type that can be input by the user.

[0026] The specific composition pattern of grammar rules is: ReturnValue=Function(Params...)[,CON={conditions}][,AsType=ReturnType] In the specific composition mode of the grammar rule, the meanings of each parameter are as follows: 1) Function refers to a function that follows the camel case naming convention, such as the function StringEquals (which compares whether two strings are equal).

[0027] 2) Params represents parameters, which can be a reference type, a string, or a value. Each parameter can represent an object in the management unit. Parameters cannot contain characters that are separators, such as '[', ']', ', etc., but SJSON and EJSON can be used in pairs to wrap JSON objects or strings other than separators.

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

[0029] 4) AsType indicates the return type, which is optional. The processed data can be converted to integer (Int), floating point (Double), string (String), JSON object (JSON), etc. For example, the string type is converted to the numeric type, such as AsType=Double.

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

[0031] The name of the data obtained after the function is executed is the name stored in the context management unit; the data can be accessed again by this name later. The return format is AsType=ReturnType.

[0032] 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.

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

[0034] Among them, string processing functions, such as the SubString() function, are used to extract and escape strings, etc., and generally adopt a one-by-one calculation strategy during execution.

[0035] Boolean operation functions and numerical calculation functions, such as the MathCode() function, allow users to write complex calculation formulas. When executing, it is necessary not only to parse the function's calculation expression, but also to extract the data column. The calculation process of this function can be performed using calculation libraries such as NCal.

[0036] Spatial geometry calculation functions, such as Gemetry2DIntersect(), use GIS and other algorithms to implement spatial geometry overlay, buffering, statistics, distance calculation, etc.

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

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

[0039] Table 1. Part of the library content For functions that require a lot of calculations during initialization, they need to be decomposed into multiple sub-functions, such as the shortest path calculation function is decomposed into multiple sub-functions such as InitiateRoadMap(), UseRoadMap(), DisposeRoadMap(), etc. Among them, the InitiateRoadMap() function builds a road network graph (Graph) and stores it in the context management unit as a memory object.

[0040] S33. Generate a statement parsing method according to the grammar rules and the corresponding functions in the function library.

[0041] In this embodiment, the generated statement parsing method is: parsing the programming statements written by the user using a character matching method based on grammatical rules, and separating the function name, parameters, conditions, return value, return type and other contents from the statements.

[0042] S4. Establish the CIM computing 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.

[0043] The computing runtime environment can be based on the existing mature underlying operating environment, such as .Net, Java, Python, Node, etc.; build a basic execution class (AgmExpressMethod_Base), including properties such as name (Name), description (Description), ID, parameters (Parameters), conditions (Conditions), return type (AsType), including the Execute() virtual function; establish an execution class for each function in the function library, each execution class inherits the basic execution class, and implements the Execute() virtual function.

[0044] This step receives programming statements written by the user, and calls the statement parsing method to execute the statement to parse the statement, separating the function name, parameters, conditions, return value, return type and other contents from the statement; if the syntax is wrong, the corresponding error message is returned and the parsing is stopped.

[0045] The process of statement execution, such as Figure 2 As shown, specifically including: S41. Read the first statement, call the statement parsing method, parse the statement, and obtain the function name, parameters, conditions, return value, return type and other contents.

[0046] S42. Determine whether the parsed statement meets the requirements, check whether the function exists and whether the data corresponding to the parameter exists, and exit if not.

[0047] This step checks whether the environment for statement execution 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.

[0048] S43. Find the corresponding execution class according to the function name and generate an execution instance (InstanceExecuter); read the corresponding parameter data from the created management unit according to the parameters in the statement and assign them to the execution instance.

[0049] S44, judging whether the parameter data assigned to the execution instance meets the execution conditions, and reporting an error and exiting if it does not meet the execution conditions; if it meets the execution conditions, performing execution calculation on the execution instance and storing the calculation result in the created management unit; S45. Read other statements in sequence and repeat S41-S44 until the execution is completed.

[0050] S5. Output the statement parsing result.

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

[0052] Example 2 This embodiment provides an analysis and calculation system based on parameterized city information model data, performs calculation and analysis based on the data format defined in the City Information Model (CIM) Shared Exchange Data, and uses the AgmExpress calculation engine to implement it. Figure 3 As shown, it specifically includes a data management module, an analysis rule generation module, an analysis calculation module and an input and output module.

[0053] The above-mentioned AgmExpress calculation engine is a data model that supports the definition of "City Information Model (CIM) Sharing and Exchange Data". It is a library composed of functions and calculation methods, and supports context-based dynamic calculations; supports Boolean operations, mathematical operations, text operations, spatial geometry calculations, BIM calculations, pipeline calculations, etc.; supports models for data quality inspection, lightweighting, review, spatial analysis and visualization, such as network analysis, topology analysis, etc., laying a technical foundation for the CIM platform to quickly make analysis decisions.

[0054] The data management module is used to provide data management functions for CIM data tables and analysis and calculation results; it is responsible for data management, indexing and access required by the calculation engine, including CIM data table management unit and context management unit, such as Figure 4 As shown. The CIM data table management unit is used to manage the CIM data table passed in 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 an object of any length and any data type, and can be searched and accessed using #Name.

[0055] The parsing rule generation module is used to establish grammar rules and function libraries, and construct statement parsing methods; the generated statement parsing methods are used to parse the function codes (i.e. programming statements) written by users, so that the programming statements are organized into a format that can be analyzed and calculated. In the parsing rule generation module, grammar rules are established to define the function names, naming rules, parameter types and quantities, function execution conditions, return values, and return types that users can enter; a function library is established to define the functions that the AgmExpress calculation engine can support, and define the input and output, scope, execution strategy, and function target of these functions; and a statement parsing method is generated based on the grammar rules and the corresponding functions in the function library.

[0056] Programming statements are texts written and input by users. The parsing rule generation module also provides a self-written language function. Based on the self-written language function, users can write multiple lines of code to form a rich programming module according to different data situations. Based on this programming module, users can write corresponding programming statements.

[0057] The parsing and calculation module is used to establish the CIM calculation runtime environment, build the basic execution class and the execution class of each function; then call the statement parsing method to execute the statement and realize the parsing of the programming statement.

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

[0059] The input and output module provides the ability to read and convert multi-source CIM data to obtain semantic CIM data tables, and also outputs tables, pictures, JSON texts, statement parsing results and other data for storage.

[0060] When the technical solution of this embodiment is applied, the AgmExpress computing engine can be packaged into Dll, Jar, Exe and other files for use by third-party platforms, and WebSocket and RESTFul API interfaces can also be provided for access and calling by third-party applications.

[0061] Taking the spatial topology check of the 6th floor of a building as an example, the purpose is to calculate whether the room and the door intersect. When multiple rooms intersect with the same door, they are judged to be connected, and finally several connected room groups are obtained.

[0062] 1) Generate standard CIM data tables from BIM model files, including building tables (BuildingTable) and component tables (EntityTable). The building table stores basic information such as the location, height, and building type of the BIM model; the component table stores the data of each component of the BIM model, including component ID, name, classification, topological geometry, boundary, floor, bounding box, etc.

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

[0064] Table 2. AgmExpress statements 3) The parsing calculation module calls the parsing rule generation module to parse the function name, parameters, return value, function execution conditions, etc. of each statement.

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

[0066] The expression includes [$EntityTable.catagory] and [$EntityTable.elevation], which means that the catagory and elevation fields of EntityTable need to be found from the data management module.

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

[0068] When the statement in line 1 is executed, each row in the EntityTable table is judged to see if catagory is equal to room and if elevation is equal to 6F. The statement parsing result is stored in #Is6FRoom of the context management unit. Obviously, the type of #Is6FRoom is bool type, and its length is equal to the number of rows in the EntityTable table.

[0069] When executing the statements in lines 2 and 3, the topology information and id information of EntityTable are extracted according to the statement parsing result #Is6FRoom stored in the context management unit. Obviously, the length of #RoomsID and #2974190 is the same and smaller than the length of EntityTable, indicating the information of all rooms.

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

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

[0072] Execute the statement in line 8. The function Gemetry2DIntersect passes four parameters, namely, geometric object data A (room), geometric object data A's ID (room ID), geometric object data B (door), geometric object data B's ID (door ID), and the cache distance of geometric overlay judgment (the allowable tolerance when calculating the overlay of rooms and doors). The result is stored in #RoomIntersectDoors, indicating which doors each room is adjacent to. Each record stores the room ID and multiple connected door IDs.

[0073] Execute the statement in line 9. The ClusterGroup function clusters and groups the results of #RoomIntersectDoors, and finally obtains a group of rooms and doors that are connected.

[0074] 4) Return the final parsing results to other interfaces through the input and output modules.

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

[0076] The above embodiments are preferred implementation modes of the present invention, but the implementation modes of the present invention are not limited to the above embodiments. Any other changes, modifications, substitutions, combinations, and simplifications that do not deviate from the spirit and principles of the present invention should be equivalent replacement methods and are included in the protection scope of the present invention.

Claims

1. An analysis and calculation method based on parameterized urban information model data, characterized in that: The following steps are involved: S1. Read and convert 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 and calculation results; S3, establish grammar rules and function library, and construct sentence parsing method; The constructed statement parsing method is used to parse the programming statements written by the user so as to organize the programming statements 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 of each function; Then call the statement parsing method to read the data to be analyzed according to the parameters; Finally, the function method corresponding to the execution statement; S5. Output the calculation results in the management unit.

2. The analysis and calculation method according to claim 1, characterized in that: The creation process of the management unit in step S2 includes: Establish a CIM data table management unit for managing CIM data tables; A context management unit is established to store the results of analysis and calculation.

3. The analysis and 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.

4. The analysis and calculation method according to claim 1, characterized in that: The process of generating statement analysis in step S3 specifically includes: S31, establishing grammar rules to define input function names, naming rules, parameter types and quantities, function execution conditions, return values, and return types; S32. Establish a function library to define supported functions, and define the input, output, scope, execution strategy and function target of these functions; S33. Parse programming statements using character matching methods based on grammatical rules, and separate function names, parameters, conditions, return values, and return types from the statements.

5. The analysis and calculation method according to claim 4, characterized in that: The composition pattern of the grammatical rules in step S31 is: ReturnValue=Function(Params...)[,CON={conditions}][,AsType=ReturnType] Function represents function; Params represents parameter, which is one of reference type, string, and value. Each parameter represents an object in the management unit; CON represents execution condition, which is used to determine whether the row data to be calculated is true; AsType represents return type, which performs type conversion on the processed data; ReturnValue represents the return value, which is used to mark the name of the data obtained after the function is executed.

6. The analysis and calculation method according to claim 4, characterized in that: The function library established in step S32 includes: String processing functions, used to extract and escape strings; Boolean operation functions and numerical calculation functions allow you to write complex calculation formulas, parse the function's calculation expression and extract data columns when executing; Spatial geometry calculation functions are used to implement spatial geometry superposition, buffering, statistics, and distance calculation; BIM calculation function, when executed, obtains data from the building table and component table and participates in the calculation; File processing function, which reads data and exports files when executed.

7. The analysis and calculation method according to claim 1, characterized in that: Step S3 also provides a self-compiled language function; based on the provided self-compiled language function, according to different data conditions, multiple lines of code are written to form a programming module, and corresponding programming statements are written based on the programming module.

8. The analysis and calculation method according to claim 1, characterized in that: The statement execution of 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, judging whether the parsed statement meets the requirements, checking whether the function exists and whether the data corresponding to the parameter exists, and if not, exiting; S43, find the corresponding execution class according to the function name, and generate an execution instance; read the corresponding parameter data from the created management unit according to the parameters in the statement, and assign the data to the execution instance; S44, judging whether the parameter data assigned to the execution instance meets the execution conditions, if not, reporting an error and exiting; if meeting the execution conditions, performing execution calculation on the execution instance, and storing the calculation result in the created management unit; S45. Read other statements in sequence and repeat S41-S44 until the execution is completed.

9. An analysis and calculation system based on parameterized urban information model data, characterized in that: Includes the following modules: Data management module, used to provide data management functions for CIM data tables and analysis and calculation results; Parsing rule generation module, used to establish grammar rules and function library, and generate statement parsing method; The generated statement parsing method is used to parse the programming statements written by the user, so that the programming statements are organized into a format that can be analyzed and calculated; Parsing calculation module, used to establish CIM calculation runtime environment, build basic execution class and execution class of each function; Then call the statement parsing method, read the data to be analyzed according to the parameters; execute the function method corresponding to the statement; The input and output module provides the ability to read and convert multi-source CIM data, obtain semantic CIM data tables, and output the calculation results in the data management module.

10. A storage medium having computer instructions stored thereon, characterized in that: When the computer instructions are executed by the processor, each step of the analysis and calculation method described in any one of claims 1 to 8 is implemented.

Citation Information

Patent Citations

  • CIM-based mass data analysis method and system

    CN113392104A

  • 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