Method, electronic device and storage medium for generating three-dimensional building model

By using the communication between the Python process and the kernel main process on the BIMBASE platform, efficient generation of three-dimensional building models is achieved, which solves the problems of high development cost and high learning threshold of existing BIM technology, simplifies the development process, and promotes the application of BIM technology in the field of construction engineering.

CN113470178BActive Publication Date: 2025-09-30BEIJING GLORY PKPM TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202011483736.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-15
Publication Date
2025-09-30
Estimated Expiration
2040-12-15

AI Technical Summary

Technical Problem

The existing BIM technology in the field of construction engineering has high secondary development costs, long compilation time and high learning threshold, making it difficult for construction units and partners to master it in a short period of time.

Method used

By using the communication between the Python process and the BIMBASE kernel main process, a 3D building model is generated through Python scripts, which supports synchronous debugging and hot loading, reducing development difficulty and cost.

Benefits of technology

It has achieved low-cost and efficient generation of three-dimensional building models, simplified the development process, and promoted the application of BIM technology in the field of construction engineering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113470178B_ABST
    Figure CN113470178B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to a method for generating a three-dimensional building model, comprising: in response to a user's modeling request, enabling a BIMBASE kernel main process and service, a Python process and service; running a script for generating the three-dimensional building model; the BIMBASE service allocating resources and sending a resource identifier to the Python service to establish communication between the BIMBASE kernel main process and the Python process; and, based on script information, sending a modeling processing request to the BIMBASE kernel main process via the resources via the BIMBASE service, so that a three-dimensional building model is created and displayed based on the modeling information. Support for Python secondary development is implemented on BIMBASE, reducing development difficulty and cost, and promoting the application of BIM technology in the field of construction engineering.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computers, and more particularly, to a method for generating a three-dimensional building model, an electronic device, a computer-readable storage medium, and a computer program product. Background Art

[0002] BIM (Building Information Modeling) is an information management technology based on the entire building lifecycle. BIM digitizes building information, generating a corresponding digital information model. Based on this digital information model, construction simulations can be performed at every stage of a building's lifecycle. BIM offers capabilities such as 3D simulation, simulation testing, information integration, and shared collaboration. It can be effectively applied throughout the construction project lifecycle, including project planning, collaborative design, collision detection, performance analysis, construction simulation, and cost and schedule control. It effectively manages design changes, reducing rework and lost time. Furthermore, BIM is crucial for preserving complete information about a building's equipment, materials, and pipelines, improving refined project management, and enhancing the targeted nature of subsequent property management and maintenance. Therefore, promoting the application of BIM technology in my country's construction industry is of great significance and practical value. Summary of the Invention

[0003] An embodiment of the present disclosure provides a solution for generating a three-dimensional building model.

[0004] In a first aspect of the present disclosure, a method for generating a three-dimensional building model is provided, comprising: in response to a user's modeling request, enabling a BIMBASE kernel main process and a BIMBASE service in a building information modeling platform BIMBASE; enabling a Python process to trigger enabling of a Python service to run a Python script, wherein the Python script is used to generate a three-dimensional building model; the Python process registers script information related to running the Python script with the Python service; the Python service sends a resource request to the BIMBASE service, wherein the resource request is used to request establishment of communication between the BIMBASE kernel main process and the Python process; and in response to the resource request, the BIMBASE service sends an access request to the BIMBASE kernel main process. The BIMBASE kernel main process is notified of an external access request; in response to the BIMBASE kernel main process accepting the access request, the BIMBASE service allocates resources for establishing communication between the BIMBASE kernel main process and the Python process; the BIMBASE service sends a resource identifier to the Python service to establish communication between the BIMBASE kernel main process and the Python process; and the Python service, based on script information related to running the Python script, sends a modeling processing request to the BIMBASE kernel main process via the BIMBASE service through the resource, the modeling processing request including modeling information required for modeling, so that the BIMBASE kernel main process creates and displays a three-dimensional building model in BIMBASE based on the modeling information. Thus, Python can be used in BIMBASE for simple and efficient secondary development, reducing development difficulty and cost, and promoting the application of BIM technology in my country's construction engineering field.

[0005] In a second aspect of the present disclosure, an electronic device is provided, characterized in that it includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the first aspect of the present disclosure.

[0006] In a third aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause a computer to execute the method according to the first aspect of the present disclosure.

[0007] In a fourth aspect of the present disclosure, a computer program product is provided, comprising computer program instructions, wherein when the computer program instructions are executed by a processor, the method according to the first aspect of the present disclosure is implemented.

[0008] This summary is provided to introduce a selection of concepts in a simplified form that are further described in the detailed description below. This summary is not intended to identify key features or essential features of the disclosure, nor is it intended to limit the scope of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other purposes, features and advantages of the present disclosure will become more apparent by describing the exemplary embodiments of the present disclosure in more detail with reference to the accompanying drawings, wherein the same reference numerals generally represent the same components in the exemplary embodiments of the present disclosure. In the accompanying drawings:

[0010] Figure 1 A schematic diagram illustrating an exemplary environment according to an embodiment of the present disclosure is shown;

[0011] Figure 2 A schematic diagram showing the structure of a BIMBASE according to an embodiment of the present disclosure;

[0012] Figure 3 A schematic diagram of a Python secondary development architecture based on BIMBASE according to an embodiment of the present disclosure is shown;

[0013] Figure 4 A schematic diagram showing an example interaction process between BIMBASE and a Python process according to an embodiment of the present disclosure;

[0014] Figure 5 A schematic diagram illustrating a process of performing secondary development using Python in BIMBASE according to an embodiment of the present disclosure is shown;

[0015] Figure 6 A flowchart of a method for generating a three-dimensional building model according to an embodiment of the present disclosure is shown;

[0016] Figure 7 A schematic diagram showing a process of using Python for secondary development in BIMBASE according to an embodiment of the present disclosure; and

[0017] Figure 8 A block diagram is shown of an example device that may be used to implement embodiments of the present disclosure. DETAILED DESCRIPTION

[0018] The principles of the present disclosure will be described below with reference to several example embodiments shown in the accompanying drawings.

[0019] As used herein, the term "including" and its variations represent open inclusion, i.e., "including but not limited to." Unless otherwise stated, the term "or" means "and / or." The term "based on" means "based at least in part on." The terms "an example embodiment" and "an embodiment" mean "a set of example embodiments." The term "another embodiment" means "a set of additional embodiments." The terms "first," "second," etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0020] In traditional BIM secondary development, a development method consistent with the platform is used, that is, based on the C++ language. This brings the following disadvantages: (1) Due to the complexity and high degree of personalization of construction engineering business scenarios, the complex development method of C++ has a high personalization cost; (2) Each run takes a long time to compile, the platform needs to be restarted, and hot loading is not supported, which leads to a waste of debugging time; (3) The C++ development method has a high learning threshold, making it difficult for construction units and partners to master the development method in a short period of time.

[0021] To at least partially address some of the aforementioned shortcomings, embodiments of the present disclosure provide a method for generating a three-dimensional building model. First, in response to a user's modeling request, the BIMBASE kernel main process and the BIMBASE service in the building information modeling platform BIMBASE are enabled. Then, a Python process is enabled to trigger the enabling of the Python service to run a Python script, which is used to generate a three-dimensional building model. The Python process registers script information related to running the Python script with the Python service. The Python service sends a resource request to the BIMBASE service, requesting the establishment of communication between the BIMBASE kernel main process and the Python process. In response to the resource request, the BIMBASE service sends an access request to the BIMBASE kernel main process to notify the BIMBASE kernel main process of an external access request. In response to the BIMBASE kernel main process accepting the access request, the BIMBASE service allocates resources for establishing communication between the BIMBASE kernel main process and the Python process. The BIMBASE service sends a resource identifier to the Python service to establish communication between the BIMBASE kernel main process and the Python process. Finally, based on the script information related to running the Python script, the Python service sends a modeling processing request to the BIMBASE kernel main process through the BIMBASE service through resources. The modeling processing request includes the modeling information required for modeling, so that the BIMBASE kernel main process creates and displays the three-dimensional building model in BIMBASE according to the modeling information.

[0022] Based on this 3D building model generation solution, the BIMBASE foundational platform was constructed, providing a high-performance, low-level development platform for BIM design software. BIMBASE also supports Python secondary development with simultaneous debugging. Because Python syntax is simple and interpretable at runtime without the need for compilation, developers can simultaneously debug their own programs without restarting the platform.

[0023] Figure 1 FIG. 1 is a schematic diagram of an exemplary environment 100 according to an embodiment of the present disclosure, in which the apparatus and / or method according to an embodiment of the present disclosure may be implemented. Figure 1 As shown, various methods according to embodiments of the present disclosure are implemented at the computing device 120 .

[0024] The computing device 120 may be installed with BIMBASE 130. BIMBASE 130, also known as the BIM basic platform, provides general BIM modeling capabilities and is also a high-performance secondary development platform for BIM design software.

[0025] BIMBASE 130 comes with a suite of universal modeling tools that integrate geometry, attributes, and relational data to create any BIM model across industries and domains. BIMBASE 130 also serves as an efficient secondary development platform for BIM applications, providing core functions such as geometry modeling, graphic display, data management, collaborative management, and a development framework. Users can develop plug-ins for 3D and 2D BIM design and construction based on BIMBASE 130.

[0026] In one embodiment of the present invention, BIMBASE 130 encapsulates a set of cross-process application programming interfaces (APIs) to ensure that user 110 can utilize all the basic tools required for secondary development of these APIs.

[0027] In some other embodiments, BIMBASE 130 may provide a Python interface to support a Python development environment. BIMBASE 130 may include a script library that stores multiple Python scripts 140 - 1 , which can be reused.

[0028] User 110 may request computing device 120 to create a 3D building model. For example, user 110 may run a Python script to request that a 3D model be created directly in BIMBASE 130. User 110 may also run a Python script to request that a Python tool be launched in BIMBASE 130 that can interactively create a 3D model. In some embodiments, user 110 may run Python script 140-1 in BIMBASE 130 or run Python script 140-2 in an external integrated development environment to request that a 3D model be generated in BIMBASE 130.

[0029] In some embodiments, in response to a user's modeling request, computing device 120 may activate the BIMBASE kernel main process, BIMBASE services, Python processes, and Python services within the building information modeling platform BIMBASE. Computing device 120 may establish communication between the BIMBASE kernel main process and the Python process via the BIMBASE services and the Python service. By running Python script 140, computing device 120 may create and display a 3D building model within BIMBASE 130.

[0030] It is understood that examples of computing device 120 include, but are not limited to, computers, tablet computers, and smartphones. Interaction with user 110 includes, but is not limited to, user input including keyboard input, mouse input, touch input, voice input, gesture input, eye tracking input, digital drawing tablet input, etc. This disclosure is not limited in this regard.

[0031] The following will be combined Figure 1 Example environment, reference Figures 2 to 7 The method for generating a three-dimensional building model according to an embodiment of the present disclosure is described in detail with reference to a flowchart or schematic diagram. It should be understood that the described method may include additional actions not shown and / or may omit the actions shown, and the scope of the present disclosure is not limited in this respect.

[0032] Figure 2 FIG. 2 shows a schematic diagram of a structure 200 of a BIMBASE according to an embodiment of the present disclosure. Figure 2 In the embodiment, BIMBASE 202 includes a P3D graphics engine 204 , a secondary development interface 206 , a BIM general modeling module 208 and a series of functional plug-ins 210 .

[0033] In some embodiments, the P3D graphics engine 204 and the BIM universal modeling module 208 can provide a set of universal modeling tools. The entire BIM model consists of primitives, components, and assemblies, along with their properties and relationships, organized in a scene tree. Primitives are the smallest visual units that make up an object, components are combinations of primitives, and assemblies are combinations of components. This allows for the expression of various complex three-dimensional building models. The BIM universal modeling module 208 allows for the convenient and user-friendly creation of primitives, components, and assemblies, and their management through a customizable scene tree.

[0034] In some embodiments, BIMBASE 130 can provide custom object property sets, namely functional plug-ins 210, to allow users to customize object property sets and bind them to graphic elements, components, and assemblies. Functional plug-ins 210 may include BIMBASE series plug-ins, municipal professional design plug-ins, power professional design plug-ins, and plant process piping design plug-ins, among others. These functional plug-ins 210 can be used to create BIM models for buildings, roads, bridges, tunnels, sites, underground spaces, plant pipelines, equipment, and the like. It will be understood that the functional plug-ins listed here are merely examples, and those skilled in the art will appreciate that BIMBASE 130 can include any professional design plug-ins to enable the creation of BIM models for different disciplines.

[0035] In some embodiments, the secondary development interface 206 can provide users 110 with secondary development capabilities for BIM applications. BIMBASE 130 can support multiple levels of secondary development, from graphics platforms and professional platforms to upper-level software, all with open APIs. In some embodiments, BIMBASE can support C++ and Python. Figure 3 FIG. 3 is a schematic diagram of a Python secondary development architecture 300 based on BIMBASE according to an embodiment of the present disclosure. Figure 3 BIMBASE 130 offers multiple levels of secondary development. The P3D kernel 310 and C++ secondary development 320 provide BIMBASE 130's basic modeling capabilities, while Python secondary development 330 is also supported. Because Python's syntax is simple and interpretable at runtime without the need for compilation, secondary development with Python is simpler and more convenient than C++ development. This allows developers to debug their own programs simultaneously, allowing them to debug immediately after writing them, and to manage the relationship between secondary development and the platform through a hot-swappable process. BIMBASE 130 also offers a variety of specialized design plug-ins 340. Therefore, BIMBASE 130 can support the creation of BIM models for diverse disciplines.

[0036] In this way, a BIM development environment can be established, and users 110 can share components developed by themselves. The components developed by users 110 can be combined arbitrarily, and complex models can be easily combined from basic models. In addition, BIMBASE provides a set of cross-process APIs to provide process independence, ensuring that users can use all the basic tools required for secondary development of the API, so that users can choose Python development environments and tools. During the secondary development process, they can debug and find program defects and errors at any time, and this process does not require waiting for compilation and restarting the platform, providing more convenience. Therefore, with the help of this mechanism, the user's pre-development preparation work can be simplified.

[0037] References below Figure 4 The following describes an example interaction process between various processes and services in the computing device 120, so that the computing device 120 can build and display a three-dimensional building model by running a Python script. Figure 4 A schematic diagram of an example interaction process 400 between BIMBASE and Python processes according to an embodiment of the present disclosure is shown. For illustrative purposes, reference will be made to Figure 1 An example interaction process 400 is described.

[0038] like Figure 4 As shown, user 110 can initiate a modeling request. For example, user 110 can initiate a modeling request by clicking BIMBASE 130 with a mouse. In response to the user's modeling request, the BIMBASE kernel main process 408 in the building information modeling platform BIMBASE is started (410), and the BIMBASE service 406 is started (412) at the same time. Then, the BIMBASE service 406 can register basic functions (414). Basic functions may include functions necessary for three-dimensional modeling, such as tool functions, mouse click functions, etc.

[0039] When the user runs (416) a Python script, the BIMBASE kernel main process 408 may enable (418) a Python process 402, and then the Python process 402 may enable (420) a Python service 404 to run the Python script, which is used to generate a three-dimensional building model. At this point, an external integrated development environment for editing and running Python scripts may appear in BIMBASE 130. In some embodiments, the user may run the Python script in BIMBASE 130. For example, the user may directly run a pre-written Python script in the interactive interface provided in BIMBASE 130. In some embodiments, the user may run the Python script in the external integrated development environment. For example, the user may write a Python script in the external integrated development environment and run the Python script after writing it. In some embodiments, the external integrated development environment may also provide a breakpoint debugging function.

[0040] Figure 5 FIG. 5 is a schematic diagram showing a process 500 of using Python for secondary development in BIMBASE according to an embodiment of the present disclosure. Figure 5 As shown, BIMBASE 130 displays two areas: the black editing area on the left is the Python external integrated development environment 520, and the white area on the right is the BIMBASE interactive interface 510. Users can write, run, and debug Python scripts in the Python external integrated development environment 520. Users can also run pre-written Python scripts directly in the BIMBASE interactive interface 510. This allows developers to use Python for 3D modeling and simultaneously debug their own programs, allowing them to debug them as soon as they are written without having to restart the platform.

[0041] Continue to refer Figure 4, the Python process 402 can register (422) script information related to running the Python script with the Python service 404. In some embodiments, based on the content of the Python script, the Python process 402 can register the functions and parameters called by running the Python script with the Python service 404. For example, the Python script can be used to start a Python tool that can interactively build a three-dimensional model. The Python tool can be, for example, a property dialog box, a menu, etc. In this case, the script information can include the function called by starting the Python tool; the Python script can also be used to directly build a "sandwich" wall model. In this case, the script information can include the function and parameters called by building the wall model. In some embodiments, the script information related to running the Python script can also include Python subscripts. Some common Python scripts used for general model building can be stored in the script library in BIMBASE 130 so that these Python scripts can be reused. In this case, the user can automatically run other reusable Python scripts in the script library by running the Python execution script, so that the Python execution script has less code and only serves to organize the reusable Python scripts in the script library and provide some initial data. The Python scripts in the script library can contain a large number of model creation logic. The Python execution scripts only need to be combined and assembled to complete the 3D building model required by the user. Afterwards, the Python service 404 can further communicate with the BIMBASE service 406 based on the script information to generate the 3D building model.

[0042] Further, the Python service 404 may send a (424) resource request to the BIMBASE service 406, which is used to request the establishment of communication between the BIMBASE kernel main process 408 and the Python process 402. For example, the resource may include a pipe name for communication between the BIMBASE kernel main process 408 and the Python process 402. It will be understood that the resource may also include any resource for establishing communication between the BIMBASE kernel main process 408 and the Python process 402. Subsequently, in response to the resource request, the BIMBASE service 406 may send a (426) access request to the BIMBASE kernel main process 408 to notify the BIMBASE kernel main process 408 that an external access request has been requested. In response to the BIMBASE kernel main process 408 accepting the access request, the BIMBASE service 406 may allocate resources for establishing communication between the BIMBASE kernel main process 408 and the Python process 402. Then, the BIMBASE service 406 may send 428 the identifier of the resource (e.g., a pipe name) to the Python service 404 to establish communication between the BIMBASE kernel main process 408 and the Python process 402. In this way, communication between the Python process 402 and the BIMBASE kernel main process 408 is established through the Python service 404 and the BIMBASE service 406.

[0043] Finally, the Python service 404 can send (430) a modeling processing request to the BIMBASE kernel main process 408 through the BIMBASE service 406 via resources based on the script information related to running the Python script. The modeling processing request may include the modeling information required for modeling, so that the BIMBASE kernel main process can create and display a three-dimensional building model in BIMBASE according to the modeling information.

[0044] Thus, according to the embodiments of the present disclosure, communication between the Python process and the BIMBASE kernel main process can be established through the Python service and the BIMBASE service, thereby enabling simple and efficient secondary development using Python in BIMBASE, reducing development difficulty and cost, and promoting the application of BIM technology in my country's construction engineering field. Now, some example embodiments will be described in detail.

[0045] In some embodiments, the modeling processing request may be a geometry creation request, which includes information required to create the geometry. At this point, the BIMBASE kernel main process 408 may create and display a three-dimensional building model in BIMBASE 130 based on the information required to create the geometry. This embodiment provides an example of a user directly generating a three-dimensional building model by running a Python script. Users can directly generate complex three-dimensional building models by running a Python script. In some embodiments, the geometry creation request may include information indicating one or more of the following: the type of geometry, the size of the geometry, or the color of the geometry. Still taking the creation of a "sandwich" wall model as an example and referring to Figure 5 .

[0046] For example, a user writes a code 530 for directly building a "sandwich" wall model 540 in the Python external integrated development environment 520. It can be understood that the user can also run the code 530 for directly building a "sandwich" wall model 540 in the BIMBASE interactive interface 510. Figure 5 As shown, the code 530 defines the shapes included in the "sandwich" wall model 540, the lengths, widths, heights, and positions of these shapes, as well as the coordinates of the position of the "sandwich" wall model 540 displayed in the BIMBASE interactive interface 510. When a user runs the code 530 in the Python external integrated development environment 520, the Python service 404 can send a geometry creation request to the BIMBASE kernel main process 408 via the BIMBASE service 406 through resources. The geometry creation request includes the shapes included in the creation of a "sandwich" wall model 540, the lengths, widths, heights, and positions of these shapes, as well as the coordinates of the position of the "sandwich" wall model 540 displayed in the BIMBASE interactive interface 510. In this way, the BIMBASE kernel main process 408 can create and display a "sandwich" wall model 540 in BIMBASE 130 based on this information.

[0047] In some embodiments, when running a Python script in BIMBASE 130, the user can modify the shape, number, color, and position of the 3D building model to be created. In this way, the user can create multiple 3D building models simultaneously and conveniently modify the shape, number, color, and position of the 3D building models to meet the user's needs.

[0048] It will be appreciated that the request to create a geometry may include any suitable information indicating any geometry-related information. In this way, the user can conveniently use Python language to generate a complex three-dimensional building model composed of multiple aggregates.

[0049] In some embodiments, the modeling processing request may be a request to enable a Python tool, which may include information required to enable the Python tool. At this point, the BIMBASE kernel main process 408 may enable the Python tool based on the information required to enable the Python tool, waiting for the user to perform a specific operation. This embodiment provides an example of a user launching a Python tool to interactively create a three-dimensional model. The user can use the Python tool to interactively generate a three-dimensional building model in response to the user's specific operation.

[0050] In some embodiments, specific operations may include one or more of the following: mouse clicks, keyboard presses, or mouse drags. In some embodiments, after the BIMBASE kernel main process 408 receives a request to enable the Python tool, the BIMBASE kernel main process 408 may detect the user's specific operations. Different from directly establishing a "sandwich" wall model, after enabling the Python tool, the BIMBASE kernel main process 408 needs to detect the user's specific operations to carry out modeling. In response to the user performing the specific operation, the BIMBASE kernel main process 408 may send operation information indicating the specific operation to the Python service 404 via the BIMBASE service 406. The operation information is related to the specific operation, for example, the operation type of the specific operation, the location where the specific operation occurs, etc. It will be understood that only several specific operations and the operation information related to the specific operations are exemplarily given here. In actual use, any suitable specific operation and its operation information may be adopted.

[0051] Then, the Python service 404 may run the Python script according to the operation information and send a create geometry request to the BIMBASE kernel main process 408 via the BIMBASE service 406. In response to the create geometry request, the BIMBASE kernel main process 408 may create and display a 3D building model in the BIMBASE 130. The information included in the create geometry request and the method of creating and displaying the 3D building model in response to the create geometry request are the same as the method of directly creating a 3D building model, and will not be described in detail here. Take the example of creating a "sandwich" wall model with two mouse clicks and refer to Figure 5 .

[0052] like Figure 5As shown, the user can click the mouse twice at different locations in the BIMBASE interactive interface 510 to create a "sandwich" wall model 540 between the two locations. In this way, the user can interactively use the Python language to quickly and easily generate a complex three-dimensional building model composed of multiple aggregates, further simplifying the user's operation.

[0053] In some embodiments, when a Python script is executed in BIMBASE 130, in response to a user request to edit a 3D building model displayed in BIMBASE 130, the BIMBASE kernel main process 408 may send information indicating the edit to the Python service 404 via the BIMBASE service 406. While the Python script is running in BIMBASE 130, the user can utilize Python tools to modify or replace the displayed 3D building model. In some embodiments, the user request to edit the 3D building model displayed in BIMBASE 130 may include one or more of the following: a user requesting to change the number, color, or shape of the 3D building model. It will be appreciated that the user may request any suitable editing operation on the 3D building model displayed in BIMBASE 130.

[0054] The Python service 404 can then modify and run the Python script based on the edit-related information and send a create geometry request to the BIMBASE kernel main process 408 via the BIMBASE service 406. In response to the create geometry request, the BIMBASE kernel main process 408 can create and display a 3D building model in BIMBASE 130. The information included in the create geometry request and the method for creating and displaying the 3D building model in response to the create geometry request are the same as those for directly creating a 3D building model and will not be further described here. In this way, users can conveniently modify the created 3D building model.

[0055] Figure 6 FIG. 6 is a flow chart showing a method 600 for generating a three-dimensional building model according to an embodiment of the present disclosure. For example, the method 600 may be performed as follows: Figure 1 It is implemented by the computing device 120 shown in FIG. It should be understood that the method 600 may also be implemented by any other suitable computing device, and this is only an example and should not constitute any limitation to the scope of the present disclosure.

[0056] In block 602, in response to a user's modeling request, the computing device 120 may enable the BIMBASE kernel main process and BIMBASE service within the building information modeling platform BIMBASE. In block 604, a Python process is enabled to trigger the activation of the Python service to run a Python script used to generate a 3D building model. In block 606, the Python process registers script information related to running the Python script with the Python service. In block 608, the Python service sends a resource request to the BIMBASE service, requesting communication between the BIMBASE kernel main process and the Python process. In block 610, in response to the resource request, the BIMBASE service sends an access request to the BIMBASE kernel main process to notify the BIMBASE kernel main process of an external access request. In block 612, in response to the BIMBASE kernel main process accepting the access request, the BIMBASE service allocates resources for establishing communication between the BIMBASE kernel main process and the Python process. In block 614, the BIMBASE service sends a resource identifier to the Python service to establish communication between the BIMBASE kernel main process and the Python process. In box 608, the Python service sends a modeling processing request to the BIMBASE kernel main process through the BIMBASE service via the resource based on the script information related to running the Python script. The modeling processing request includes the modeling information required for modeling, so that the BIMBASE kernel main process creates and displays the three-dimensional building model in BIMBASE according to the modeling information.

[0057] Figure 7A schematic diagram illustrating a process 700 for secondary development using Python in BIMBASE according to an embodiment of the present disclosure is shown. BIMBASE may include a script library 710, which contains multiple Python scripts 720-1...720-N (hereinafter collectively referred to as Python scripts 720 for ease of description). These Python scripts 720 are provided as an API and can be reused. The computing device 120 can run a Python execution script 730, also provided as an API. During execution, the Python execution script 730 automatically calls the Python scripts 720 in the script library 710. The Python execution script only organizes the Python scripts 720 in the script library 710 and provides some initial data, thus having relatively little code. The Python scripts 720 in the script library 710 may contain logic for creating a large number of models, and the Python execution script 730 simply needs to assemble these scripts to complete the user's desired 3D building model. BIMBASE also includes a Python tool 730, which the user can use to define attributes such as the shape, number, or color of the generated 3D building model. By running the Python script, the generated three-dimensional building model 740 can be displayed in BIMBASE. Figures 2 to 6 , I will not go into details here.

[0058] Figure 8 8 is a schematic block diagram of an example electronic device 800 that can be used to implement an embodiment of the present disclosure. For example, the electronic device 800 can be used to implement Figure 1 800. As shown in the figure, the device 800 includes a central processing unit (CPU) 801, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 802 or loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the device 800 can also be stored. The CPU 801, ROM 802, and RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0059] Various components in device 800 are connected to I / O interface 805, including an input unit 806, such as a keyboard, mouse, etc.; an output unit 807, such as various types of displays, speakers, etc.; a storage unit 808, such as a magnetic disk, optical disk, etc.; and a communication unit 809, such as a network card, modem, wireless communication transceiver, etc. The communication unit 809 allows device 800 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0060] The processing unit 801 performs the various methods and processes described above, such as process 500. For example, in some embodiments, process 500 can be implemented as a computer software program or computer program product that is tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed on the device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by CPU 801, one or more steps in process 500 described above can be performed. Alternatively, in other embodiments, CPU 801 can be configured to perform process 300 in any other suitable manner (e.g., by means of firmware).

[0061] The present disclosure may include methods, devices, systems, and / or computer program products. The computer program product may include a computer-readable storage medium containing computer-readable program instructions for executing various aspects of the present disclosure. In some embodiments, the methods described herein may be used in prefabricated building design. In some embodiments, the methods described herein may be implemented in BIMBASE.

[0062] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, any non-transitory storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.

[0063] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[0064] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0065] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0066] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0067] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0068] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.

[0069] The embodiments of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, practical applications, or improvements to the technology in the market, or to enable other persons skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for generating a three-dimensional building model, the method comprising: In response to the user's modeling request, the BIMBASE kernel main process and BIMBASE service in the building information modeling platform BIMBASE are enabled; Starting a Python process to trigger the starting of a Python service to run a Python script in a script library, wherein the Python script is used to generate a three-dimensional building model, and the script library is included in the BIMBASE; The Python process registers script information related to running the Python script with the Python service; The Python service sends a resource request to the BIMBASE service, wherein the resource request is used to request to establish communication between the BIMBASE kernel main process and the Python process; In response to the resource request, the BIMBASE service sends an access request to the BIMBASE kernel main process to notify the BIMBASE kernel main process that there is an external access request; In response to the BIMBASE kernel main process accepting the access request, the BIMBASE service allocates resources for establishing communication between the BIMBASE kernel main process and the Python process; The BIMBASE service sends an identifier of the resource to the Python service to establish communication between the BIMBASE kernel main process and the Python process; as well as The Python service sends a modeling processing request to the BIMBASE core main process via the resource and the BIMBASE service based on the script information related to running the Python script, wherein the modeling processing request includes modeling information required for modeling, so that the BIMBASE core main process creates and displays the three-dimensional building model in the BIMBASE according to the modeling information; Enabling the Python process to trigger the enabling of the Python service to run the Python script includes: automatically running or combining and assembling reusable Python scripts in the script library by running the Python execution script; The modeling processing request includes a request to enable a Python tool, and the request to enable a Python tool includes information required to enable a Python tool. The BIMBASE kernel main process creates and displays the three-dimensional building model in the BIMBASE according to the modeling information, including: The BIMBASE kernel main process enables the Python tool according to the information required to enable the Python tool, and waits for the user to perform a specific operation; In response to a user performing a specific operation, the BIMBASE kernel main process sends operation information indicating the specific operation to the Python service via the BIMBASE service; The Python service runs the Python script according to the operation information, and sends a create geometry request to the BIMBASE kernel main process via the BIMBASE service; and In response to the create geometry request, the BIMBASE kernel main process creates and displays the three-dimensional building model in the BIMBASE.

2. The method according to claim 1, wherein enabling the Python process to trigger enabling of the Python service to run the Python script further comprises: Running the Python script in the BIMBASE; or Run the Python script in an external integrated development environment.

3. The method according to claim 1 , wherein the modeling processing request further comprises a geometry creation request, the geometry creation request comprises information required for creating a geometry, and the BIMBASE kernel main process creates and displays the 3D building model in the BIMBASE according to the modeling information, further comprising: The BIMBASE kernel main process creates and displays the three-dimensional building model in the BIMBASE according to the information required to create the geometry.

4. The method of claim 3 , wherein the create geometry request includes information indicating one or more of: The type of geometry, the size of the geometry, or the color of the geometry.

5. The method according to claim 4, wherein the specific operation comprises one or more of the following: Mouse click, keyboard press, or mouse drag.

6. The method according to claim 2, wherein when running the Python script in the BIMBASE, the method further comprises: In response to a user request to edit the three-dimensional building model displayed in the BIMBASE, the BIMBASE kernel main process sends information indicating editing-related information to the Python service via the BIMBASE service; The Python service modifies and runs the Python script according to the information related to editing, and sends a create geometry request to the BIMBASE kernel main process via the BIMBASE service; as well as In response to the create geometry request, the BIMBASE kernel main process creates and displays the three-dimensional building model in the BIMBASE.

7. The method according to claim 6, wherein the user requesting to edit the 3D building model displayed in the BIMBASE comprises one or more of the following: The user requests to change the quantity, color, or shape of the three-dimensional building model.

8. An electronic device, characterized in that include: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 7.

9. A non-transitory computer-readable storage medium storing computer instructions, characterized in that The computer instructions are used to cause the computer to execute the method according to any one of claims 1 to 7.

10. A computer program product comprising computer program instructions, characterized in that When the computer program instructions are executed by a processor, the method according to any one of claims 1 to 7 is implemented.