Plate Girder Bridge¶
In this tutorial, we will define the geometric and analytical models of a steel plate girder bridge. This tutorial is made using imperial units. Here´s an overview of the workflow:
Define the Bridge Alignment¶
The bridge alignment can be imported to Rhino or Grasshopper from an external file (e.g. from a SOFiSTiK database using the ReadAxisCdb component) or can be simple drawn in Rhino. To use a Rhino curve, add a Curve component to the Grasshopper canvas, right click on it and select “Set one Curve”, then pick the Rhino curve.
Note: Later on we will define stations along the bridge alignment. Use the Reparameterize Curve component to make sure stations are always at the correct location (in case the original curve has been stretched) or if you would like to map station values to a projected plane (e.g. the x-y plane).
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.
Reading a Section from a JSON File¶
The deck section used in this example has beed defined using JSON format. The file called “Deck Slab - 5 Girders [in].json” is included in the project files. Bring it into the project by using the ReadSectionJSON component.
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.
Use the Composite Section component to assemble the full superstructure section. The concrete deck is the master section and the steel plate girders are the sub-sections. To attach the girders at the right locations, a list of master section reference points G1, G2, G3 and G4 must be provided. SOFiSTiK Grasshopper components support the use of “wild cards”. As an example, it´s possible to utilize the input G* to refer to all cross-section points starting with the letter G.
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.
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.
The Axis Definition component collects the road alignment, the composite section and the placements, 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.
Superstructure Analytical Model¶
Deck Structural Areas¶
In the previous tutorial, The Interpolate Curve component was used to define the analytical curves of the superstructure spine model. Interpolate Surface works similarly but goes one step further. It uses curves of interpolated points to create surfaces between placements. The component organizes the areas between any 2 placements (transversally) in lists, and the groups of areas (longitudinally) in separate tree branches. The Interpolate Surface component can be used directly as input for the Structural Area component.
Plate Girder Structural Lines (Flanges) and Structural Areas (Webs)¶
In this example, the analytical model of the plate girders is defined using structural lines for the flanges and structural areas for the webs. This is achieved by using Interpolate Curve components to define top and bottom flanges, then Ruled Surface to define the webs.
Use the Geometric Axis component to define secondary axes at the location of the girders. These will be needed for force integration using Design Elements later down the road.
Note: The FE-model of this bridge will contain both beam and shell elements. In SOFiSTiK, you can use Design Elements to get integrated (non-composite and composite) beam-forces, which are typically required by design standards.
Superstructure Support Conditions¶
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 (Structural Points). To define all support conditions in one step, you can use the Entwine component. Input data will be organzed in 4 sepparate tree branches. Remember: SOFiSTiK components organize data belonging to each placement in lists, and separates data between the placements in tree branches.
Additional Superstructure Components¶
Cross frames and stiffeners have been defined using Clusters. Clusters summarize and hide part of the script. They help keep the canvas clean and organized. Also, clusters can be saved and reused on other projects.
Substructure Geometric Model¶
In this example, predefined clusters are used to define piers and abutments.
Generating a SOFiSTiK Model¶
Use the SOFiMSHC component to automatically generate the code needed to run the structural model and create a finite element model in SOFiSTiK. Use the Text File component to stream the generated data into your project folder. Save the file as “geometry.dat”.
Use the SOFiLOAD component to automatically generate the code needed to run loads in SOFiSTiK. Use the Text File component to stream the generated data into your project folder. Save the file as “loads.dat”.
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.