Lightweight method for building information modeling (bim) operation and maintenance mechanical and electrical model
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-01
- Publication Date
- 2026-08-11
AI Technical Summary
由于构件数量在十几万量级,三维模型的三角面片数量在千万量级;因此,BIM模型的浏览和使用对电脑的配置要求较高,往往不能实现模型的流畅加载,严重影响了BIM模型在施工现场和运维现场中的应用
[0033]与现有技术相比,本发明将运维机电BIM模型中的管线模型根据系统拆分重组为新的BIM模型,并根据运维客户端指令单次只加载相应系统下的管线模型,而不是单次加载所有的模型然后去显示隐藏构件,同时将管线合并减少构件数量,加速模型的加载速度,通过抽象模型的几何与运维信息,做到在简化模型的同时不丢失模型的运维数据。
Smart Images

Figure CN116305392B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a lightweight method for BIM operation and maintenance electromechanical models. Background Technology
[0002] Building Information Modeling (BIM) is a three-dimensional digital representation of a building, including the geometric and engineering information of all its components, and it is widely used in the construction industry. Currently, BIM is generally created by engineers using BIM software such as Autodesk Revit according to BIM modeling specifications to build 3D models of each component. Because the number of components is in the hundreds of thousands, and the number of triangles in the 3D model is in the tens of millions, browsing and using BIM models requires high computer configurations. This often results in unsmooth model loading, severely impacting the application of BIM models on construction and maintenance sites.
[0003] The typical method for loading BIM models into a graphics engine is to cache all professional models in memory, then select the components to be displayed based on user terminal commands, and finally write scripts within the graphics engine to select and display these components. This approach usually results in high memory consumption and significant computational resource consumption during the selection process, causing lag on the operations and maintenance client. Current mainstream research focuses on the model itself, simplifying the BIM model mesh hierarchy, adding Level of Detail (LOD), and employing view frustum culling algorithms to reduce the size of the rendered model and improve rendering efficiency. However, the massive number of MEP (Mechanical, Electrical, and Plumbing) models in large and complex projects still causes lag due to model resource constraints. Summary of the Invention
[0004] The purpose of this invention is to provide a lightweight method for BIM operation and maintenance electromechanical models.
[0005] To address the above problems, this invention provides a lightweight method for BIM operation and maintenance electromechanical models, comprising:
[0006] Step 1: Extract component information from the BIM model;
[0007] Step 2: Establish server data query service;
[0008] Step 3: Decompose, reorganize, and lightweight the BIM model according to the parameters;
[0009] Step 4: Integrate the split, recombined, and lightweight BIM model collection into the graphics engine to prepare for loading the lightweight model;
[0010] Step 5: Load the lightweight model;
[0011] Step 6: Display the geometric parameters and component parameters of the lightweight model.
[0012] Furthermore, in the above method, step 1: extracting component information from the BIM model, including:
[0013] Step 1.1: Extract the floor (FloorId), system (SystemId), global unique ID (Guid), element (ElementId), family information (Family), geometric information (position, BoundingBox), and parameters from the BIM model for each component.
[0014] Step 1.2 involves matching the system extracted from the model with the prefabricated system and classifying all components according to the system.
[0015] Step 1.3: Mark the model components in the model according to the operation and maintenance requirements, and mark the model components as operation and maintenance builds according to the family information of the model components and the GUID of the model;
[0016] Step 1.4: Save the parameterized system data and component information data to the database. Save all the information of the operation and maintenance components, including: the component's globally unique ID (Guid), the component's ID (ElementId), the component's floor ID (FloorId), the component's system ID (SystemId), and the component's system type ID (SystemTypeId). For non-operation and maintenance component models, based on the model parameter list provided in the modeling software, such as the material information of pipes, read the information (parameters) in the component's parameter list to extract all its parameter information, and create an index using the component's globally unique ID (Guid) to save it to the database.
[0017] Step 1.5: Extract the geometric information of the model according to the component type. For circular pipes such as water pipes, extract the start position, end position, and radius of the pipe. For square pipes such as air ducts, extract the width, height, and length of the cross-section. For pipe fittings and accessories at the end of the air duct, extract their position, bounding box information, and six coordinates: MaxX, MaxY, MaxZ, MinX, MinY, and MinZ.
[0018] Furthermore, in the above method, step 2: establishing a server data query service includes:
[0019] Step 2.1: Develop a model information query service to query all component attribute information of the project from the database, abstract the model loading instructions issued by the operation and maintenance client into specific project information, that is, extract the buildingId, floorId, systemtypeId and deviceIds of the model scene to be loaded by the instruction, load the pipeline model to be loaded in the current operation and maintenance scene, query the name of the pipeline model to be loaded, and query all device models in the current system.
[0020] Step 2.2. Query the information of non-maintenance components, cache the geometric information and parameter information of all non-maintenance components, and query the data dictionary of non-maintenance components based on the globally unique ID (Guid) of the non-maintenance components.
[0021] Furthermore, in the above method, step 3: The BIM model is split, reorganized, and lightweighted according to the parameters, including:
[0022] Step 3.1: Reorganize the model using the pre-set system in the database;
[0023] Step 3.2 Because the equipment operation and maintenance model requires additional sensor data, the accuracy of sensor locations is very important. Furthermore, based on the model depth requirements of the equipment type model, the equipment models in the original all-discipline model are extracted and separated into a set of mechanical equipment models D, organized by floor. i ;
[0024] Step 3.3, for the pipeline model set S i The pipeline model was simplified by meshing using model lightweighting software, and all models were merged. The final output is S for each pipeline model. ijk That is, a single, unified model without further subdivision of components, for the mechanical equipment model set D. i No action will be taken.
[0025] Furthermore, in the above method, step 4: integrating the split, reorganized, and lightweight BIM model set into the graphics engine for model loading preparation includes:
[0026] The disassembled, reorganized, and lightweight BIM model sets are integrated into the graphics engine for model loading preparation, and all floor mechanical equipment models are collected into D. i Pipeline Model S ijk Integrating into the graphics engine, the subsystem pipeline model is re-aggregated into P based on system type (SystemTypeId) within the graphics engine. ij .
[0027] Furthermore, in the above method, step 5: loading the lightweight model includes:
[0028] Step 5.1 Query the system name to be loaded through the interface, retrieve all the "{FloorId}-{SystemTypeId}" collection names based on the floor ID and system category ID, as well as the corresponding device ElementId under the current floor system category, and rename the parameter to "device-{floorId}-{ElementId}", and pass the retrieved parameter to the model engine;
[0029] Step 5.2 When the graphics engine receives the parameters passed in step 5.1, it can filter the local electromechanical model set and select all P based on the floor system set name. ij The collection is loaded and rendered. Based on the name of the passed maintenance component "device-{floorId}-{ElementId}", the collection D of maintenance components corresponding to the floor is first filtered out based on the floorId. i Then in each D i The system can then filter and load the mechanical equipment models that need to be loaded based on their ElementId.
[0030] Furthermore, in the above method, step 6: displaying the geometric parameters and component parameters of the lightweight model, including:
[0031] Step 6.1 For geometry P ij Each pipeline model S ijk Since this part of the model has been merged and lightweighted, there are no individual components. Individual components cannot be filtered out by clicking in the graphics engine. Therefore, it is necessary to calculate the user's selected pipeline component based on the mouse click ray in the current view using the Ray-AABB cross detection algorithm.
[0032] Step 6.2 By querying the geometric information of the selected components calculated by the user, namely the start and end coordinates of the pipeline model, the pipe diameter or width and height, and the bounding box information of the pipe fitting model, the bounding box information of the model is calculated in real time and then applied to the non-maintenance pipeline model S that has been merged into one model. ijk It can highlight individual components, achieving the same component selection highlighting effect as selecting individual components, and can also query the corresponding parameter information of the component based on the selected GUID.
[0033] Compared with existing technologies, this invention splits and reorganizes the pipeline model in the operation and maintenance electromechanical BIM model into a new BIM model according to the system. According to the operation and maintenance client instructions, only the pipeline model under the corresponding system is loaded at a time, instead of loading all models at once and then displaying hidden components. At the same time, pipelines are merged to reduce the number of components, which accelerates the loading speed of the model. By abstracting the geometry and operation and maintenance information of the model, the model is simplified without losing the model's operation and maintenance data.
[0034] This invention significantly reduces the number of components in electromechanical models, decreases the number of draw calls in the graphics engine, accelerates model loading and rendering, and ensures that only a portion of the model is loaded at a time, reducing memory burden while retaining the model's maintenance information. Compared to traditional model loading methods, it improves model loading speed by 40% and reduces memory usage by 20%, achieving the goal of lightweighting electromechanical models. Attached Figure Description
[0035] Figure 1 This is a flowchart of a lightweight BIM operation and maintenance electromechanical model method according to an embodiment of the present invention;
[0036] Figure 2 This is a schematic diagram of a single-layer electromechanical model according to an embodiment of the present invention;
[0037] Figure 3 This is a schematic diagram of a model decomposed according to a subsystem according to an embodiment of the present invention;
[0038] Figure 4 This is a schematic diagram of a split operation and maintenance component model according to an embodiment of the present invention;
[0039] Figure 5 This is a schematic diagram of the splitting logic of a model set according to an embodiment of the present invention. Detailed Implementation
[0040] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0041] like Figures 1 to 5 As shown, this invention provides a lightweight method for BIM operation and maintenance electromechanical models, including:
[0042] Step 1: Extract component information from the BIM model:
[0043] Step 1.1: Extract the floor (FloorId), system (SystemId), ID (Guid, ElementId), family information (Family), geometric information (position, BoundingBox), and parameters from the BIM model for each component.
[0044] Here, the secondary development interface of the modeling software can be used to extract the floor (FloorId), the system (SystemId) to which the component belongs, the component's ID (Guid, ElementId), the component's family information, the component's coordinates position and BoundingBox, and the parameters information in the component's parameter list from the BIM model.
[0045] The component information mentioned above is extracted using the Revit secondary development interface. The parameter list contains all common parameters and project parameters of the component, such as pipe material, pipe diameter, equipment number, equipment specifications, and equipment manufacturer information. This information is then stored in a MySQL database.
[0046] Step 1.2 involves matching the system extracted from the model with the prefabricated system and classifying all components according to the system, as shown in Table 1.
[0047]
[0048] Table 1. Examples of System Parameterization
[0049] Here, the systems extracted from the model are matched with the prefabricated systems and parameterized. The systems are matched to the prefabricated systems according to their system names, and all components are classified according to the system, as shown in Table 1.
[0050] You can create a table of system categories that the project needs to display based on project requirements. You can extract all the systems in the model through the Revit secondary development interface, manually aggregate the systems according to system categories, and store the matched system table in the database.
[0051] Step 1.3 Mark the model components in the model according to the operation and maintenance requirements. Mark the model components as operation and maintenance builds according to the family information of the model components and the model's GUID.
[0052] Here, maintenance components in the model can be labeled according to the needs of the project. Based on the family information of the model components, the model's GUID will label the model components as maintenance components.
[0053] Based on the project's operation and maintenance needs, components can be individually tagged according to their GUIDs, or devices can be tagged in batches according to their family names. The tagged devices can then be stored in the device table of the database.
[0054] Step 1.4: Save the electromechanical system information (MEPSystem) and component information data from the model to the database, including: the component's globally unique ID (Guid), component ID (ElementId), component floor ID (FloorId), component system ID (SystemId), component equipment number (Code), and component system type ID (SystemTypeId). For non-maintenance components, based on the model parameter list provided in the modeling software, such as the material information of pipes, read their parameter list to extract all their parameter information, and create an index using the component's Guid to save it to the database.
[0055] Here, parameterized system data and component information data can be saved to the database, storing information about all operation and maintenance components, including: the component's globally unique ID (Guid), the component's ID (ElementId), the component's floor ID (FloorId), the component's system ID (SystemId), and the component's system type ID (SystemTypeId). For non-operation and maintenance component models, based on the model parameter list provided in the modeling software, such as the material information of pipes, the parameter list is read to extract all parameter information, and an index is created using the component's Guid to save it to the database.
[0056] BIM models can be built according to floor elevations, meaning a single floor's BIM model only includes the model within the current elevation. Floor information for the project is pre-filled in the database, all system names in the project are extracted, and the systems are matched with parametric system names. Then, the Revit secondary development interface is used to extract all component information from the model. The component's FloorId comes from the pre-filled floor Id in the database. Model components are matched according to elevation, and the component's SystemId comes from the pre-filled system Id in the database, including the system Ids for equipment and pipelines. SystemTypeId is the system category Id stored in the database according to different project requirements, as shown in Table 1.
[0057] Step 1.5: Extract the geometric information of the model according to the component type. For circular pipes such as water pipes, extract the start position, end position, and radius of the pipe. For square pipes such as air ducts, extract the width, height, and length of the cross-section. For pipe fittings such as tees at the end of air ducts and other pipe accessories, extract their position, bounding box information, and six coordinates: MaxX, MaxY, MaxZ, MinX, MinY, and MinZ.
[0058] Here, the geometric information of the model can be extracted. First, the model is classified. For pipe models such as water pipes and other circular pipes, the start position, end position, and radius of the pipe are extracted. For air ducts and other square pipes, the width, height, and length of the cross-section are extracted. For pipe fittings and accessories such as tee fittings at the end of the air duct, the position, bounding box information, and six coordinate information (MaxX, MaxY, MaxZ, MinX, MinY, and MinZ) are extracted.
[0059] Step 2: Establish server data query service
[0060] Step 2.1, Operation and Maintenance Component Information Query: The model loading command issued by the operation and maintenance client is abstracted into specific project information. Specifically, the buildingId, floorId, systemtypeId, and deviceIds of the model scene to be loaded are extracted. Then, the name of the pipeline model to be loaded is queried. The query result is "{FloorId}-{SystemTypeId}-{SystemId}". i The column name is the pipeline name to be loaded, such as "{1-1-1(1F-Air Conditioning System-Supply Air System), 1-1-2(1F-Air Conditioning System-Exhaust Air System), 1-1-3(1F-Air Conditioning System-Refrigerant)}". This loads the pipeline models required for the current operation and maintenance scenario and queries all device models in the current system. The retrieved data result is "Device-{FloorId}-{ElementId}". i For example, “Device-1-1233443, Device-1-3423242”.
[0061] Here, a model information query service can be developed to query all component attribute information of the project from the database. The model loading instructions issued by the operation and maintenance client are abstracted into specific project information, that is, the buildingId, floorId, systemtypeId, and deviceIds of the model scene to be loaded are extracted, the pipeline model to be loaded in the current operation and maintenance scene is loaded, the name of the pipeline model to be loaded is queried, and the result is "{SystemTypeId}-{SystemId}", and all device models in the current system are queried, and the device name is "Device-{FloorId}-{ElementId}".
[0062] The server-side is developed using ASP.NET Core, and the RESTful API is used to query the project's model data, retrieve the model information, and find the ElementId of the corresponding BIM model and the corresponding device ElementId for each system.
[0063] Step 2.2. Query the information of non-maintenance components, cache the geometric information and parameter information of all non-maintenance components, and query the data dictionary of non-maintenance components based on their GUIDs.
[0064] Step 3: Decompose, reorganize, and lightweight the BIM model according to the parameters.
[0065] Step 3.1: Reorganize the model using the pre-set system in the database. Original single-layer model M i like Figure 2 As shown, the pipes, pipelines, pipe fittings, ductwork components, and duct accessories of each floor are divided into sets P. ij The name is "{FloorId}-{SystemTypeId}". Based on the system category information, the pipeline model is further split into a set S. ijk The name is "{FloorId}-{SystemTypeId}-{SystemId}". The electromechanical pipelines are re-divided according to the electromechanical system topology diagram, and the output is a new model, such as... Figure 4 As shown, this breaks down the original complex single-story electromechanical model into a more detailed model, preparing for subsequent lightweight processing.
[0066] Here, the mapped data in the database can be used to reorganize the model according to a pre-defined system. The original single-layer model M_i is as follows: Figure 2As shown, the pipes, pipelines, pipe fittings, ductwork components, and duct accessories of each floor are split into a set P_ij, named "{FloorId}-{SystemTypeId}". Based on the mapped system category information, the pipeline model is further split into a set S_ijk, named "{FloorId}-{SystemTypeId}-{SystemId}". The electromechanical pipelines are then re-divided according to the topology diagram of the electromechanical system, and the output is a new model, such as... Figure 3 As shown, the original complex single-floor electromechanical model is broken down into more detailed models to prepare for subsequent lightweight processing. Since the equipment operation and maintenance model requires additional sensor data, the accuracy of sensor locations is crucial. Furthermore, based on the model depth requirements of the equipment type model, the equipment models in the original multi-disciplinary model are extracted and separated into D_i according to the floor level, such as... Figure 4 As shown. The logical relationship diagram of the decomposed model is as follows. Figure 5 As shown.
[0067] The system queries project information from the database via a secondary development interface. Based on the elevation, it retrieves the corresponding buildingId and floorId of the model, then queries all system Ids and their corresponding system category Ids for the current model. Next, it queries all ElementIds under each system Id. By creating model views, it hides all components not under the current system Id. By querying the ElementIds of all equipment in the current model, it places all equipment under a separate equipment category view. Based on these separated views, the original single-floor, full-discipline MEP (Mechanical, Electrical, and Piping) model is split into individual models and equipment models for different systems.
[0068] Step 3.2 Because the equipment operation and maintenance model requires additional sensor data, the accuracy of sensor locations is very important. Furthermore, based on the model depth requirements of the equipment type model, the equipment model in the original all-discipline model is extracted and separated into D-level models according to floor level. i ,like Figure 4 As shown. The logical relationship diagram of the decomposed model is as follows. Figure 5 As shown.
[0069] Here, lightweight model software can be used to read all the BIM models output in step 3.1. Since the pipeline models have relatively little additional operation and maintenance information, the lightweight model software is used to simplify the pipeline model set S_i by meshing and merging all the models. The final output result is that each S_ijk is a whole model without component subdivision. No processing is performed on the mechanical equipment model set D_i.
[0070] You can use MaxScript to write a 3ds Max script, read the system model split in step 3.1, simplify all the pipeline models with mesh, and merge them into a whole.
[0071] Step 3.3: Since the pipeline model has limited additional operation and maintenance information, the pipeline model set S... i The pipeline model was simplified by meshing using model lightweighting software, and all models were merged. The final output result is that each S ijk This is a single, unified model without any subdivision of components. For D... i The mechanical equipment model set is not processed in any way.
[0072] Step 4: Integrate the operation and maintenance model
[0073] After the BIM model is reorganized, the split, reorganized, and lightweight BIM model set is integrated into the graphics engine for model loading preparation. This involves assembling the mechanical equipment models for all floors into D... i Pipeline model S ijk The model is integrated into the graphics engine, where the subsystem pipeline models are re-aggregated into P based on system type (SystemTypeId). ij The model collection is loaded using the graphics engine's model loading method, with each collection named "{FloorId}-{SystemTypeId}". All device models D are aggregated into a device collection "Device-{BuildingId}". i Rename it to "device-{FloorId}".
[0074] Here, step 4 may include:
[0075] Step 4.1: Integrate all the models output from Step 3 into the model engine. For all pipeline models S i The set is then further aggregated based on the floor and system type, i.e., "FloorId" and "SystemTypeId" in its name, to form a new set ST. i All device models D i Then aggregate them again into a set DD.
[0076] The output lightweight model is integrated into the Unity engine. The development script aggregates different subsystems based on floor ID and system type ID, creating a Scene. All device models are then aggregated and created into a Scene.
[0077] Step 5: Load the lightweight model
[0078] Step 5.1 Query the system name to be loaded through the interface, retrieve all the "{FloorId}-{SystemTypeId}" collection names based on the floor ID and system category ID, as well as the corresponding device ElementId under the current floor system category, and rename the parameter to "device-{floorId}-{ElementId}", and pass the retrieved parameter to the model engine.
[0079] Step 5.2 When the graphics engine receives the parameters passed in step 5.1, it can filter the local electromechanical model set and select all P based on the floor system set name. ij The collection is loaded and rendered. Based on the name of the passed maintenance component "device-{floorId}-{ElementId}", the collection D of maintenance components corresponding to the floor is first filtered out based on the floorId. i Then in each D i The system can then filter and load the mechanical equipment models that need to be loaded based on their ElementId.
[0080] Using the BuildingId, FloorId, SystemTypeId, and DeviceIds abstracted from the current scene, the RESTful API is called to query the Scenes that need to be loaded in the current scene. For example, when switching to the air conditioning system (SystemTypeId is 3), the pipeline model parameters received by the graphics engine are:
[0081] The device parameters are: "sceneNames":["12-3","11-3","10-3","9-3","8-3","7-3","6-3","5-3","4-3","3-3","2-3","1-3"]
[0082] "deviceIds":["device-12-1655448","device-12-1655398","device-12-1655496","device-12-1655597","device -12-1655550","device-12-1652150","device-12-1654918","device-12-1654429","device-12-1758615","device [-12-1826431","device-12-1655644","device-12-1758496","device-12-1732994","device-12-1733054","device-12-1732936"] Due to the large number of device parameters, only a portion of the device numbers are used here as examples. The graphics engine only needs to load the corresponding model aggregates, instead of loading all the models. Furthermore, the graphics engine does not require any computational logic, greatly reducing the computer's resource consumption.
[0083] Step 6: Display the geometric parameters and component parameters of the lightweight model.
[0084] Step 6.1 For geometry P ij Each subset S ijk Because this part of the model has been merged and lightweighted, there are no individual components. Individual components cannot be filtered out by clicking in the graphics engine. Therefore, it is necessary to calculate the user's selected pipeline component based on the mouse click ray in the current view using the Ray-AABB cross detection algorithm.
[0085] Step 6.2 By querying the geometric information of the selected components calculated by the user, namely the start and end coordinates of the pipeline model, the pipe diameter or width and height, and the bounding box information of the pipe fitting model, the bounding box information of the model is calculated in real time and then integrated into the non-maintenance model S that has been merged into a single model. ijk Individual components can be highlighted, achieving the same component selection highlighting effect as when selecting a single component. Simultaneously, the parameter information corresponding to the selected component can be retrieved based on the selected GUID.
[0086] Here, the StartPosition of the mouse ray and its normal direction are calculated from the current viewpoint of the Unity graphics engine. The Restful API is then invoked, and the Ray-AABB cross-detection algorithm is used to calculate the first object the current ray collides with. Based on the geometric information of the current object, the edge information of the component is drawn, achieving a highlighting effect. For the device model, a mesh collider is added, and Unity's functionality is used to directly implement the component selection effect within the graphics engine.
[0087] For large-scale pipeline models, global model optimization algorithms are computationally expensive, potentially leading to additional performance overhead and failing to meet expected optimization goals. Furthermore, when the number of MEP (Mechanical, Electrical, and Plumbing) models reaches a certain level, global model lightweighting algorithms become less effective. Therefore, breaking down the original BIM model, instantiating the models to be displayed based on requirements, loading local MEP models, and then combining this with model lightweighting techniques, along with abstracting model data, can reduce the number of model components and lightweight the model while retaining its operational data. This approach plays a crucial role in achieving lightweight model display.
[0088] This invention splits and reorganizes the pipeline model in the operation and maintenance electromechanical BIM model into a new BIM model according to the system. Based on the operation and maintenance client instructions, it loads only the pipeline model under the corresponding system at a time, instead of loading all models at once and then displaying hidden components. At the same time, it merges pipelines to reduce the number of components, thereby accelerating the loading speed of the model. By abstracting the geometry and operation and maintenance information of the model, it simplifies the model without losing the model's operation and maintenance data.
[0089] This invention significantly reduces the number of components in electromechanical models, decreases the number of draw calls in the graphics engine, accelerates model loading and rendering, and ensures that only a portion of the model is loaded at a time, reducing memory burden while retaining the model's maintenance information. Compared to traditional model loading methods, it improves model loading speed by 40% and reduces memory usage by 20%, achieving the goal of lightweighting electromechanical models.
[0090] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.
[0091] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.
[0092] Obviously, those skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the invention. Therefore, if these modifications and variations fall within the scope of the claims of the invention and their equivalents, the invention is also intended to include these modifications and variations.
Claims
1. A lightweight method for BIM operation and maintenance electromechanical models, characterized in that, include: Step 1: Extract component information from the BIM model; Step 2: Establish server data query service; Step 3: Decompose, reorganize, and lightweight the BIM model according to the parameters; Step 4: Integrate the split, recombined, and lightweight BIM model collection into the graphics engine to prepare for loading the lightweight model; Step 5: Load the lightweight model; Step 6: Display the geometric parameters and component parameters of the lightweight model; Step 1: Extract component information from the BIM model, including: Step 1.1: Extract the floor (FloorId), system (SystemId), global unique ID (Guid), element (ElementId), family information (Family), geometric information (position, BoundingBox), and parameters from the BIM model for each component. Step 1.2 involves matching the system extracted from the model with the prefabricated system and classifying all components according to the system. Step 1.3: Mark the model components in the model according to the operation and maintenance requirements, and mark the model components as operation and maintenance builds according to the family information of the model components and the model's GUID; Step 1.4: Save the parameterized system data and component information data to the database. Save all the information of the operation and maintenance components, including: the component's globally unique ID (Guid), the component's ID (ElementId), the component's floor ID (FloorId), the component's system ID (SystemId), and the component's system type ID (SystemTypeId). For non-operation and maintenance component models, according to the model parameter list assigned in the modeling software, read the information (parameters) in the component's parameter list to extract all its parameter information, and save it to the database by creating an index through the component's globally unique ID (Guid). Step 1.5: Extract the geometric information of the model according to the component type. For a circular pipe, extract the start position, end position, and radius. For a square pipe, extract the width, height, and length of its cross-section. For the pipe fittings and accessories at the end of the duct, extract their position, bounding box information, and six coordinates: MaxX, MaxY, MaxZ, MinX, MinY, and MinZ. Step 2: Establish server data query service, including: Step 2.1: Develop a model information query service to query all component attribute information of the project from the database, abstract the model loading instructions issued by the operation and maintenance client into specific project information, that is, extract the buildingId, floorId, systemtypeId and deviceIds of the model scene to be loaded by the instruction, load the pipeline model to be loaded in the current operation and maintenance scene, query the name of the pipeline model to be loaded, and query all device models in the current system. Step 2.
2. Query the information of non-maintenance components, cache the geometric information and parameter information of all non-maintenance components, and query the data dictionary of non-maintenance components based on the globally unique ID (Guid) of the non-maintenance components; Step 3: Based on the parameters, the BIM model is split, reorganized, and lightweighted, including: Step 3.1: Reorganize the model using the pre-set system in the database; Step 3.2: Because the equipment operation and maintenance model requires additional sensor data, the accuracy of sensor locations is very important. Furthermore, based on the model depth requirements of the equipment type model, the equipment models in the original multi-disciplinary model are extracted and separated according to floor level. ; Step 3.3, for the pipeline model set The pipeline model was simplified by using lightweight model simplification software to create a mesh and all models were merged. The final output result is that each... That is, it is a single, unified model without any subdivision of components. Do nothing. Step 4: Integrate the split, reorganized, and lightweight BIM model collection into the graphics engine for model loading preparation, including: The disassembled, reorganized, and lightweight BIM model sets are integrated into the graphics engine for model loading preparation, including all floors. Pipeline Model Integrating into the graphics engine, the subsystem pipeline model is re-aggregated within the graphics engine according to system type (SystemTypeId). .
2. The lightweight BIM operation and maintenance electromechanical model method as described in claim 1, characterized in that, Step 5: Load the lightweight model, including: Step 5.1 Query the system name to be loaded through the interface, retrieve all the "{FloorId}-{SystemTypeId}" collection names based on the floor ID and system category ID, as well as the corresponding device ElementId under the current floor system category, and rename the parameter to "device-{floorId}-{ElementId}", and pass the retrieved parameter to the model engine; Step 5.2 Once the graphics engine receives the parameters passed in Step 5.1, it can filter the local electromechanical model set, selecting all models based on the floor system set name. The collection is loaded and rendered. Based on the name of the passed maintenance component "device-{floorId}-{ElementId}", the collection of maintenance components for the corresponding floor is first filtered out according to the floorId. Then in each set of operation and maintenance components The system selects and loads the mechanical equipment models that need to be loaded based on their ElementId.
3. The lightweight BIM operation and maintenance electromechanical model method as described in claim 1, characterized in that, Step 6: Display the geometric parameters and component parameters of the lightweight model, including: Step 6.1 For geometry Each of them Since this part of the model has been merged and lightweighted, there are no individual components. Individual components cannot be filtered out by clicking in the graphics engine. Therefore, it is necessary to calculate the user's selected pipeline component based on the mouse click ray in the current view using the Ray-AABB cross detection algorithm. Step 6.2 By querying the geometric information of the selected components calculated by the user, namely the start and end coordinates of the pipeline model, the pipe diameter or width and height, and the bounding box information of the pipe fitting model, the bounding box information of the model is calculated in real time and applied to the non-maintenance pipeline model that has been merged into a single model. It can highlight individual components, achieving the same component selection highlighting effect as selecting individual components, and can also query the corresponding parameter information of the component based on the selected GUID.
Citation Information
Patent Citations
Operation and maintenance management-oriented geometric model lightweight processing method in BIM
CN109492271A
BIM model lightweight implementation method
CN113656875A