CivilPy
CivilPy is a Python toolkit for practicing civil engineers. It bundles unit-aware calculation tools (built on Pint), design checks from the AASHTO LRFD and AREMA specifications, geotechnical data models, hydraulics, and utilities for working with agency data sources such as ODOT TIMS and Bentley AssetWise.
CivilPy is released under the MIT License.
Installation
pip install civilpy
Optional extras pull in heavier dependencies only when you need them:
pip install "civilpy[db]" # PostgreSQL / Oracle / SSH-tunnel tools
pip install "civilpy[geo]" # folium mapping
pip install "civilpy[jupyter]" # notebook export helpers
pip install "civilpy[pdf]" # PDF/plan-sheet processing
Quick start
Most of CivilPy works with dimensioned quantities from the shared Pint unit registry:
from civilpy.general import units
from civilpy.structural.steel import SteelSection
beam = SteelSection("W36X150")
beam.weight # 150 lbf/ft, as a Pint quantity
beam.I_x # strong-axis moment of inertia (9040 in^4)
M = 150 * units("kip * ft")
sigma = (M / beam.S_x).to("ksi")
Package overview
Package |
What it covers |
|---|---|
Steel/concrete/timber design, AASHTO LRFD & AREMA checks, strut-and-tie tools, influence lines, substructure designers, MIDAS & CANDE interfaces |
|
Boring logs (DIGGS/PDF parsing), SPT corrections, shallow/deep foundations, lateral earth pressure |
|
Open-channel & pipe hydraulics, bridge scour, ODOT culvert standards |
|
Roadway geometry, horizontal/vertical curves, FHWA NBI utilities |
|
Agency-specific tools (ODOT TIMS/AssetWise, SNBI validation, plan-review checklists) |
|
Shared unit registry, photo/EXIF tools, database helpers |
API Reference:
Todo
The design notes currently sitting in the docs/ folder
(StrutAndTieSolver.md, SNBIValidationRules.md,
Rhino Design Philosophy.md) are not part of the Sphinx build; wire
them in with myst-parser or convert them to reST. The stray
ifc_file_example_1.ifc fixture should move to tests/ or res/.
License
CivilPy is distributed under the MIT License — see the LICENSE file for the full text.