Skip to main content

IS 456 RC Design Library — beams, columns & footings (flexure, shear, axial, ductile detailing, DXF export)

Project description

structural-lib-is456

IS 456 RC Beam Design Library (Python package).

Version: 0.21.3 (development preview) Status: Python tests

⚠️ Development Preview: APIs may change until v1.0. For reproducible results, pin to a release tag.

Install

pip install structural-lib-is456           # from PyPI
pip install "structural-lib-is456[dxf]"    # with DXF export support

# Or pin to a release tag
pip install "structural-lib-is456 @ git+https://github.com/Pravin-surawase/structural_engineering_lib.git@v0.21.3#subdirectory=Python"

Requires Python 3.11+. On Python 3.9–3.10, pip installs the older v0.16.x (beam-only, no column/footing).


If You Want To…

Design a Beam (IS 456 flexure + shear)

from structural_lib import design_beam_is456

result = design_beam_is456(
    units="IS456", b_mm=300, D_mm=500, d_mm=450,
    fck_nmm2=25, fy_nmm2=500,
    mu_knm=150, vu_kn=100,
)
print(f"Ast = {result.flexure.Ast_required:.0f} mm²")
print(f"Safe? {result.flexure.is_safe}")

Get Detailing (bar sizes, stirrups, cut lengths)

from structural_lib import build_detailing_input, compute_detailing

detailing_input = build_detailing_input(
    result, beam_id="B1", b_mm=300, D_mm=500, d_mm=450,
    span_mm=6000, cover_mm=30, fck_nmm2=25, fy_nmm2=500,
)
detailed = compute_detailing(detailing_input)

for beam in detailed:
    print(f"{beam.beam_id}: {len(beam.top_bars)} top, {len(beam.bottom_bars)} bottom zones")

Generate a Bar Bending Schedule (BBS)

from structural_lib import compute_bbs

bbs = compute_bbs(detailed, project_name="My Project")
print(f"Total weight: {bbs.summary.total_weight_kg:.1f} kg")
for item in bbs.items:
    print(f"  {item.bar_mark}: ø{item.diameter_mm:.0f} × {item.no_of_bars} nos")

Export DXF Drawings

from structural_lib import compute_dxf

dxf_bytes = compute_dxf(detailed)  # returns bytes — write to file
with open("beam.dxf", "wb") as f:
    f.write(dxf_bytes)

Requires the dxf extra: pip install "structural-lib-is456[dxf]"

Generate an HTML Report

from structural_lib import compute_report

html = compute_report(detailing_input, format="html")
with open("report.html", "w") as f:
    f.write(html)

Batch Design from CSV

from structural_lib.services.adapters import GenericCSVAdapter
from structural_lib import design_beam_is456

adapter = GenericCSVAdapter()
beams = adapter.parse_file("beams.csv")
results = [design_beam_is456(**beam) for beam in beams]

Run the Full Pipeline (design → detail → BBS → report)

See examples/end_to_end_workflow.py for a complete working script.

Cost-Optimize a Beam

from structural_lib import optimize_beam_cost

optimized = optimize_beam_cost(
    b_mm=300, D_mm=500, d_mm=450,
    mu_knm=150, vu_kn=100, fck_nmm2=25, fy_nmm2=500,
)

Check Multi-Case Compliance

from structural_lib import check_beam_is456

report = check_beam_is456(
    units="IS456", b_mm=230, D_mm=500, d_mm=450,
    fck_nmm2=25, fy_nmm2=500,
    cases=[{"case_id": "ULS-1", "mu_knm": 100, "vu_kn": 80}],
)
print(f"Governing case: {report.governing_case_id}")

CLI Usage

python -m structural_lib design input.csv -o results.json        # Beam design
python -m structural_lib bbs results.json -o bbs.csv             # Bar bending schedule
python -m structural_lib dxf results.json -o drawings.dxf        # DXF drawings
python -m structural_lib report results.json --format=html -o report.html  # HTML report
python -m structural_lib job job.json -o output/                 # Full job from spec
python -m structural_lib --help                                  # All options

What's Available

Category Functions Description
Beam Design design_beam_is456, design_and_detail_beam_is456, design_from_input IS 456 flexure + shear
Detailing build_detailing_input, compute_detailing, detail_beam_is456 Bar sizes, stirrups, cut lengths
BBS / Export compute_bbs, export_bbs, compute_dxf, compute_report BBS, DXF, HTML reports
Column Design design_column_axial_is456, design_short_column_uniaxial_is456, classify_column_is456 Axial, uniaxial, biaxial
Optimization optimize_beam_cost, smart_analyze_design, suggest_beam_design_improvements Cost optimization, smart analysis
Compliance check_beam_is456, check_compliance_report, check_beam_slenderness Multi-case IS 456 checks
Torsion design_torsion, calculate_equivalent_shear, calculate_torsion_shear_stress IS 456 torsion design
Serviceability check_deflection_span_depth, check_crack_width Deflection + crack width
CSV Import GenericCSVAdapter (via structural_lib.services.adapters) 40+ column mappings
ETABS Integration load_etabs_csv, create_job_from_etabs, validate_etabs_csv ETABS CSV import
3D Geometry beam_to_3d_geometry, compute_rebar_positions, compute_stirrup_positions 3D rebar visualization
Validation validate_job_spec, validate_design_results, verify_calculation Input/output validation

Full API reference: see docs/reference/api.md

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

structural_lib_is456-0.21.3.tar.gz (468.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

structural_lib_is456-0.21.3-py3-none-any.whl (449.7 kB view details)

Uploaded Python 3

File details

Details for the file structural_lib_is456-0.21.3.tar.gz.

File metadata

  • Download URL: structural_lib_is456-0.21.3.tar.gz
  • Upload date:
  • Size: 468.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for structural_lib_is456-0.21.3.tar.gz
Algorithm Hash digest
SHA256 9ccd94e7cb2eb9b228ea65901f7b62449d104eab1ea36d6c99a417791e38dfb3
MD5 7e83ed7744ce5df931972dc76b85e563
BLAKE2b-256 a48ba134bffc1ce34d04854c16efca00407a10b2a6c8eff5894f1a88548fae98

See more details on using hashes here.

Provenance

The following attestation bundles were made for structural_lib_is456-0.21.3.tar.gz:

Publisher: publish.yml on Pravin-surawase/structural_engineering_lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file structural_lib_is456-0.21.3-py3-none-any.whl.

File metadata

File hashes

Hashes for structural_lib_is456-0.21.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a57702977996e684ddcb6431fbf24c5e8e05969ddcc31b830cdbd25b9be137b1
MD5 b4e4183d0ca086799d5a61fbe3088ff2
BLAKE2b-256 479d81a6cb9bc01ffa8f9d097597e8f7997cae8b9373bc4a4014acb32350950e

See more details on using hashes here.

Provenance

The following attestation bundles were made for structural_lib_is456-0.21.3-py3-none-any.whl:

Publisher: publish.yml on Pravin-surawase/structural_engineering_lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page