Tunnel segment arrangement method based on revit and dynamo
The automated tunnel segment layout method using Revit and Dynamo has solved the problems of low positioning accuracy and efficiency in tunnel segment layout, achieving high-precision tunnel construction and intelligent design, and improving construction quality and progress.
Patent Information
- Application Number
- CN202411370139.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-29
- Publication Date
- 2025-11-11
- Estimated Expiration
- 2044-09-29
AI Technical Summary
Existing technologies suffer from problems such as low positioning accuracy, low work efficiency, and complex correction during tunnel segment placement. In particular, it is difficult to achieve high-precision segment positioning in complex tunnel designs, which affects construction quality and progress.
An automated tunnel segment layout method based on Revit and Dynamo is adopted. By automatically calculating and adjusting the position, spacing and angle of the segments, combined with cloud collaboration functions and machine learning algorithms, processing data and construction guidance documents are automatically generated, thus optimizing the design and construction process.
It improved the accuracy and efficiency of tunnel segment layout, reduced construction errors, enhanced the intelligence level of design and team collaboration efficiency, and ensured the long-term stability of the tunnel structure.
Smart Images

Figure CN119475487B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of building information modeling, and more specifically to a method for arranging tunnel segments based on Revit and Dynamo. Background Technology
[0002] With the widespread application of Building Information Modeling (BIM) technology, profound changes have taken place in the field of building engineering, especially in the construction of subway stations and sections. The introduction of BIM technology has brought about significant efficiency improvements and cost reductions. By constructing three-dimensional digital models, BIM technology can effectively integrate and manage information from all stages of subway station and section construction, including design, construction, and operation. This integrated management approach not only improves project efficiency but also optimizes resource allocation, reduces construction costs, and lays a solid foundation for the sustainable development of subway stations and sections.
[0003] In tunnel engineering, the placement of tunnel segments is a crucial step. However, existing technologies face numerous challenges in this process. Traditional methods typically rely on manual operation, requiring designers to manually position each segment in a 3D model. This approach suffers from low positioning accuracy, low efficiency, and complex correction procedures. During manual operation, the complex curvature variations in tunnel designs make achieving high precision difficult, easily leading to positioning errors. Furthermore, the large number of tunnel segments and the tedious, time-consuming placement process, especially with complex tunnel designs (such as bifurcations and curves), further increase the workload for designers. Simultaneously, even minor positioning errors during manual placement can accumulate into significant overall deviations, causing problems such as poor splicing or excessive gaps, making correction complex, time-consuming, and labor-intensive.
[0004] These issues directly impact the overall construction quality and schedule of tunnel projects. For example, inaccurately positioned tunnel segments can lead to stability problems in the tunnel structure during actual construction, increasing safety risks. Furthermore, the inefficiency of manual placement can delay project progress and increase construction costs. Summary of the Invention
[0005] To overcome the shortcomings of existing technologies, this invention proposes a tunnel segment layout method based on Revit and Dynamo. This method improves layout accuracy and construction efficiency by automating the segment layout process. Automatic calculation and adjustment of segment positions, spacing, and angles ensures precise matching between segments and the design path, reducing construction errors. Automatically generated processing data and construction guidance documents simplify construction preparation, while cloud-based collaboration functions and machine learning algorithms enhance the intelligence level of design and team collaboration efficiency, thereby optimizing the overall design and construction process.
[0006] To achieve the above objectives, this invention provides an automatic tunnel segment layout method based on Revit and Dynamo, comprising the following steps:
[0007] Step 1: Based on the dimensional data of the tunnel design drawings, create a tunnel segment family in Revit. Select the adaptive family template and create multiple adaptive points in the segment model in a counterclockwise direction to determine the positioning plane. Then, through operations such as stretching and shearing, create a ring-shaped segment that conforms to the tunnel cross-section.
[0008] Step 2: Import the 3D tunnel design route in CAD format into the Revit project file as a reference path for segment layout.
[0009] Step 3: Open Dynamo in Revit and create a new script file. Use the "Select ModelElement" node to import the 3D design route from Step 2 into Dynamo, and use the "Element.Geometry" node to extract the geometric information of the route to obtain the specific location and orientation data of the tunnel path.
[0010] Step 4: Read the length of the designed route through the "Curve.Length" node, and use the code node and corresponding mathematical functions to calculate the total number of tunnel segments and the interval point of each segment, ensuring that the position and orientation of each segment match the designed route.
[0011] Step 5: Based on the calculated interval points and the number of segments, determine the positioning center of each segment using the "Curve.PointAtSegmentLength" node. Using the "Python Script" node, iteratively calculate the positioning plane and rotation angle of each segment to ensure that the segments are tightly and seamlessly joined together.
[0012] Step 6: Using the “AdaptiveComponent.ByPoints” node, the tunnel segments are automatically generated and arranged using Dynamo scripts. Each adaptive point is matched with the calculated positioning plane and rotation angle to achieve accurate 3D modeling.
[0013] Step 7: Click the run button of the Dynamo script to automatically complete the segment layout. Check whether the final layout meets the design requirements. If there is a deviation, it can be optimized by adjusting the Dynamo script parameters.
[0014] Furthermore, when creating the tunnel segment family in step 1, the segment family includes not only standard blocks but also capping blocks and adjacent blocks. Each segment block is precisely modeled according to actual engineering requirements. The specific steps are as follows:
[0015] The design of the capping block ensures that it can adapt to changes in the curvature of the tunnel top, and it is usually designed with an asymmetrical shape to accommodate different assembly angles.
[0016] Adjacent blocks are designed to connect with standard blocks, and different geometric parameters are defined to ensure seamless connection between adjacent blocks and standard blocks.
[0017] The geometric parameters of each tunnel segment, such as wedge size, radius, and height, should be precisely set according to the actual tunnel cross-section dimensions and design requirements, and controlled parametrically in Dynamo for subsequent automatic adjustment and optimization.
[0018] Furthermore, in step 4, the calculation of the segment positioning center is dynamically adjusted based on the curvature of the tunnel curve and the extension direction of the tunnel axis. Specifically:
[0019] By reading the curvature changes of the design route, conditional judgment logic is set in Dynamo. When the curvature reaches a certain predetermined value, the arrangement interval and angle between the segments are automatically adjusted to ensure that the segments can closely fit the curve.
[0020] For different radii of curvature, the arrangement density of the segments is dynamically adjusted to reduce the assembly error between segments. The rotation angle and spacing of the segments are automatically adjusted through Dynamo scripts to ensure the continuity and accuracy of the assembly.
[0021] Furthermore, the Python script in step 5 can model complex tunnel structures, such as handling complex situations like tunnel bifurcation, variable cross-sections, and curves. The specific implementation is as follows:
[0022] For bifurcated tunnels, by identifying the bifurcation points in the tunnel route, the Python script automatically generates segment layout schemes for different paths and achieves seamless splicing of multiple paths.
[0023] In areas where the tunnel cross-section changes, the script will automatically adjust the shape and size of the tunnel segments according to preset geometric parameters to adapt to the changing tunnel cross-section and ensure that the tunnel segments can still maintain continuity in areas where the cross-section changes.
[0024] For complex curves, the script will automatically optimize the arrangement direction and angle of the segments based on the curvature and spiral characteristics of the path to minimize assembly errors during construction.
[0025] Furthermore, the "AdaptiveComponent.ByPoints" node in step 6 can be used in conjunction with multiple functional modules in Revit to further optimize the layout of tunnel segments. Specifically, this is implemented as follows:
[0026] By combining Revit's "view filters" function, the already arranged segments can be automatically inspected and marked, highlighting areas with potential assembly errors or layout anomalies for further manual verification and correction.
[0027] Using Revit's "Construction Simulation" module, you can combine the existing segment model with the construction schedule to generate construction simulation animations, identify potential construction problems in advance, and optimize the construction plan.
[0028] By linking Dynamo scripts with Revit's "Material Assignment" function, appropriate materials can be automatically assigned to different types of segments. This allows for clear differentiation of segment types and material attributes during rendering and visualization, thereby improving the accuracy of design presentations and communication efficiency.
[0029] Furthermore, in step 6, the Dynamo script can be integrated with Autodesk Revit's "collision detection" function to perform automated collision detection analysis after the segment layout is completed. The specific implementation is as follows:
[0030] The Dynamo script is used to perform collision detection between the deployed tunnel segments and other structures inside the tunnel (such as cables and pipes) to identify potential conflict points.
[0031] The collision detection results are fed back to the Dynamo script in the form of data, which automatically triggers the adjustment algorithm to optimize the position and angle of the tunnel segments in order to avoid collision problems that may occur during actual construction.
[0032] If a serious collision problem is detected, the system will generate an alarm and output a detailed inspection report for designers to refer to and correct.
[0033] Furthermore, in steps 5 and 6, the Dynamo script can automatically generate segment processing data and construction guidance documents. The specific implementation is as follows:
[0034] The segment layout model generated by Dynamo scripts automatically exports standard-compliant machining data files (such as CNC machining code) for direct use in the production process.
[0035] Based on the construction schedule, phased construction guidance documents are generated, detailing the required number, type, installation location, and angle of tunnel segments for each construction step.
[0036] The generated construction guidance documents can be exported in various formats, such as PDF, DWG, and Excel, making them convenient for on-site construction teams to use and reference.
[0037] Furthermore, the calculation process in step 4 considers the impact of temperature and humidity changes within the tunnel on the segment material. The specific implementation is as follows:
[0038] The Dynamo script incorporates parameter models for temperature and humidity, and automatically adjusts the size and installation gap of the segments based on environmental data measured on-site to adapt to material changes caused by thermal expansion and contraction.
[0039] By using parametric calculations of the material model, the deformation trend of the tunnel segments under different temperature and humidity conditions can be predicted, allowing for early design optimization and ensuring the long-term stability of the tunnel structure.
[0040] The generated segment models and layout schemes include material durability analysis reports to assist in design decisions and material selection.
[0041] Furthermore, the Dynamo script in step 3 can be shared with multiple design teams through cloud collaboration features, and supports real-time modification and synchronous updates. The specific implementation is as follows:
[0042] Using Dynamo's cloud collaboration module, design teams can access and edit the same Dynamo script simultaneously, with all changes synchronized to all participants in real time.
[0043] Version control automatically saves historical versions of the script, allowing designers to roll back to previous versions at any time, ensuring the traceability of the design process.
[0044] The cloud collaboration feature supports design teams in multiple regions, automatically optimizing data synchronization speed and bandwidth allocation based on the team's time zone and network conditions, thereby improving collaborative design efficiency.
[0045] Furthermore, the Dynamo script can combine machine learning algorithms to continuously optimize the tunnel segment layout scheme. The specific implementation is as follows:
[0046] By inputting successful experiences and failure cases of segment layout in historical projects into a machine learning model, an algorithm model that can predict the optimal layout scheme is trained.
[0047] During the deployment of new projects, Dynamo scripts automatically call the trained model to predict and generate optimized segment layout schemes based on tunnel design parameters, environmental conditions, and other data.
[0048] By leveraging the model's self-learning capabilities, new project data can be continuously accumulated, the accuracy of the algorithm can be optimized, and the level of intelligence in the layout of tunnel segments in future projects can be improved.
[0049] Compared with the prior art, the beneficial effects of the present invention are:
[0050] 1. This invention provides a tunnel segment layout method based on Revit and Dynamo. By automatically calculating and optimizing the position, spacing and rotation angle of the segments, it ensures that the segments are precisely matched with the design path, thereby improving the layout accuracy of tunnel segments.
[0051] 2. This invention provides a tunnel segment layout method based on Revit and Dynamo, which dynamically adjusts the arrangement interval and angle of the segments to adapt to curvature changes, reduces segment splicing errors, and ensures close cooperation of the segments during construction.
[0052] 3. This invention provides a tunnel segment layout method based on Revit and Dynamo, which automatically generates processing data and construction guidance documents, clearly defines the number, type and location of segments in each construction step, simplifies construction preparation and execution, and improves construction efficiency.
[0053] 4. This invention provides a tunnel segment layout method based on Revit and Dynamo. The cloud-based collaborative function enables real-time sharing and updates, supports simultaneous editing and version control by multiple teams, improves the collaboration efficiency and project management level of the design team, and automatically optimizes the segment layout scheme by combining temperature and humidity changes and machine learning algorithms, thereby enhancing design adaptability and improving the intelligence level and long-term stability of future projects. Attached Figure Description
[0054] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0055] Figure 1 This is a schematic diagram of the steps of the present invention;
[0056] Figure 2 This is a schematic diagram of the tube segment family of the present invention;
[0057] Figure 3 This is a schematic diagram of the three-dimensional design route for the interval of this invention;
[0058] Figure 4 This is a schematic diagram of the design route for reading data in this invention;
[0059] Figure 5 This is a schematic diagram showing the total number of rings in the tube segments of the present invention;
[0060] Figure 6 This is a schematic diagram showing the theoretical location of the segment center in this invention;
[0061] Figure 7This is a schematic diagram of the center plane of the first ring of the present invention;
[0062] Figure 8 This is a schematic diagram of the Python Script code for this invention;
[0063] Figure 9 This is a schematic diagram of the segment parameters of the present invention;
[0064] Figure 10 This is a schematic diagram illustrating the integration and calculation of segment parameters in this invention;
[0065] Figure 11 This is a schematic diagram illustrating the calculation of the segment positioning points for this invention;
[0066] Figure 12 This is a schematic diagram of the Python Script code of the present invention;
[0067] Figure 13 This is a schematic diagram of the Python Script code 2 of the present invention;
[0068] Figure 14 This is a schematic diagram of the Python Script code of the present invention;
[0069] Figure 15 This is a schematic diagram of the Python Script code of the present invention (4).
[0070] Figure 16 This is a schematic diagram of the Python Script code of the present invention (5);
[0071] Figure 17 This is a schematic diagram of the Python Script code of the present invention (6).
[0072] Figure 18 This is a schematic diagram of the generated tube segments according to the present invention;
[0073] Figure 19 This is a schematic diagram illustrating the assembly effect of the pipe segments according to the present invention. Detailed Implementation
[0074] The technical solution of the present invention will be more clearly and completely explained below with reference to the accompanying drawings and through the description of preferred embodiments of the present invention.
[0075] like Figure 1 As shown, the present invention specifically comprises:
[0076] Step 1: Based on the dimensional data of the tunnel design drawings, create a tunnel segment family in Revit, select the adaptive family template, create adaptive points in the segment model in a counterclockwise direction to determine the positioning plane, and create the annular segments of the tunnel cross section through stretching and shearing operations.
[0077] Step 2: Import the 3D tunnel design route in CAD format into the Revit project file as a reference path for segment layout;
[0078] Step 3: Open Dynamo in Revit and create a new script file. Use the "Select ModelElement" node to import the 3D design route from Step 2 into Dynamo, and use the "Element.Geometry" node to extract the geometric information of the route to obtain the specific location and direction data of the tunnel path.
[0079] Step 4: Read the length of the designed route through the "Curve.Length" node, and use the code node and corresponding mathematical functions to calculate the total number of tunnel segments and the interval point of each segment to ensure that the position and orientation of the segments match the designed route;
[0080] Step 5: Based on the calculated interval points and the number of segments, use the "Curve.PointAtSegmentLength" node to determine the positioning center of the segment, and use the "Python Script" node to iteratively calculate the positioning plane and rotation angle of the segment to ensure that the segments are spliced together.
[0081] Step 6: Using the “AdaptiveComponent.ByPoints” node, the tunnel segments are automatically generated and arranged using Dynamo scripts. The adaptive points are matched with the calculated positioning plane and rotation angle to achieve 3D modeling.
[0082] Step 7: Click the run button of the Dynamo script to automatically complete the segment layout. Check whether the final layout meets the design requirements. If there is a deviation, it can be optimized by adjusting the Dynamo script parameters.
[0083] As one specific implementation method, implementation method 1:
[0084] This method is used in the design and construction phases of tunnel engineering. It achieves precise placement and installation optimization of tunnel segments through automated scripts, specifically including the following steps:
[0085] Creating a tunnel segment family:
[0086] In Autodesk Revit, create a tunnel segment family based on the tunnel cross-section dimensions provided in the design drawings. The specific steps are as follows:
[0087] Select the adaptive family template and create a segment model in Revit. Create three adaptive points in a counter-clockwise direction; these points will be used to determine the positioning plane later.
[0088] Use the Stretch tool to create the basic shape of the tube segment, setting the outer radius to 1300mm, the inner radius to 1100mm, and the height to 800mm. Then, use the Cut tool to cut along the sides, forming wedges with widths of 785mm and 815mm on each side.
[0089] The entire annular segment is divided into six blocks: one capping block, two adjacent blocks, and three standard blocks, and each block is named. Finally, these segment families are saved and imported into the Revit project file.
[0090] Import tunnel design route:
[0091] In Revit, import the 3D design route file of the tunnel (usually in CAD format) and use it as a reference path for the layout of tunnel segments.
[0092] This design route represents the actual path of the tunnel, including three-dimensional curve information of the tunnel axis.
[0093] Creating a Dynamo script:
[0094] In Revit's "Manage" tab, launch Dynamo and create a new script file.
[0095] Use the “Select Model Element” node to select the imported tunnel design route and import its geometry information into the Dynamo environment.
[0096] The "Element.Geometry" node is used to extract the geometric information of the design route, and then the "Curve.Length" node is used to calculate the total length of the design route. To adapt to the curvature changes of the tunnel, the Dynamo script dynamically adjusts the arrangement density of the tunnel segments according to the curvature of the path, and uses code blocks to calculate the total number of rings of the tunnel segments and the interval points of each ring.
[0097] Segment positioning and layout:
[0098] In Dynamo, complex calculations are performed using the "Python Script" node. This script iteratively calculates the positioning center and planar angle of each tunnel segment to ensure that the segments are precisely positioned along the tunnel according to the designed route.
[0099] For each tunnel segment, the segment family is matched with the positioning points calculated by Dynamo through the "AdaptiveComponent.ByPoints" node, and the segment is automatically placed on the tunnel path.
[0100] The Python script also checks the joints and rotation angles between each segment to ensure that the entire tunnel segment can be tightly and seamlessly spliced together.
[0101] Collision detection and optimization:
[0102] After the tunnel segments are laid out, Revit's "collision detection" function is used to automatically detect collisions between the laid segments and other structures inside the tunnel (such as cables and pipes).
[0103] Based on the test results, the Dynamo script will automatically trigger an adjustment algorithm to optimize the position and angle of the tunnel segments in order to avoid potential conflicts during actual construction.
[0104] If a serious collision problem is detected, the system will generate an alarm and output a detailed inspection report for the design team to review and make corrections.
[0105] Export construction data and make optimizations:
[0106] The Dynamo script adjusts the size and installation gap of the tunnel segments according to the temperature and humidity conditions of the tunnel to accommodate the thermal expansion and contraction of the materials and ensure the long-term stability of the tunnel.
[0107] Finally, export the standard-compliant machining data files (such as CNC code) and generate construction guidance documents, including detailed information such as installation location, quantity, type, and angle. This data can be directly used for production and on-site construction.
[0108] If needed, the design team can also use Dynamo scripts to generate construction simulation animations and output optimization reports, further enhancing the controllability and planning of the construction process.
[0109] Implementation Method 2
[0110] Based on Implementation Method 1 above, this implementation method further describes how to utilize cloud-based collaboration functions and machine learning algorithms to enhance design collaboration and intelligent optimization. Specific steps include:
[0111] Cloud-based collaborative design:
[0112] Dynamo's cloud collaboration module allows design teams in multiple regions to access and edit the same Dynamo script simultaneously. All design changes are synchronized in real time, and version control automatically saves historical versions of the script.
[0113] This feature makes cross-regional, multi-team collaborative design efficient and controllable, ensuring that each design team has access to the latest design updates and can roll back to earlier versions at any time for modifications and adjustments.
[0114] Machine learning algorithm optimization:
[0115] In the early stages of design, data from historical tunnel engineering projects are collected and input, including successful segment layout schemes and failure cases.
[0116] The data is trained using a machine learning model to generate an algorithmic model that predicts the optimal segment layout.
[0117] In the current project, the Dynamo script invokes this machine learning model to automatically generate an optimized tunnel segment layout plan based on design parameters, environmental conditions, construction schedule, and other factors. As more project data accumulates, the machine learning model will continuously optimize itself, improving the accuracy and practicality of its predictions.
[0118] The implementation demonstrates how to combine Revit and Dynamo for automated tunnel segment placement, from creating segment families to providing final construction guidance, ensuring design accuracy and construction feasibility. The application of cloud collaboration and machine learning algorithms further enhances the project's intelligence and team collaboration efficiency.
[0119] As a specific embodiment, an automatic tunnel segment layout method based on Revit and Dynamo includes the following process:
[0120] Step 1: Based on the dimensional data of the tunnel segment design drawings, create a tunnel segment family in Revit, such as... Figure 2 As shown, select the Adaptive Family template and create 3 adaptive points counterclockwise within it. These points will be used to determine the positioning plane in subsequent code. Create a cylindrical annular segment by extrusion, with an outer radius of 1300mm, an inner radius of 1100mm, and a height of 800mm. Then, cut from the side to make the widths on both sides 785mm and 815mm respectively, a difference of 30mm, which is the wedge amount. Finally, divide it into 6 blocks, consisting of one capping block, two adjacent blocks, and three standard blocks, and name it "Adaptive Segment Family - Simplified Version," then import it into the Revit project file.
[0121] Step 2: Import the 3D design route of the interval in CAD format into the Revit project file, such as... Figure 3 As shown;
[0122] Step 3: Open "Dynamo" from the "Manage" tab and create a new script file;
[0123] Step 4: Link the 3D design path from Step 2 through the "Select Model Element" node, import it into Dynamo, obtain the geometric path of the 3D design path through the "Element.Geometry" node, and obtain the reverse path of the geometric path through the "Curve.Reverse" node, such as... Figure 4As shown, by creating an "If" node, connecting the "Element.Geometry" node to the "true" interface, connecting the "Curve.Reverse" node to the "false" interface, and creating a "Boolean" node to the "test" interface, the CAD 3D design curve can be read through this step, and the direction of the route can be switched through the "Boolean" node. true means that the beginning and end of the route are not reversed, and false means that the beginning and end of the route are reversed.
[0124] Step 5: Create a "Curve.Length" node and connect the "Element.Geometry" node from Step 4 to the "curve" interface to read the length of the 3D route. Create a "Code Block" node, input the segment width "d=800", create a "Code Block" node, input the formula "Math.Floor(len / d);", connect the "Curve.Length" node to the "len" interface, connect the "segment width" to the "d" interface, and calculate the total number of segments, such as... Figure 5 As shown;
[0125] Step 6: Create a "Code Block" node, input the code "d / 2..length..d;", connect the "Curve.Length" node from Step 5 to the "length" interface, and connect the "segment width" from Step 5 to the "d" interface. Based on this, take points at fixed intervals along the route. Create a "List.Flatten" node, convert the list to a one-dimensional list, and connect the "Code Block" node from this step to its "list" interface. Finally, create a "Curve.PointAtSegmentLength" node, connect the "If" node from Step 4 to the "curve" interface of the "Curve.PointAtSegmentLength" node, and connect the "List.Flatten" node to the "segmentLength" interface of the "Curve.PointAtSegmentLength" node. Through this step, calculate the theoretical positions of all segment positioning centers at fixed intervals. Figure 6 As shown;
[0126] Step 7: Create a new “Curve.ParameterAtPoint” node, connect the “curve” interface to the “If” node in Step 4, and connect the “point” interface to the “Curve.PointAtSegmentLength” node in Step 6. Create a new “List.FirstItem” node and connect it to the “Curve.ParameterAtPoint” node. Create a new “Curve.TangentAtParameter” node, connect the “curve” interface to the “If” node in Step 4, and connect the “param” interface to the “List.FirstItem” node. Create another new “List.FirstItem” node and connect it to the “Curve.PointAtSegmentLength” node in Step 6. Create a new “Python Script” node, connect the “IN[0]” interface to the second “List.FirstItem” node, connect the “IN[1]” interface to the “Curve.TangentAtParameter” node, and enter the code as follows. Figure 8 Calculate the center plane of the first ring, as follows: Figure 7 As shown;
[0127] Step 8: Create a new “Family Types” node and click the dropdown to select “Adaptive Family - Simplified Version”. Create an “Integer Slider” node and set “Min=1”, “Max=12”, and “Step=1”. The numbers can be adjusted between 1 and 12. Create a new “Code Block” node and enter “n=12” to represent the number of bolt holes. Create a new “Code Block” node and enter “S=30” to represent the wedge shape. Create a new “Code Block” node and enter “R=1300” to represent the outer radius. Create a new “Code Block” node and enter “num=1400” to represent the number of rings generated. Create a new “Code Block” node and enter “θ=Math.Atan(S / 4 / R);”, where θ is the cone angle. Create a new “Code Block” node and enter “r=d / 2*Math.Sin(θ);”, where r is the cone base radius. Create a new “Code Block” node and enter “h=d / 2*Math.Cos(θ);”, where h is the cone height. Figure 9 As shown;
[0128] Step 9: Create a new "Code Block" node to collect and organize the above key parameters to prevent connection confusion, and enter the code as follows: Figure 10Connect the “locNum” interface to the “Integer Slider” node in step 8, connect the “num” interface to the “vertical handhole number” in step 8, connect the “theoryPts” interface to the “Curve.PointAtSegmentLength” node in step 6, connect the “coneAngle” interface to the “cone angle” in step 8, connect the “d” interface to the segment width in step 5, connect the “coneHeight” interface to the “cone height” in step 8, connect the “coneRadius” interface to the “cone base radius” in step 8, and connect the “createNum” interface to “num=1400” in step 8.
[0129] Step 10: Create a new "Python Script" node, connect the "IN[0]" interface to the "PythonScript" node in Step 7, connect the "IN[1]" interface to the "locNum" interface of the "Code Block" node in Step 9, connect the "IN[2]" interface to the "360 / num" interface of the "Code Block" node in Step 9, connect the "IN[3]" interface to the "(0..2) / 3" interface of the "Code Block" node in Step 9, connect the "IN[4]" interface to the "theoryPts" interface of the "CodeBlock" node in Step 9, connect the "IN[5]" interface to the "coneAngle" interface of the "Code Block" node in Step 9, connect the "IN[6]" interface to the "d" interface of the "Code Block" node in Step 9, connect the "IN[7]" interface to the "coneHeight" interface of the "Code Block" node in Step 9, and connect the "IN[8]" interface to the "Code Block" node in Step 9. Connect the "(0..15) / num" interface of the "Block" node, connect the "IN[9]" interface to the "coneRadius" interface of the "Code Block" node in step 9, and connect the "IN
[10] " interface to the "createNum" interface of the "Code Block" node in step 9, such as Figure 11 As shown;
[0130] Step 11: Edit the "Python Script" node from Step 10 and enter the code as follows: Figures 12-17 ;
[0131] Step 12: Create a new “Code Block” node and enter “a[0]”. Create a new “AdaptiveComponent.ByPoints” node (this node can place the family in space according to the points in the adaptive family; here it is “Adaptive Segment Family - Simplified Version”, which contains three points for generating the positioning plane). Connect its “points” interface to the “a[0]” interface. Connect the “familyType” interface to the “Adaptive Segment Family” in Step 8, such as... Figure 18 As shown;
[0132] Step 13: Click the "Run" button to automatically lay out the tunnel segments. Due to the excessive length of the line, only the initial section is captured. The effect is as follows. Figure 19 .
[0133] The above-described specific embodiments are merely preferred embodiments of the present invention and are not intended to limit the scope of protection of the present invention. Various modifications, substitutions, and improvements made by those skilled in the art to the technical solutions of the present invention based on the provided textual description and drawings, without departing from the design concept and spirit of the present invention, should all fall within the scope of protection of the present invention. The scope of protection of the present invention is determined by the claims.
Claims
1. A tunnel segment layout method based on Revit and Dynamo, characterized in that, Includes the following steps: Step 1: Based on the dimensional data of the tunnel design drawings, create a tunnel segment family in Revit. Select the adaptive family template and create adaptive points in the segment model in a counter-clockwise direction to determine the positioning plane. Then, create the annular segments of the tunnel cross-section through stretching and shearing operations; where: When creating a tunnel segment family, the segment family includes not only standard blocks, but also capping blocks and adjacent blocks. Each segment block is modeled according to actual engineering requirements. The specific steps are as follows: The design of the capping block adapts to the curvature changes at the top of the tunnel and is designed with an asymmetrical shape to accommodate different assembly angles; Adjacent blocks are designed to connect with standard blocks, and different geometric parameters are defined to ensure seamless connection between adjacent blocks and standard blocks; The geometric parameters of the tunnel segments are set according to the actual tunnel cross-section dimensions and design requirements, and are parametrically controlled in Dynamo for subsequent automatic adjustment and optimization. Step 2: Import the 3D tunnel design route in CAD format into the Revit project file as a reference path for segment layout; Step 3: Open Dynamo in Revit and create a new script file. Use the "Select Model Element" node to import the 3D design route from Step 2 into Dynamo, and use the "Element.Geometry" node to extract the geometric information of the route to obtain the specific location and direction data of the tunnel path. Step 4: Read the length of the designed route through the "Curve.Length" node, and use the code node and corresponding mathematical functions to calculate the total number of tunnel segments and the interval points of each segment, ensuring that the position and orientation of the segments match the designed route; where: The calculation of the segment positioning center is dynamically adjusted based on the curvature of the tunnel curve and the extension direction of the tunnel axis. Specifically: By reading the curvature changes of the design route, conditional judgment logic is set in Dynamo. When the curvature reaches a certain predetermined value, the arrangement interval and angle between the segments are automatically adjusted to ensure that the segments can fit closely to the curve. For different radii of curvature, the arrangement density of the segments is dynamically adjusted to reduce the assembly error between segments, and the rotation angle and spacing of the segments are automatically adjusted through the Dynamo script; Step 5: Based on the calculated interval points and the number of segments, use the "Curve.PointAtSegmentLength" node to determine the positioning center of the segment, and use the "Python Script" node to iteratively calculate the positioning plane and rotation angle of the segment to ensure that the segments are spliced together. Step 6: Using the "AdaptiveComponent.ByPoints" node, the tunnel segments are automatically generated and arranged using Dynamo scripts. The adaptive points are matched with the calculated positioning plane and rotation angle to achieve 3D modeling. Step 7: Click the run button of the Dynamo script to automatically complete the segment layout. Check whether the final layout meets the design requirements. If there is a deviation, it can be optimized by adjusting the Dynamo script parameters.
2. The tunnel segment layout method based on Revit and Dynamo according to claim 1, characterized in that, The Python script in step 5 implements the modeling of complex tunnel structures, as detailed below: For bifurcated tunnels, by identifying the bifurcation points in the tunnel route, the Python script automatically generates segment layout schemes for different paths and achieves seamless splicing of multiple paths. In areas where the tunnel cross-section changes, the script will automatically adjust the shape and size of the segments according to preset geometric parameters to adapt to the changing tunnel cross-section. For complex curves, the script will automatically optimize the arrangement direction and angle of the segments based on the curvature and spiral characteristics of the path to minimize assembly errors during construction.
3. The tunnel segment layout method based on Revit and Dynamo according to claim 2, characterized in that, The "AdaptiveComponent.ByPoints" node in step 6 works in conjunction with multiple Revit functional modules to further optimize the layout of tunnel segments. Specifically, it is implemented as follows: By combining Revit's "view filter" function, the already arranged segments can be automatically checked and marked, highlighting areas with assembly errors or layout abnormalities for further manual verification and correction. By using Revit's "Construction Simulation" module, the existing segment model can be combined with the construction schedule to generate construction simulation animations, identify potential construction problems in advance, and optimize the construction plan. By linking Dynamo scripts with Revit's "Material Assignment" function, appropriate materials are automatically assigned to different types of segments. This allows for clear differentiation of segment types and material attributes during rendering and visualization, thereby improving the accuracy of design presentations and communication efficiency.
4. The tunnel segment layout method based on Revit and Dynamo according to claim 3, characterized in that, In step 6, the Dynamo script can be combined with Autodesk Revit's "collision detection" function to perform automated collision detection analysis after the segment layout is completed. The specific implementation is as follows: The Dynamo script is used to perform collision detection between the deployed tunnel segments and other structures inside the tunnel to identify potential conflict points. The collision detection results are fed back to the Dynamo script in the form of data, which automatically triggers the adjustment algorithm to optimize the position and angle of the tunnel segments in order to avoid collision problems in actual construction. If a serious collision problem is detected, the system will generate an alarm and output a detailed detection report for designers to refer to and correct.
5. The tunnel segment layout method based on Revit and Dynamo according to claim 4, characterized in that, In steps 5 and 6, the Dynamo script can automatically generate the segment processing data and construction guidance documents, as specifically implemented as follows: The segment layout model generated by Dynamo script is automatically exported as a standard-compliant processing data file, which can be directly used in the production process. Based on the construction schedule, phased construction guidance documents are generated, listing the required number, type, installation location, and angle of tunnel segments for each construction step; The generated construction guidance documents can be exported in multiple formats, making them convenient for on-site construction teams to use and refer to.
6. The tunnel segment layout method based on Revit and Dynamo according to claim 5, characterized in that, In the calculation process of step 4, the impact of temperature and humidity changes inside the tunnel on the segment material is considered, and the specific implementation is as follows: Introduce temperature and humidity parameter models into the Dynamo script, and automatically adjust the size and installation gap of the segments based on the environmental data measured on site to adapt to material changes caused by thermal expansion and contraction. By parametric calculations using material models, the deformation trend of tunnel segments under different temperature and humidity conditions can be predicted, allowing for early design optimization and ensuring the long-term stability of the tunnel structure. The generated segment models and layout schemes include material durability analysis reports to assist in design decisions and material selection.
7. The tunnel segment layout method based on Revit and Dynamo according to claim 4, characterized in that, The Dynamo script in step 3 can be shared with multiple design teams through cloud collaboration features and supports real-time modification and synchronous updates, as specifically implemented below: By using Dynamo's cloud collaboration module, the design team can simultaneously access and edit the same Dynamo script, and all changes are synchronized to all participants in real time. Version control automatically saves historical versions of the script, allowing designers to roll back to previous versions at any time, ensuring the traceability of the design process. The cloud collaboration feature supports design teams in multiple regions, automatically optimizing data synchronization speed and bandwidth allocation based on the team's time zone and network conditions, thereby improving collaborative design efficiency.
8. The tunnel segment layout method based on Revit and Dynamo according to claim 7, characterized in that, The Dynamo script can combine machine learning algorithms to continuously optimize the tunnel segment layout scheme, specifically as follows: By inputting successful experiences and failure cases of segment layout in historical projects into a machine learning model, an algorithm model that can predict the best layout scheme is trained. During the deployment of new projects, Dynamo scripts automatically call the trained model to predict and generate optimized segment layout schemes based on tunnel design data. By leveraging the model's self-learning capabilities, new project data can be continuously accumulated, the accuracy of the algorithm can be optimized, and the level of intelligence in the layout of tunnel segments in future projects can be improved.
Citation Information
Patent Citations
Parameterized TBM shield tunnel model establishing method
CN112906106A
BIM-based shield segment parameterized drawing generation method and system
CN113408042A