Post-Tensioned Concrete Box Girder Bridge#

Introduction#

Using the gh_sofistik plugin for Grasshopper, we will define the geometric and analytical models of a post-tensioned concrete box girder bridge in 10 easy steps:

Note

Following texts and images refer to Rhino-Interface 2022-2

Project Files#

Latest version: download_blue_small post-tensioned-box-girder-bridge-2023-1.zip

Objectives#

../../../_images/gh_tut_ptcbgb_figure01.PNG

Figure 1. Part of the Grasshopper Script#

../../../_images/gh_tut_ptcbgb_figure02.PNG

Figure 2. Geometric and Analytical Bridge Models#

Define the Bridge Alignment#

In this project, the bridge axis has been defined based on horizontal and vertical alignment data using components PlanViewSegment, ElevationViewPoint and PlanViewAxis.

../../../_images/gh_tut_ptcbgb_figure03.PNG

Figure 3. GH Script: Bridge Axis#

Define the Superstructure Cross Section#

Cross sections can be used for both the geometric and the analytical models. As shown in Figure 4., there are different ways to define cross sections. For example, they can be imported from a SOFiSTiK database with the ReadSectionCdb component or they can be imported from a library of predefined sections using the ReadSectionLibrary component. You can also create an arbitrary section by simply drawing it in Rhino using the SectionFromBrep component.

../../../_images/gh_tut_ptcbgb_figure04.PNG

Figure 4. gh_sofistik Section Components#

Reading a Section from a JSON File#

The parametric box girder section used in this example has beed defined using the JSON file format (Section Definition In Json Format). The file called “Single-Cell Box Girder [mm].json” is included in the project files. Bring it into the project by using the ReadSectionJSON component.

../../../_images/gh_tut_ptcbgb_figure05.PNG

Figure 5. GH Script: Cross Section Definition#

Use the Modify Section component to change any of the cross section dimensions. The Section Attributes component adds important cross section properties needed for the analytical model, like the section id, section name, and material number. The section can be visualized in Rhino using View Section.

../../../_images/gh_tut_ptcbgb_figure06.PNG

Figure 6. GH Script: Cross Section#

../../../_images/gh_tut_ptcbgb_figure07.PNG

Figure 7. Cross Section Visualization in Rhino#

Axis Placements#

The Axis Placement component defines important planes or stations along the bridge alignment. In SOFiSTiK, these stations are called “Placements”. Placements of Type “S” indicate the location of supports. This information is used by the program to define the span-layout of the bridge.

Note: Later in the workflow, other SOFiSTiK components will require the input of “stations”. They can be provided as numerical station values, station names or span-stations. In the next chapter, tendon offset values are defined at certain span-stations. As an example, a station at 40% of span 1 can be refered using a span-station value of 1.4.

Placements can be rotated around the bridge alignment’s local x-axis, resulting in a rotation of the superstructure or superelevation. Similarly, placements can be rotated around the alignment’s local z-axis, resulting in a skew. If the alignment has a vertical inclination, users can specify whether placements should remain vertical or perpendicual to the bridge axis.

../../../_images/gh_tut_ptcbgb_figure08.PNG

Figure 8. GH Script: Axis Placements#

Axis Variables#

Axis variables are cross section parameters that change along the bridge axis, for example the superstructure depth. Using the Axis Variable Distribution by Points component, it’s possible to refer to a cross section parameter, and assign values to it at given stations. The transition at any given point can be polygonal (linear interpolation) or smooth (spline).

Station Types#

By default, station values will be interpolated linearly. The following station types are available:

  • “#”: linear interpolation of variable at this station

  • “-”: a spline with a slope according to corresponding tangent is applied left of specified station

  • “+”: a spline with a slope according to corresponding tangent is applied right of specified station

  • “*”: a spline with a slope according to corresponding tangent is applied on both sides of specified station

  • “/”: a spline is applied which runs through the value at specified station and whose tangent is calculated automatically

Tendons can be defined using this method. Cross section variables dpt1, dpt2 and dpt3 represent the vertical distance from the bottom slab to the center of gravity of the tendon ducts located in the webs. The points T1 to T6 are constrained to move along the inclined web center-lines.

../../../_images/gh_tut_ptcbgb_figure09.PNG

Figure 9. Cross Section Points#

../../../_images/gh_tut_ptcbgb_figure10.PNG

Figure 10. Axis Variable dpt2#

In this example, offsets and station values are defined using a spreadsheet. The spreadsheet is included in the project files. The Read Spreadsheet component is used to read in values for dpt1, dpt2 and dpt3 at specific span-stations. Right click on the Read Spreadsheet component, and select “combine output with same name”. The component will organize each group of values in a separate tree branch.

Note that the values provided in the spreadsheet are being multiplied with the cross section depth. If the cross section depth changes, so will the tendons.

../../../_images/gh_tut_ptcbgb_figure11.PNG

Figure 11. GH Script: Axis Variables#

../../../_images/gh_tut_ptcbgb_figure12.PNG

Figure 12. Input data using a Spreadsheet#

The Axis Variable Distribution component will show a diagram of the defined variable distrubutions.

../../../_images/gh_tut_ptcbgb_figure13.PNG

Figure 13. Axis Variable Distribution#

Axis Definition#

The Axis Definition component collects the road alignment, the placements, the bridge cross section and corresponding axis variables and builds the basis for the bridge geometric and analytical models. Clicking on the component will preview the placements in Rhino. The Interpolate Solid component creates a solid volume object of the bridge superstructure. By default, the solid is split at the placements. From a data structure perspective, every segment is stored in a separate tree branch. Right clicking on the Interpolate Solid component and pressing “Bake” will bring the 3d objects of the bridge superstructure into Rhino.

../../../_images/gh_tut_ptcbgb_figure14.PNG

Figure 14. GH Script: Axis Definition and Superstructure Geometric Model#

../../../_images/gh_tut_ptcbgb_figure15.PNG

Figure 15. Baked Superstructure and Placements#

Superstructure Analytical Model#

The Interpolate Curve component uses cross section points to create curves along the bridge axis. The curves can be used to define the superstructure Structural Lines. The component organizes each curve segment in a separate tree branch.

../../../_images/gh_tut_ptcbgb_figure16.PNG

Figure 16. GH Script: Superstructure Structural Lines#

../../../_images/gh_tut_ptcbgb_figure17.PNG

Figure 17. Preview of the Superstructure Analytical Lines and Structural Properties#

Support Conditions#

Support Conditions - Abutments#

The Evaluate Section component is used to retrieve cross section points at a given station or list of stations. This can be used to define the superstructure´s analytical supports. In this example, the points S3 and S4 are connected to 3 sets of Springs, one for each local direction. Couplings are used to consider the eccentricity between the road axis and the bridge bearings.

../../../_images/gh_tut_ptcbgb_figure18.PNG

Figure 18. Preview of the Superstructure with Analytical Supports#

../../../_images/gh_tut_ptcbgb_figure19.PNG

Figure 19. GH Script: Superstructure Support Conditions at Abutments#

Support Conditions - Piers#

At the pier location, the bridge superstructure sits on elastomeric bearing pads. These are defined using Elastic Couplings. The bottom of the bearing pads is connected to the top of the piers using rigid couplings.

../../../_images/gh_tut_ptcbgb_figure20.PNG

Figure 20. GH Script: Superstructure Support Conditions#

Analytical Model - Piers#

In this project, piers with a varying cross section are used. In this case, instead of defining an axis and axis variables, three rectangular cross sections with rounded edges are needed. The parametric rectangular section used in this project is included in the project files.

../../../_images/gh_tut_ptcbgb_figure21.PNG

Figure 21. GH Script: Pier Cross Sections#

Use the View Section component to place the sections in x-y planes. Use origin points with different z-values. Use the Area component to get the center of gravity of the sections. Use a Polyline component to connect the sections. The basis for the pier analytical model is now finished.

../../../_images/gh_tut_ptcbgb_figure22.PNG

Figure 22. Pier Analytical Model#

../../../_images/gh_tut_ptcbgb_figure23.PNG

Figure 23. GH Script: Pier Analytical Model#

Use the Placement Transform and Transform component to move the piers to their final positions.

../../../_images/gh_tut_ptcbgb_figure24.PNG

Figure 24. GH Script: Placement Transform#

Tendon Definition#

In this example, the tendon geometry is defined to follow the varying cross section points T1 to T6. This is done with the Tendon Geometry component. Load-case numbers are added using the Tendon component. Construction stage numbers for tendon stressing and grouting as well as the number of tendons are provided with the Tendon Attributes component.

../../../_images/gh_tut_ptcbgb_figure25.PNG

Figure 25. GH Script: Superstructure Tendons#

../../../_images/gh_tut_ptcbgb_figure26-1.PNG
../../../_images/gh_tut_ptcbgb_figure26-2.PNG

Figure 26. Preview of the Tendons#

Generating a SOFiSTiK Model#

Cross Sections#

Use the AQUA component to automatically generate the CadInp code needed to run cross sections in SOFiSTiK. Use the Text File component to stream the generated data into your project folder. Save the file as “sections.dat”.

../../../_images/gh_tut_ptcbgb_figure27.PNG

Figure 27. GH Script: Data for SOFiSTiK - Cross Sections#

Structural Elements#

Use the SOFiMSHC component to automatically generate the code needed to run the structural model and create a finite element model in SOFiSTiK. Note that the bridge axis is needed to interpolate the varying cross sections. Use the Text File component to stream the generated data into your project folder. Save the file as “geometry.dat”.

../../../_images/gh_tut_ptcbgb_figure28.PNG

Figure 28. GH Script: Data for SOFiSTiK - Structural Elements#

Tendons#

Use the TENDON component to automatically generate the code needed to run the tendons. Use the Text File component to stream the generated data into your project folder. Save the file as “tendons.dat”. Define a prestressing system using the Prestressing System component.

../../../_images/gh_tut_ptcbgb_figure29.PNG

Figure 29. GH Script: Data for SOFiSTiK - Tendons#

Reading the Data in SSD#

In SSD, use a Text Editor Task to read in the data coming from Grasshopper using “#include”. After running the task, the updated model will appear in SSD.

../../../_images/gh_tut_ptcbgb_figure30.PNG

Figure 30. Reading the .dat Files in SSD#

../../../_images/gh_tut_ptcbgb_figure31-1.PNG
../../../_images/gh_tut_ptcbgb_figure31-2.PNG

Figure 31. Model View in System Visualization#