Multi-scene geological prospecting line creation and data management method and system based on BIM software
Through the multi-scene geological exploration line creation and data management method based on BIM software, the efficiency and accuracy of traditional methods under complex terrain and diversified geological conditions are solved, and the flexible adaptation and precise definition of geological exploration lines are achieved, which improves the Exploration efficiency and engineering safety.
Patent Information
- Application Number
- CN202411561395.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-08-14
- Filing Date
- 2024-11-04
- Publication Date
- 2025-02-11
AI Technical Summary
Traditional geological exploration line data storage and management methods are inefficient and error-prone, and cannot meet the needs of large-scale and high-precision geological surveys, especially under complex terrain and diversified geological conditions.
Using multi-scene geological exploration line creation and data management methods based on BIM software, the multi-scene analysis function of BIM model files is integrated to achieve flexible adaptation of geological exploration lines under different geological conditions. The specific steps include reading BIM model files, drawing and defining exploration lines, data storage, real-time adjustment of exploration lines direction, real-time rendering and visualization, and confirming adjustments and saving data.
It realizes flexible adaptation and precise definition of geological exploration lines, improves the efficiency and accuracy of exploration lines design, reduces the complexity and error of manual operations, reduces the time and cost of projects, and improves the safety of engineering construction and stability.
Smart Images

Figure CN119416408A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of building information modeling (BIM), and in particular to a multi-scenario geological exploration line creation and data management method and system based on BIM software. Background Art
[0002] In modern highway engineering, geological survey is an important part of ensuring the safety and stability of the project. Traditional methods of storing and managing exploration line data usually rely on manual operations, which are inefficient and error-prone, and cannot meet the needs of large-scale, high-precision geological surveys. Although there are some tools in the existing technology that can assist in the drawing and definition of exploration lines, there are still obvious deficiencies when dealing with complex terrain and large-scale data. In order to improve the efficiency and accuracy of annotation, the existing technology urgently needs a new solution.
[0003] The information disclosed in this background technology section is only intended to deepen the understanding of the overall background technology of the present invention, and should not be regarded as acknowledging or suggesting in any form that the information constitutes the prior art already known to those skilled in the art. Summary of the invention
[0004] The purpose of the present invention is to provide a multi-scenario geological exploration line creation and data management method and system based on BIM software, which realizes the flexible adaptation of geological exploration lines under different geological conditions by integrating the multi-scenario parsing function of BIM model files.
[0005] In order to achieve the above object, the present invention adopts the following technical solutions:
[0006] The present invention provides a multi-scenario geological exploration line creation and data management method based on BIM software, comprising the following steps:
[0007] S1. Read BIM model file: import the BIM model file containing terrain and line information, and obtain all relevant data therein;
[0008] S2. Draw and define exploration lines: Based on the terrain and line information in the BIM model, manually draw and define the exploration lines;
[0009] S3, data storage: the drawn exploration line data is classified and input into the database for storage and management;
[0010] S4. Change the direction of the exploration line: real-time adjustment of the exploration line direction to ensure that the data is consistent with the actual situation;
[0011] S5. Real-time rendering and visualization: Through OpenGL rendering technology, the adjusted exploration line is visualized in a 3D environment, helping users observe the design effect from different perspectives;
[0012] S6. Confirm the adjustment and save the data: When the user is satisfied with the exploration line adjustment, the final data needs to be saved for subsequent use.
[0013] Further, step S1 specifically includes:
[0014] API-based file parsing method: Use the IFC Open Shell library, which is an open source C++ library that supports accessing and parsing BIM data in IFC files through APIs. By calling its interface, the system can efficiently extract geometry and attribute information related to terrain and lines in the model.
[0015] Hierarchical data storage: A tree-like data structure is used to store the parsed terrain and route information. Each node represents a building or geological element, with hierarchical relationships and inheritance characteristics, which facilitates further operation and management.
[0016] 3D rendering engine: The VTK library is used for 3D rendering of terrain and lines. VTK is an open source 3D computer graphics, image processing and visualization software system, which is widely used to process complex 3D data sets. It provides rich visualization functions and a flexible pipeline architecture, which is suitable for the display of geological scenes.
[0017] Rendering pipeline and interactive model: Use VTK's rendering pipeline model to manage the rendering process, and provide user interface zoom, rotation, and translation operations through the interactive model.
[0018] Further, step S2 specifically includes:
[0019] Semi-automatic drawing support: Use Qt's drawing function to create user interfaces, combine GIS tools for geographic information processing, and improve the efficiency of manual drawing by providing reference lines and auxiliary tools.
[0020] Parametric definition: parametric design concept is adopted to allow users to define multiple parameters of the exploration line according to their needs, such as length, starting point, end point and node spacing.
[0021] Further, step S3 specifically includes:
[0022] Database management and data synchronization: Use PostgreSQL as the primary database and combine it with AWS Lambda functions to achieve asynchronous synchronization and cloud storage of data.
[0023] Further, step S4 specifically includes:
[0024] S4.1: Enter the exploration line adjustment mode:
[0025] Spatial data analysis and path optimization: Combining GIS spatial analysis and path optimization algorithms, the system supports adjustment of the direction of the exploration line to adapt to different terrains and engineering requirements.
[0026] Bezier Recalculation: Recalculates the curves between nodes using Bezier curves, ensuring that the curves remain smooth after orientation adjustments.
[0027] Real-time rendering and interaction: Use Qt's event processing and OpenGL rendering to achieve real-time visual feedback during the exploration line adjustment process.
[0028] Further, step S5 specifically includes:
[0029] The adjusted exploration lines are visualized in the user interface using 3D rendering using OpenGL. This process not only displays the three-dimensional form of the lines, but also provides users with interactive functions to review and adjust the performance of the exploration lines from different perspectives.
[0030] Further, the specific implementation process of step S6 is as follows:
[0031] S6.1: After the user is satisfied with the adjustment result, he / she clicks the “Confirm” button;
[0032] S6.2: The system uses SQL commands to write the adjusted survey line data into the database to ensure data integrity and consistency;
[0033] S6.3: Use transaction processing to ensure the atomicity of data operations and prevent data loss or inconsistency.
[0034] A system for creating and managing geological exploration lines in multiple scenarios based on BIM software, including:
[0035] BIM model file reading module: used to import BIM model files containing terrain and line information and obtain all relevant data therein;
[0036] Draw and define exploration line module: manually draw and define exploration lines based on the terrain and line information in the BIM model;
[0037] Data entry module: used to input the drawn exploration line data into the database for classification, storage and management;
[0038] Module for changing the direction of the exploration line: used for real-time adjustment of the direction of the exploration line to ensure that the data is consistent with the actual situation;
[0039] Real-time rendering and visualization module: used to visualize the adjusted exploration lines in a 3D environment through OpenGL rendering technology, helping users observe the design effects from different perspectives;
[0040] Confirm adjustments and save data module: When the user is satisfied with the exploration line adjustments, the final data is saved for later use.
[0041] By adopting the above technical solution, the present invention has the following beneficial effects:
[0042] 1. The present invention solves the problem that traditional methods can only target specific geological conditions by flexibly adapting to different geological exploration needs. Existing technologies are often limited to a single scenario, such as plain areas or mountainous areas, and are difficult to adapt to diverse geological environments. The present invention uses multi-scenario data in the BIM model to achieve flexible definition and layout of geological exploration lines, and can provide accurate exploration results under complex terrain and diverse geological conditions, greatly improving the applicability and universality of the system.
[0043] 2. The present invention supports real-time adjustment and optimization of the exploration line. By combining GIS spatial analysis and path optimization algorithms, users can dynamically adjust the exploration line direction according to actual geological conditions. Unlike traditional fixed path design, this real-time adjustment function allows users to quickly respond to on-site changes and ensure the accuracy and effectiveness of exploration line design.
[0044] 3. The present invention adopts Bezier curve and Laplace smoothing algorithm to realize intelligent drawing and optimization of exploration line. Through parameterized curve design and intelligent calculation method, the definition and adjustment of exploration line become more intuitive and efficient, which improves the quality and accuracy of exploration line design. BRIEF DESCRIPTION OF THE DRAWINGS
[0045] In order to more clearly illustrate the specific implementation methods of the present invention or the technical solutions in the prior art, the drawings required for use in the specific implementation methods or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some implementation methods of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0046] Figure 1 A schematic diagram of the workflow of a multi-scenario geological exploration line creation and data management method based on BIM software in the present invention;
[0047] Figure 2 Define and draw up a flow chart of the exploration line for the present invention;
[0048] Figure 3 This is a flow chart of changing the direction of the exploration line of the present invention;
[0049] Figure 4 This is a real-time rendering and visualization flow chart of the present invention. DETAILED DESCRIPTION
[0050] The technical solution of the present invention will be described clearly and completely below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of them. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0051] The specific implementation of the present invention is described in detail below in conjunction with the accompanying drawings. It should be understood that the specific implementation described here is only used to illustrate and explain the present invention, and is not used to limit the present invention.
[0052] Combination Figure 1-4 As shown, the present invention provides a multi-scenario geological exploration line creation and data management method based on BIM software, which is characterized by comprising the following steps:
[0053] Step 1: Read the BIM model file:
[0054] API-based file parsing method: Use the IFC Open Shell library, which is an open source C++ library that supports accessing and parsing BIM data in IFC files through APIs. By calling its interface, the system can efficiently extract geometry and attribute information related to terrain and lines in the model.
[0055] Hierarchical data storage: A tree-like data structure is used to store the parsed terrain and route information. Each node represents a building or geological element, with hierarchical relationships and inheritance characteristics, which facilitates further operation and management.
[0056] 3D rendering engine: The VTK library is used for 3D rendering of terrain and lines. VTK is an open source 3D computer graphics, image processing and visualization software system, which is widely used to process complex 3D data sets. It provides rich visualization functions and a flexible pipeline architecture, which is suitable for the display of geological scenes.
[0057] Rendering pipeline and interactive model: Use VTK's rendering pipeline model to manage the rendering process, and provide user interface zoom, rotation, and translation operations through the interactive model.
[0058] Specific operations:
[0059] 1. The user selects the "File Import" function in the BIMBase software, and the system pops up a file selection dialog box.
[0060] 2. After the user selects the file, the system calls the IFC Open Shell API interface to parse the file content:
[0061] For terrain data, extract its 3D coordinates, boundary shape and attribute information.
[0062] For line data, extract the start and end points of the path and the geometric information of the path.
[0063] 3. After the analysis is completed, the system stores the information in a tree data structure for subsequent operations.
[0064] 4. The system uses the VTK (Visualization Toolkit) library to efficiently render terrain and line information in 3D, realizes the visualization of geological scenes, and provides rich interactive functions to help users deeply analyze geological data. Users can view the 3D models of terrain and lines through the interface, and obtain different perspectives by rotating and zooming. The specific implementation process is as follows:
[0065] 1. Initialize the VTK environment:
[0066] Import the VTK library and create a rendering window (vtkRenderWindow), a renderer (vtkRenderer), and an interactor (vtkRenderWindowInteractor).
[0067] Configure the basic parameters of the rendering window, including background color, window size, etc.
[0068] 2. Data conversion and loading:
[0069] Extract the geometric information of terrain and lines from the parsed BIM model data and convert it into VTK format.
[0070] Use vtkPolyData objects to store point coordinates and connection information to generate geometric representations of terrain and lines.
[0071] 3. Create a geometric model:
[0072] Use vtkPolyDataMapper to map vtkPolyData to renderable geometry data.
[0073] Create a vtkActor object to manage the model's appearance properties (such as color, transparency), and add it to the renderer.
[0074] 4. Configure the renderer:
[0075] Add the terrain and line vtkActor objects to the renderer (vtkRenderer).
[0076] Set light sources and lighting parameters to enhance the realism of your 3D scene.
[0077] 5. Implementation of interactive functions:
[0078] Configure vtkRenderWindowInteractor to support user interaction.
[0079] Use vtkInteractorStyleTrackballCamera to implement interactive style, supporting mouse dragging for zooming, rotating, and panning operations.
[0080] Zoom: Use the mouse wheel or keyboard shortcuts to zoom in and out of the model.
[0081] Rotate: Drag the mouse to adjust the viewing angle and observe the terrain and routes from different angles.
[0082] Pan: Adjust the view position by holding down the right mouse button and dragging.
[0083] 6. Rendering loop:
[0084] Calling the render method of the render window starts the rendering loop.
[0085] The system updates the rendered content on every user interaction, providing real-time view feedback.
[0086] Control rendering efficiency by setting the frame rate to ensure a smooth user experience.
[0087] 7. Real-time update and display:
[0088] Updates the geometry in vtkPolyData when the data or view parameters change.
[0089] Call the Modified method to notify VTK to update the data and re-render the scene.
[0090] Step 2: Define and draw the exploration line
[0091] Semi-automatic drawing support: Use Qt's drawing function to create user interfaces, combine GIS tools for geographic information processing, and improve the efficiency of manual drawing by providing reference lines and auxiliary tools.
[0092] Parametric definition: parametric design concept is adopted to allow users to define multiple parameters of the exploration line according to their needs, such as length, starting point, end point and node spacing.
[0093] Specific operations:
[0094] 1. Enter the exploration line definition mode:
[0095] In the "Exploration Test" module, the user clicks the "Exploration Line Definition" button, the mouse pointer changes to a cross cursor, and the system enters the exploration line definition mode.
[0096] The system provides a drawing toolbar in the interface, which includes function buttons such as draw, edit, and undo.
[0097] 2. Select the polyline starting point and nodes:
[0098] The user selects the starting point of the exploration line with the mouse, and the system automatically creates an initial node.
[0099] The user selects multiple nodes along the terrain contour, and the system uses GIS tools to calculate the geographic coordinates of the nodes in real time.
[0100] The system dynamically displays auxiliary reference lines on the interface, using visual guidance to help users accurately locate nodes.
[0101] 3. Parametric exploration line design:
[0102] The user enters the exploration line number, type and related parameters (such as node spacing, line segment length, etc.) in the pop-up parameter setting window.
[0103] The system automatically calculates the geometry of the exploration line based on the parameters entered by the user and updates the display in real time in the interface.
[0104] 4. Adjust the exploration line shape:
[0105] Users can adjust the shape of the exploration line in real time by dragging nodes and endpoints.
[0106] The system uses Qt's event processing mechanism to monitor the user's mouse dragging events, and uses Bezier curves to smoothly connect nodes to ensure the smoothness and accuracy of the exploration line.
[0107] A Bezier curve is a parametric curve that defines the shape of the curve by defining control points. In the exploration line definition, the nodes selected by the user serve as the key points of the curve.
[0108] For each pair of adjacent nodes, the system calculates two control points, which are typically located midway between the nodes and offset by a certain distance to adjust the curvature of the curve.
[0109] Use the cubic Bezier curve formula to calculate the smooth curve between nodes:
[0110] The curve is drawn through Qt's drawing API and rendered in real time on the user interface to form a smooth exploration line.
[0111] Users can change the shape of the curve by adjusting the node positions, and the system will automatically update the Bezier curve based on the adjustments.
[0112] During the adjustment process, the system displays the precise coordinates of each node and updates the length and direction of the line segment in real time according to the parameterized settings.
[0113] 5. Real-time feedback and optimization:
[0114] Users can view the coverage and accuracy of the survey line in real time during the adjustment process.
[0115] The system uses GIS tools to calculate and display the overlap between the exploration line and the terrain, helping users optimize the design of the exploration line.
[0116] In complex terrain, the system provides automatic alignment function to ensure that the exploration line is accurately deployed along the preset terrain contour.
[0117] 6. Data storage and export:
[0118] After the user confirms the survey line design, click the "Finish" button, the system will temporarily store the survey line data in the memory and provide a save option.
[0119] The system supports exporting exploration line data into standard GIS format files (such as GeoJSON or Shapefile) to facilitate subsequent analysis and sharing.
[0120] Step 3: Exploration line data storage
[0121] Database management and data synchronization: Use PostgreSQL as the primary database and combine it with AWS Lambda functions to achieve asynchronous synchronization and cloud storage of data.
[0122] Specific operations:
[0123] 1. In the "Exploration and Testing" module, click the "Exploration Line Storage" button and the storage window will pop up.
[0124] 2. The user selects the exploration line number to be stored and clicks the "Store" button.
[0125] 3. The system inserts the exploration line data into the PostgreSQL database through the following SQL statement:
[0126] INSERT INTO ExplorationLines(LineID,Type,StartPoint,EndPoint,Coordinates)
[0127] VALUES($1,$2,$3,$4,ST_GeomFromText('LINESTRING($5)'));
[0128] Use the PostGIS extension to store geospatial data.
[0129] 4. The system backs up data to the cloud through AWS Lambda function to achieve asynchronous data synchronization.
[0130] Step 4: Change the direction of the exploration line
[0131] Spatial data analysis and path optimization: Combining GIS spatial analysis and path optimization algorithms, the system supports adjustment of the direction of the exploration line to adapt to different terrains and engineering requirements.
[0132] Bezier Recalculation: Recalculates the curves between nodes using Bezier curves, ensuring that the curves remain smooth after orientation adjustments.
[0133] Real-time rendering and interaction: Use Qt's event processing and OpenGL rendering to achieve real-time visual feedback during the exploration line adjustment process.
[0134] Specific operations:
[0135] 1. Enter the exploration line adjustment mode:
[0136] In the "Exploration and Test" module, the user clicks the "Exploration Line Adjustment" button to enter the adjustment interface.
[0137] The system loads the current exploration line data and highlights the selected exploration line through the Qt GUI interface, providing interactive tools for users to operate.
[0138] 2. Select the exploration line node to adjust:
[0139] The user selects the node to be adjusted by clicking the mouse.
[0140] The system uses Qt's mouse event monitoring mechanism to display the control mouse on the selected node, prompting the user to adjust the node position by dragging the mouse.
[0141] 3. Path optimization and adjustment:
[0142] After the user adjusts the node position, the system calls the GIS library to perform spatial analysis to evaluate whether the adjusted path meets the terrain restrictions.
[0143] Through the Dijkstra algorithm, the system calculates the best adjustment direction of the path to avoid terrain obstacles and minimize the path length. The process is as follows:
[0144] Construction of graph model: The exploration area is represented as a graph with nodes and edges. Nodes represent key locations, such as intersections or terrain features; edges represent paths connecting these nodes.
[0145] Each edge is assigned a weight based on terrain characteristics (such as slope, obstacles, distance), indicating the "cost" or "difficulty" of the path.
[0146] Initialization algorithm: Set the starting node, which is the starting point of the currently selected exploration line.
[0147] Assign an initial distance value to each node, starting at 0 and going to infinity for all other nodes. Create a priority queue (implemented using a min-heap) to store the nodes and their current minimum distances.
[0148] Path search and update: Extract the node with the smallest distance from the priority queue as the current node.
[0149] For each adjacent node of the current node, calculate the total distance from the current node to the adjacent node. If the total distance is less than the distance currently recorded for the adjacent node, update the minimum distance of the adjacent node and set its predecessor node as the current node. Re-insert the updated adjacent node into the priority queue.
[0150] Finish the search: Repeat the search and update process until the priority queue is empty or the shortest path has been found for all nodes.
[0151] Path reconstruction and display: Start from the end node and trace back to the predecessor node to reconstruct the shortest path. Update the optimized path to the user interface and mark it with color or line type changes. After calculating the new path, the system updates the path displayed in the user interface in real time.
[0152] 4. Recalculate the Bezier curve:
[0153] The system recalculates the control points of the curve based on the adjusted node positions to ensure the smoothness of the curve.
[0154] By applying the Bezier curve formula, the system automatically generates a new smooth curve. The following are the specific implementation steps and technical principles:
[0155] 1. Select control points:
[0156] Initial settings: When the user selects an exploration line and adjusts a node, the system uses the current node and its adjacent nodes as control points of the Bezier curve.
[0157] Control point definition: A Bezier curve is usually defined by a start point, an end point, and one or more control points. The system automatically identifies and marks these points in preparation for subsequent calculations.
[0158] 2. Calculate the parameters of the Bezier curve:
[0159] Calculate according to the general formula of Bezier curve,
[0160]
[0161] Where P iis the control point, b i,n (t) is the Bernstein polynomial.
[0162] 3. Calculate the curve path:
[0163] Discretization process: To generate a smooth curve, the system discretizes the parameter t from 0 to 1 into multiple steps, such as t = 0, 0.01, 0.02, ..., 1.
[0164] Path calculation: For each value of t, calculate the corresponding curve point B(t) and connect these points into a continuous line.
[0165] Real-time feedback: The system dynamically updates the curve display, instantly reflecting curve changes when the user adjusts the control points, ensuring that the user can view the adjustment effects in real time.
[0166] 4. Optimize curve smoothness:
[0167] In order to improve the visual effect of the curve, the system applies the Laplacian Smoothing algorithm to smooth the slight differences between adjacent curve points. Laplacian smoothing is an iterative algorithm that is often used to eliminate noise on the surface of a curve or mesh to ensure smooth transitions. The following are the specific implementation steps and technical principles:
[0168] 1. Initialization settings:
[0169] Get initial curve points: The system obtains all discrete points of the current Bezier curve {P0, P1, ..., P n}.
[0170] Neighborhood definition: For each point P i , whose neighborhood includes two adjacent points P i-1 and P i+1 .
[0171] 2. Iterative smoothing process:
[0172] Laplace smoothing formula: For each point P on the curve i (excluding boundary points), the new position is calculated using the following formula:
[0173]
[0174] Among them, λ is a smoothing factor, which usually takes a value between 0 and 1 and is used to control the intensity of smoothing.
[0175] Update point coordinates: Based on the calculated Update the coordinates of a point.
[0176] 3. Iteration and convergence:
[0177] Repeat: The above smoothing step is performed at each point, and the whole process is iterated multiple times (usually 10 to 20 times) until the curve changes tend to be stable.
[0178] Convergence judgment: By measuring the change of the curve after each iteration, when the change is less than the preset threshold, the algorithm terminates the iteration.
[0179] Step 5: Real-time rendering and visualization
[0180] The adjusted exploration lines are visualized in the user interface using 3D rendering using OpenGL. This process not only displays the three-dimensional form of the lines, but also provides users with interactive functions to review and adjust the performance of the exploration lines from different perspectives.
[0181] Specific operations:
[0182] 1.OpenGL initialization:
[0183] Context creation: Initialize the OpenGL context in the Qt application to ensure that graphics can be drawn in the rendering window.
[0184] Rendering Settings: Configure necessary rendering parameters, including enabling Depth Testing to correctly draw the front-to-back order, and enabling the lighting model to increase the sense of three-dimensionality.
[0185] 2. Exploration line data preparation:
[0186] Vertex data buffer: Load the adjusted exploration line node coordinates into OpenGL's vertex buffer object (VBO), and use the `glGenBuffers()`, `glBindBuffer()` and `glBufferData()` methods to transfer the vertex data to the GPU.
[0187] Segment index buffer: Create an index buffer object (EBO) to store the connection relationship between nodes (segment index) for reference during drawing.
[0188] 3. Shader program settings:
[0189] Writing GLSL shaders: Use OpenGL Shading Language (GLSL) to write vertex and fragment shaders. The vertex shader is responsible for converting node coordinates to screen coordinates, and the fragment shader is responsible for setting the color and lighting effects of the line.
[0190] Compile and link: compile the shader code and link it into a shader program, which is enabled for rendering via glUseProgram().
[0191] 4. Real-time rendering:
[0192] Draw exploration lines: In the rendering loop of each frame, use the glDrawElements() function to draw exploration lines based on the index buffer. Transform through the model view projection matrix to ensure that the exploration lines are correctly displayed in 3D space.
[0193] Real-time update: When the user interacts (such as dragging a node or adjusting a curve), the vertex data in the VBO is updated in real time, and the rendering pipeline is re-called for drawing.
[0194] 5. User interaction and visualization functions:
[0195] Scaling and rotation: Use Qt's event mechanism to monitor the user's mouse wheel and drag events, adjust the scale and rotation angle of the view matrix, and realize the scaling and rotation of the three-dimensional view.
[0196] Zoom: By modifying the zoom factor of the view matrix, you can zoom in or out as a whole.
[0197] Rotation: By rotating the matrix, the viewing direction is adjusted so that users can view the exploration line from different angles.
[0198] Frame-by-frame rendering: After each user operation, the next frame is updated and rendered immediately to ensure that the adjusted effect can be fed back to the user instantly.
[0199] 6. Real-time feedback and adjustment assistance:
[0200] Instant feedback: The system provides real-time rendering results, and users can use visual feedback to determine whether the adjustments are in line with expectations.
[0201] Auxiliary tools: The user interface provides auxiliary tools (such as grid guides) to help accurately adjust nodes and paths. The system responds to user operations in real time to improve the smoothness of the interactive experience.
[0202] Step 6. Confirm the adjustment and save the data
[0203] Specific operations:
[0204] 1. After the user is satisfied with the adjustment results, click the "Confirm" button.
[0205] 2. The system uses SQL commands to write the adjusted exploration line data into the database to ensure data integrity and consistency.
[0206] 3. Use transaction processing (ˋBEGIN; INSERT / UPDATE; COMMIT; ˋ) to ensure the atomicity of data operations and prevent data loss or inconsistency.
[0207] Example: Highway exploration line definition and data management
[0208] In a highway construction project, the project is about 50 kilometers long and passes through multiple complex terrain areas, including mountains, plains and wetlands. In order to accurately grasp the geological conditions and provide detailed geological data support for construction, it is necessary to define and manage exploration line data at multiple key locations along the route.
[0209] 1. Read BIM model file
[0210] In this highway project, the BIM model file containing highway terrain and route information was first imported into the BIMBase software.
[0211] Technical solution: Use the IFC Open Shell library to parse the BIM model file and use the VTK library for 3D rendering display.
[0212] Specific operations:
[0213] File import: Users select BIM model files through the "File Import" function of BIMBase software. The system pops up a file selection dialog box and calls the IFC Open Shell API interface to parse the file content.
[0214] Data analysis: The system extracts the three-dimensional coordinates, boundary shape and attribute information of the terrain, as well as the starting point, end point and geometric path of the route.
[0215] Data storage and rendering: After parsing, the system stores the information in a tree data structure and uses the VTK library for 3D rendering to display the terrain and line model along the highway. Users can rotate and zoom the model through the interface to view geological scenes from different angles.
[0216] 2. Define and draw the exploration line
[0217] In complex terrain, the system supports the definition and drawing of exploration lines in a semi-automatic manner.
[0218] Technical solution: Combine GIS tools and Qt framework to define exploration lines through parametric design.
[0219] Specific operations:
[0220] Enter definition mode: The user clicks the "Exploration Line Definition" button in the "Exploration Test" module to enter definition mode.
[0221] Select starting point and nodes: Users select the starting point and multiple nodes of the exploration line along the road route and terrain. The system displays reference lines on the interface to assist users in making accurate selections.
[0222] Parametric design: In the parameter setting window, the user enters the exploration line number, type and node spacing. The system calculates the geometry of the exploration line based on the input parameters and updates the display in real time on the interface.
[0223] Adjust line shape: Users can adjust the shape of the exploration line in real time by dragging the nodes with the mouse. The system uses Bezier curves to smoothly connect the nodes to ensure the smoothness of the curve. Users can optimize the design based on the overlap between the exploration line and the terrain displayed in real time.
[0224] Storage and Export: After the exploration line is defined, the system will temporarily store it in memory and provide an export option to support exporting the exploration line data as a GeoJSON file for further analysis.
[0225] 3. Exploration line data storage
[0226] After the definition is completed, the exploration line data needs to be stored and managed to facilitate subsequent data analysis and use.
[0227] Technical solution: Use PostgreSQL database and AWS Lambda to achieve data storage and cloud synchronization.
[0228] Specific operations:
[0229] Data storage: The user selects the exploration line number to be stored in the "Exploration and Testing" module and clicks the "Store" button.
[0230] Database operation: The system inserts the exploration line data into the PostgreSQL database through SQL statements and uses the PostGIS extension to store spatial data.
[0231] Data synchronization: AWS Lambda functions asynchronously back up data to the cloud to ensure data security and accessibility.
[0232] 4. The exploration line changes direction
[0233] For complex terrain, the system provides a function to adjust the direction of the exploration line to ensure that the exploration line is laid out reasonably and meets construction requirements.
[0234] Technical solution: Combining GIS spatial analysis and Dijkstra algorithm, the system provides direction adjustment function.
[0235] Specific operations:
[0236] Enter adjustment mode: The user clicks the "Exploration Line Adjustment" button to enter the adjustment interface, and the system loads and highlights the current exploration line.
[0237] Node adjustment: The user selects the node to be adjusted and changes its position by dragging the mouse. The system adjusts the path rationally based on GIS data analysis.
[0238] Path optimization: The system uses the Dijkstra algorithm to calculate the best direction of the path to avoid terrain obstacles. The algorithm optimizes the path length through weight calculation and updates the adjusted path in real time on the interface.
[0239] Bezier curve recalculation: After adjustment, the system recalculates the control points of the Bezier curve to ensure a smooth transition of the curve.
[0240] Optimization and rendering: The Laplace smoothing algorithm is applied to optimize the curve. The system uses OpenGL for real-time rendering. Users can observe the adjustment effect in real time through the interface.
[0241] 5. Real-time rendering and visualization
[0242] The system uses OpenGL rendering technology to visualize the adjusted exploration lines in a 3D environment, helping users observe the design effects from different perspectives.
[0243] Technical solution: Use OpenGL for real-time rendering and provide interactive visualization capabilities.
[0244] Specific operations:
[0245] OpenGL initialization: The system initializes the OpenGL context, sets rendering parameters and lighting model.
[0246] Data preparation: Load the exploration line node coordinates into the OpenGL vertex buffer object to prepare for rendering data.
[0247] Shader program: Write GLSL shader to control vertex coordinate transformation and color effects.
[0248] Real-time rendering: In each frame, the system calls the rendering pipeline to draw the exploration lines, ensuring that users get instant feedback when interacting.
[0249] Interactive function: Users can zoom and rotate the view through the mouse to view the three-dimensional layout of the exploration line. The system provides auxiliary tools to help users make detailed adjustments.
[0250] 6. Confirm the adjustment and save the data
[0251] When the user is satisfied with the exploration line adjustment, the final data needs to be saved for subsequent use.
[0252] Specific operations:
[0253] Confirm and save: When the user clicks the "Confirm" button, the system uses SQL commands to write the adjusted data into the database.
[0254] Data security: Ensure data integrity and consistency through transaction processing to prevent data loss or errors during storage.
[0255] In summary, since the present invention can automatically and intelligently design and adjust the exploration line, the complexity and errors of manual operation are reduced, thereby reducing the time and cost of the overall exploration project. The real-time adjustment function also avoids rework and waste of resources caused by changes in geological conditions.
[0256] Through the integrated operation interface and efficient automation function, the present invention can significantly improve the work efficiency of geological exploration. Users can complete the exploration line design in complex geological environments in a shorter time, improving the overall execution efficiency of the project.
[0257] Precise exploration line design and real-time adjustment functions improve the reliability and accuracy of geological data, thereby providing more reliable basic data for engineering design. By reducing uncertainty and potential risks, the present invention helps to improve the safety and stability of engineering construction.
[0258] The present invention introduces advanced BIM technology, GIS spatial analysis and intelligent algorithms, and promotes technological innovation in the geological exploration industry. By improving the automation level and technical content of the industry, the present invention promotes the upgrading of engineering exploration technology and helps to improve the competitiveness and development level of the entire industry.
[0259] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.
Claims
1. A multi-scenario geological exploration line creation and data management method based on BIM software, characterized in that: The following steps are involved: S1. Read BIM model file: import the BIM model file containing terrain and line information, and obtain all relevant data therein; S2. Draw and define exploration lines: Based on the terrain and line information in the BIM model, manually draw and define the exploration lines; S3, data storage: the drawn exploration line data is classified and input into the database for storage and management; S4. Change the direction of the exploration line: real-time adjustment of the exploration line direction to ensure that the data is consistent with the actual situation; S5. Real-time rendering and visualization: Through OpenGL rendering technology, the adjusted exploration line is visualized in a 3D environment, helping users observe the design effect from different perspectives; S6. Confirm the adjustment and save the data: When the user is satisfied with the exploration line adjustment, save the final data for subsequent use.
2. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1 is characterized in that: The specific implementation process of step S1 is as follows: S1.1: The user selects the "File Import" function in the BIMBase software, and the system pops up a file selection dialog box; S1.2: After the user selects a file, the system calls the IFC Open Shell API to parse the file content: For terrain data, extract its three-dimensional coordinates, boundary shape and attribute information; For route data, extract the starting point, end point and geometric information of the path; S1.3: After parsing is completed, the system stores the information in a tree data structure for subsequent operations; S1.4: The system uses the VTK library to render terrain and line information in 3D, realizes the visualization of geological scenes, and provides rich interactive functions to help users deeply analyze geological data; users view the 3D models of terrain and lines through the interface, and obtain different perspectives by rotating and zooming.
3. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 2 is characterized in that: The specific implementation process of step S1.4 is as follows: S1.4.1: Initialize the VTK environment: Import the VTK library, create rendering windows, renderers, and interactors; Configure the basic parameters of the rendering window, including background color and window size; S1.4.2: Data conversion and loading: Extract terrain and line geometry information from the parsed BIM model data and convert it into VTK format; Use vtkPolyData objects to store point coordinates and connection information to generate geometric representations of terrain and lines; S1.4.3: Create the geometry model: Use vtkPolyDataMapper to map vtkPolyData to renderable geometric data; Create a vtkActor object to manage the model's appearance properties and add it to the renderer; S1.4.4: Configure the renderer: Add the vtkActor objects of the terrain and line to the renderer vtkRenderer; Set light sources and lighting parameters to enhance the realism of 3D scenes; S1.4.5: Implementation of interactive functions: Configure vtkRenderWindowInteractor to support user interaction; Use vtkInteractorStyleTrackballCamera to implement interactive style, support mouse dragging for zooming, rotating and panning operations; Zoom: Use the mouse wheel or keyboard shortcuts to zoom in and out of the model; Rotate: Drag the mouse to adjust the viewing angle and observe the terrain and lines from different angles; Pan: Adjust the view position by holding down the right mouse button and dragging; S1.4.6: Rendering loop: Call the Render method of the rendering window to start the rendering loop; The system updates the rendered content every time the user interacts, providing real-time view feedback; Control rendering efficiency by setting frame rate to ensure a smooth user experience; S1.4.7: Real-time update and display: Update the geometric data in vtkPolyData when the data or view parameters change; Call the Modified method to notify VTK to update the data and re-render the scene.
4. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1 is characterized in that: The specific implementation process of step S2 is as follows: S2.1: Enter the exploration line definition mode: In the "Exploration Test" module, the user clicks the "Exploration Line Definition" button, the mouse pointer changes to a cross cursor, and the system enters the exploration line definition mode: The system provides a drawing toolbar in the interface, which includes drawing, editing, and undo function buttons; S2.2: Select the polyline start point and nodes: The user selects the starting point of the exploration line with the mouse, and the system automatically creates an initial node; The user selects multiple nodes along the terrain contour, and the system uses GIS tools to calculate the geographic coordinates of the nodes in real time; The system dynamically displays auxiliary reference lines on the interface, using visual guidance to help users accurately locate nodes; S2.3: Parametric survey line design: The user enters the exploration line number, type and related parameters in the pop-up parameter setting window; The system automatically calculates the geometry of the exploration line based on the parameters entered by the user and updates the display in real time in the interface; S2.4: Adjust the shape of the survey line: Users can adjust the shape of the exploration line in real time by dragging nodes and endpoints; The system uses Qt's event processing mechanism to monitor the user's mouse drag events and uses Bezier curves to smoothly connect nodes to ensure the smoothness and accuracy of the exploration line; A Bezier curve is a parametric curve that determines the shape of the curve by defining control points; in the exploration line definition, the nodes selected by the user serve as the key points of the curve; For each pair of adjacent nodes, the system calculates two control points that are located midway between the nodes and offset by a certain distance to adjust the curvature of the curve; Use the cubic Bezier curve formula to calculate the smooth curve between nodes: The curve is drawn through Qt’s drawing API and rendered in real time on the user interface to form a smooth exploration line; The user changes the shape of the curve by adjusting the node positions, and the system automatically updates the Bezier curve based on the adjustments; During the adjustment process, the system displays the precise coordinates of each node and updates the length and direction of the line segment in real time according to the parameterized settings; S2.5: Real-time feedback and optimization: Users can view the coverage and accuracy of the survey line in real time during the adjustment process; The system uses GIS tools to calculate and display the overlap between the exploration line and the terrain, helping users optimize the design of the exploration line; In complex terrain, the system provides automatic alignment function to ensure that the exploration line is accurately deployed along the preset terrain contour; S2.6: Data storage and export: After the user confirms the exploration line design, click the "Finish" button, and the system will temporarily store the exploration line data in the memory and provide a save option; The system supports exporting exploration line data into standard GIS format files to facilitate subsequent analysis and sharing.
5. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1, characterized in that: The specific implementation process of step S3 is as follows: S3.1: In the "Exploration and Testing" module, click the "Exploration Line Import" button, and the system pops up the import window; S3.2: The user selects the exploration line number to be stored and clicks the "Store" button; S3.3: The system inserts the survey line data into the PostgreSQL database through the following SQL statement: INSERT INTO ExplorationLines(LineID,Type,StartPoint,EndPoint,Coordinates) VALUES($1,$2,$3,$4,ST_GeomFromText('LINESTRING($5)')); Use the PostGIS extension to store geospatial data; S3.4: The system backs up data to the cloud through AWS Lambda function to achieve asynchronous data synchronization.
6. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1, characterized in that: The specific implementation process of step S4 is as follows: S4.1: Enter the exploration line adjustment mode: In the "Exploration Test" module, the user clicks the "Exploration Line Adjustment" button to enter the adjustment interface: The system loads the current exploration line data and highlights the selected exploration line through the Qt GUI interface, providing interactive tools for users to operate; S4.2: Select the exploration line node to adjust: The user selects the node to be adjusted by clicking the mouse; The system uses Qt's mouse event monitoring mechanism to display the control mouse on the selected node, prompting the user to adjust the node position by dragging the mouse; S4.3: Path optimization and adjustment: After the user adjusts the node position, the system calls the GIS library to perform spatial analysis to evaluate whether the adjusted path meets the terrain restrictions; Through the Dijkstra algorithm, the system calculates the best adjustment direction of the path to avoid terrain obstacles and minimize the path length. The process is as follows: Construction of graph model: Represent the exploration area as a graph with nodes and edges; nodes represent key locations and edges represent paths connecting these nodes; Each edge is assigned a weight based on the terrain characteristics, indicating the "cost" or "difficulty" of the path; Initialization algorithm: Set the starting node, which is the starting point of the currently selected exploration line; Assign an initial distance value to each node, the starting node is 0, and other nodes are infinite; Create a priority queue to store nodes and their current minimum distances; Path search and update: Extract the node with the smallest distance from the priority queue as the current node; For each adjacent node of the current node, calculate the total distance from the current node to the adjacent node; If the total distance is less than the distance currently recorded by the adjacent node, the minimum distance of the adjacent node is updated, and its predecessor node is set as the current node; Re-insert the updated adjacent node into the priority queue; Complete your search: Repeat the search and update process until the priority queue is empty or the shortest path has been found for all nodes; Path reconstruction and display: Start from the end node and trace back to the predecessor node to reconstruct the shortest path; The optimized path is updated to the user interface and marked by color or line type changes; After the system calculates a new path, it updates the path displayed in the user interface in real time; S4.4: Recalculate the Bezier curve: The system recalculates the control points of the curve based on the adjusted node positions to ensure the smoothness of the curve.
7. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 6 is characterized in that: The specific implementation process of step S4.4 is as follows: S4.4.1: Select control points: Initial settings: When the user selects an exploration line and adjusts a node, the system uses the current node and its adjacent nodes as control points of the Bezier curve; Control point definition: A Bezier curve is usually defined by a starting point, an end point, and one or more control points; the system automatically identifies and marks these points in preparation for subsequent calculations; S4.4.2: Calculate the parameters of the Bezier curve: Calculate according to the general formula of Bezier curve, Where P i is the control point, b i,n (t) is the Bernstein polynomial; S4.4.3: Calculate the curvilinear path: Discretization process: To generate a smooth curve, the system discretizes the parameter t from 0 to 1 into multiple steps; Path calculation: For each t value, calculate the corresponding curve point B(t) and connect these points into a continuous line; Real-time feedback: The system dynamically updates the curve display, and instantly reflects the curve changes when the user adjusts the control point, ensuring that the user can view the adjustment effect in real time; S4.4.4: Optimize curve smoothness: In order to improve the visual effect of the curve, the system applies the Laplace smoothing algorithm to smooth the slight differences between adjacent curve points; Laplace smoothing is an iterative algorithm that is often used to eliminate noise on the surface of a curve or mesh to ensure smooth transitions; the following are the specific implementation steps and technical principles: S4.4.4.1: Initialization settings: Get initial curve points: The system obtains all discrete points of the current Bezier curve {P0, P1, ..., P n }; Neighborhood definition: For each point P i , whose neighborhood includes two adjacent points P i-1 and P i+1 ; S4.4.4.2: Iterative smoothing process: Laplace smoothing formula: For each point P on the curve i , excluding boundary points, calculate the new position using the following formula: Among them, λ is a smoothing factor, which usually takes a value between 0 and 1 and is used to control the intensity of smoothing; Update point coordinates: Based on the calculated Update the coordinates of the points; S4.4.4.3: Iteration and Convergence: Repeat: The above smoothing steps are performed at each point, and the whole process is iterated multiple times until the curve changes tend to be stable; Convergence judgment: By measuring the change of the curve after each iteration, when the change is less than the preset threshold, the algorithm terminates the iteration.
8. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1, characterized in that: The specific implementation process of step S5 is as follows: S5.1: OpenGL initialization: Context creation: Initialize the OpenGL context in the Qt application to ensure that graphics can be drawn in the rendering window; Rendering settings: configure the necessary rendering parameters, including enabling depth testing to correctly draw the front-to-back order, and enabling the lighting model to increase the three-dimensional effect; S5.2: Survey line data preparation: Vertex data buffering: Load the adjusted exploration line node coordinates into the OpenGL vertex buffer object and use the glGenBuffers(), glBindBuffer(), and glBufferData() methods to transfer the vertex data to the GPU. Line segment index buffer: Create an index buffer object to store the connection relationship between nodes for reference during drawing; S5.3: Shader program settings: Writing GLSL shaders: Use OpenGL shading language to write vertex and fragment shaders. The vertex shader is responsible for converting node coordinates into screen coordinates, and the fragment shader is responsible for setting the color and lighting effects of the lines. Compile and link: compile the shader code and link it to the shader program, and enable the program for rendering through glUseProgram(); S5.4: Real-time rendering: Draw exploration lines: In the rendering loop of each frame, use the glDrawElements() function to draw exploration lines based on the index buffer; transform through the model view projection matrix to ensure that the exploration lines are correctly displayed in 3D space; Real-time update: When the user interacts, the vertex data in the VBO is updated in real time, and the rendering pipeline is called again for drawing; S5.5: User interaction and visualization functions: Scaling and rotation: Use Qt's event mechanism to monitor the user's mouse wheel and drag events, adjust the scale and rotation angle of the view matrix, and achieve scaling and rotation of the 3D view; Zoom: By modifying the zoom factor of the view matrix, the overall zoom in or out can be achieved; Rotation: By rotating the matrix, the viewing direction is adjusted so that users can view the exploration line from different angles; Frame-by-frame rendering: After each user operation, the next frame is updated and rendered immediately to ensure that the adjusted effect can be fed back to the user immediately; S5.6: Real-time feedback and adjustment assistance: Instant feedback: The system provides real-time rendering results, and users can use visual feedback to determine whether the adjustments are in line with expectations; Auxiliary tools: The user interface provides auxiliary tools to help accurately adjust nodes and paths. The system responds to user operations in real time to improve the smoothness of the interactive experience.
9. The method for creating and managing multi-scenario geological exploration lines and data based on BIM software according to claim 1, characterized in that: The specific implementation process of step S6 is as follows: S6.1: After the user is satisfied with the adjustment result, he / she clicks the "Confirm" button; S6.2: The system uses SQL commands to write the adjusted survey line data into the database to ensure data integrity and consistency; S6.3: Use transaction processing to ensure the atomicity of data operations and prevent data loss or inconsistency.
10. A system for creating and managing multi-scenario geological exploration lines based on BIM software, characterized in that: include: BIM model file reading module: used to import BIM model files containing terrain and line information and obtain all relevant data therein; Draw and define exploration line module: manually draw and define exploration lines based on the terrain and line information in the BIM model; Data entry module: used to input the drawn exploration line data into the database for classification, storage and management; Module for changing the direction of the exploration line: used for real-time adjustment of the direction of the exploration line to ensure that the data is consistent with the actual situation; Real-time rendering and visualization module: used to visualize the adjusted exploration lines in a 3D environment through OpenGL rendering technology, helping users observe the design effects from different perspectives; Confirm adjustments and save data module: When the user is satisfied with the exploration line adjustments, the final data is saved for later use.