Repository navigation
Design checks
extensions/design/ checks building members and foundations by the US design codes. Steel beams, columns and connections follow AISC 360-16 (ASD). Sawn lumber and bolts follow the NDS 2018. Concrete walls, footings and anchors follow ACI 318-19. Wind pressure follows ASCE/SEI 7.
Continuous beams use the solver of Frame analysis. The module also writes the values and the TikZ drawing bodies of a LaTeX calculation package. It builds staged 3D views of a structure, colored by demand-to-capacity ratio.
The checks take and return unit-typed quantities. Inside, they work in the units of the code: pounds, kips, inches and feet.
| Module | What it gives |
|---|---|
quantities |
POUND64, PSI, KIP_INCH, KIP_FOOT, POUND_FOOT, SQUARE_INCH, CUBIC_INCH, INCH_TO_THE_FOURTH, MILE_PER_HOUR and POUND_PER_INCH. extensions.geotech.quantities gives PSF, PLF, KIP, KSI and PCF
|
kinds |
WindExposure (EXPOSURE_B, EXPOSURE_C, EXPOSURE_D) and AnchorKind (CAST_IN, POST_INSTALLED) |
steel |
WideFlange, w_shapes and w_shape (W8 to W12), flexural_strength (F2, F3), shear_strength (G2.1), web_local_yielding (J10.2), web_crippling (J10.3), Pipe and standard_pipes, compression_strength (E3), concrete_bearing (J8), WideFlange.strong_radius, combined_ratio (H1.1), fillet_weld_strength (J2.4), bolt_shear_strength (J3.6), base_plate_thickness (Design Guide 1) and the ASD safety factors |
wood |
Lumber, southern_pine_no2, dressed_depth, joist_line_load, simple_span_check, bearing_stress_ratio, dowel_bearing_strength and bolt_lateral_value (the yield limit equations) |
concrete |
propped_wall_effects, cantilever_wall_effects, stress_block_factor, tension_strain, one_way_shear_strength, two_way_shear_stress, plain_flexural_strength, minimum_wall_steel, wall_in_plane_shear_strength, plain_bearing_strength, plain_two_way_shear_strength, square_footing_side and strip_footing_width
|
anchors |
One anchor by ACI 318-19 chapter 17: steel_tension_strength, steel_shear_strength, breakout_tension_strength, pullout_strength, bond_tension_strength, pryout_shear_strength, concrete_tension_phi and the steel and pryout factors |
wind |
exposure_coefficient (Kz), elevation_factor (Ke), velocity_pressure (qz), leeward_wall_coefficient and wall_net_pressure
|
beams |
continuous_beam and patterned_beam
|
latex |
TexValues, group_thousands, fixed and feet_inches
|
tikz |
TikzBody, the commands of a drawing in model units |
assembly |
Part, Assembly, add_assembly, ratio_color, draw_ratio_legend and orbit_eye
|
Each check returns the nominal strength, or the stresses and their ratios. Divide a nominal strength by the safety factor that the module exports.
from extensions.design.steel import flexural_strength, w_shape
from extensions.design.quantities import KIP_FOOT
from extensions.geotech.quantities import KSI
from units.si import INCH64, Length64, Pressure64
def main() raises:
var f = flexural_strength(
w_shape("W8x18"), Pressure64(50, KSI), Length64(16, INCH64), 1.0
)
print(f.allowable().to(KIP_FOOT)) # 42.4, as AISC Manual Table 3-2A basement wall spans from the slab at its base to the floor at its top. propped_wall_effects takes the span, the height of the soil above the bottom support, the equivalent fluid pressure and a uniform lateral surcharge. It integrates the pressure for the reactions and scans the moment along the span. Soil above the top support loads the wall only up to the span.
Give the result to flexural_resistance and shear_resistance of extensions.geotech.concrete, or to one_way_shear_strength here, with the load factor of your code.
The functions of anchors give the nominal strength of one anchor. Multiply each by its phi. Give the four edge distances of the anchor. Give 1.5 h_ef or more for a side without an edge.
- Get the steel strength with
steel_tension_strengthorsteel_shear_strength. - Get the concrete breakout with
breakout_tension_strength. Near three or four edges, the function reduces h_ef as 17.6.2.1.2 tells. - For a headed anchor, get
pullout_strength. For an adhesive anchor, getbond_tension_strengthwith the bond stresses of the product's evaluation report. - For shear, get
pryout_shear_strengthfrom the least concrete tension strength. - Use the least value. The concrete is taken as cracked, which is conservative.
continuous_beam puts one support at each end of each span and loads each span with its own uniform load. patterned_beam puts the dead load on every span and the live load on each of the 2^n patterns of spans. It keeps the worst value of each effect. The moments come from the reactions by statics, so they do not depend on the stiffness. The deflections use E I.
A drawing set and its report quote the same numbers. Collect each number once in a TexValues, write it, and \input the file in both documents. A TikzBody writes a plan or a section in model units. The sheet sets the scale with the x and y keys of its tikzpicture. The style names, such as wl and concfill, and the \dimline and \dimlinev macros come from the sheet's preamble.
Put each member in an Assembly as a Part, with its construction stage and its ratio. Call add_assembly for each frame:
- A
buildfrom 0 to the stage count shows the construction sequence. Parts of the current stage come down into place. -
by_ratiocolors each rated part withutilization_color.draw_ratio_legendpaints the scale into the frame. -
first_stageleaves out early stages, such as the ground.
orbit_eye turns the camera around the model. The y axis is up.
- The steel catalog holds the light W8, W10 and W12 shapes and three standard pipes. Add rows for other shapes.
-
flexural_strengthassumes a compact web. Every catalog W shape has one for Fy up to 65 ksi. -
southern_pine_no2holds 2-inch Southern Pine No. 2 only. Other species and grades need their ownLumber. -
anchorschecks one anchor. A group of anchors, shear breakout toward an edge and supplementary reinforcement are not covered. - The wind functions cover the main wind force resisting system of a rigid low building. Components and cladding are not covered.
- These are checks, not a design code. An engineer must choose the loads, the combinations and the limits.
Tutorials
How-to
- Install
- Run the checks
- GPU backend
- Coverage
- Measure examples
- Add a feature
- Add a scanned building
- Write documentation
Reference
- Scene graph
- Rotations
- Cameras
- Geometry
- Geometry addons
- Lofts and clipping groups
- Sculptor
- Procedural generators
- Meshes and assets
- Lines
- Points and sprites
- Helpers
- Scene objects
- Animated objects
- Raycasting
- Curves and paths
- Animation
- Skinning
- Materials
- Node materials
- TSL functions
- Lights
- Lighting addons
- Fog
- Textures
- Renderer
- Renderer hooks and material flags
- Rasterization
- GPU backend
- Render target
- Post-processing
- GPU computation
- Compute nodes
- Progressive light map
- Gaussian splats
- Voxel global illumination
- SVG renderer
- Image files
- Image decode queue
- Model files
- More model files
- Exporters
- Scene JSON
- Windowing and controls
- C ABI and hosts
- Math
- Norm consumers
- Math addons
- Units
- Coverage tool
- Commands
- Examples
- Benchmarks
- Extensions
- Shared physics
- Physics query snapshots
- Continuous collision
- Tick force restoration
- Water
- Warp drives
- Vegetation
- Village
- Streamline
- Animals
-
Buildings
- Numerics
- Building topology
- Building model
- IFC exchange
- Procedural towers
- Floor plans and interiors
- Frame analysis
- Shell analysis
- Building energy
- Construction kits
- Bearing walls
- Scanned buildings
- SOG files
- Compressed PLY files
- Scan parts
- Cleaning and orienting scans
- Walking through a scan
- Virtual scans
- Castle
- CARLA
- Femur
- Tibia
- Fibula
- Patella
- Knee
- Muscles
- Vessels
- Lymph
- Nerves
- Integument
- Leg
- Foot
- Pelvis
- Torso
- Arm
- Hand
- Head
- Genome
- Game humanoid
- Humanoid fidelity
- Mixamo animations
- Audio-aligned game faces
- Converted assets
- Mesh quality
- Garments
- Outfits and armor
- Cloth and spring bones
- Attire estimates
- Segment inertia
- Process chemistry
- Thermochemical data
- Chemical equilibrium
- Process maps
- Rates and transport
- Electrolysis and film color
- Binary solutions
- Flowsheets and routes
- Materials and coatings
- Crystals and figures
Explanation
- Software rasterizer
- Scene graph as an array
- Linear color
- Normals are not colors
- Perspective correction
- Fixed-point coverage
- Per-fragment shading
- Mipmaps
- Sorted transparency
- Types and checks
- Render hooks as a trait
- Shared CPU and GPU code
- Bands and threads
- PNG structure
- Extensions beside the port
- Process temperatures
- Scans as building models
- CUDA teardown hang
- Mojo compiler hang