Skip to main content

A structural design and representation library. Documentation can be viewed here.

Overview

limitstates is a python library that can represent and design structural elements according to code and material standards from various countries. Limit states has two main components: a set of classes that representations structural objects, e.g. A Ibeam that is 6m long made or steel; and design libraries that can act on elements and determine capacities, e.g. Canada's CSA s16 2024 steel material standard. Limitstates is currently incomplete and in public beta testing. Expect breaking changes before the first version release.

A simple script is shown below where a structural object is created and used.

import limitstates as ls
import limitstates.design.csa.s16.c24 as s16

L = 6
Fy = 350
sectionName = 'W310X118'

# Define the material, in this case a code specific steel with Fy = 350 MPa
mat = s16.MaterialSteelCsa24(Fy, sUnit='MPa')

# Define a steel section from a database, in this case a cisc 12 w section.
steelSections   = ls.getSteelSections(mat, 'csa', 'cisc_12', 'w')
section         = ls.getByName(steelSections, sectionName)

# make a member, in this case a simplely supported beam 6m long beam.
member = ls.initSimplySupportedMember(L, 'm')

# Make a element, which the design library can act on.
beam = s16.BeamColumnSteelCsa24(member, section)

# Check capacity assuming it's laterally supported using CSA's s16 standard.
Mr = s16.checkBeamMrSupported(beam) / 1000

# Make a Plot of the Section.
fig, ax = ls.plotElementSection(beam)

Installation

pip install limitstates

Documentation

https://limitstates.readthedocs.io/en/latest/

Library Organization

There are four main parts of the limitstates library: units, objects, design, analysis.

The units library is a light-weight module for unit conversions. All structural objects in the limitstates libary are dependant on the unit library for conversions. See units api reference for more detail.

The objects library contains generic classes that represent and manipulate structural elements. Members of the object library are not specific to any code, for example a W530x150 cross section has the same geometry for American and Canadian codes. See the objects api reference for more detail.

The design library contains specialized objects for a particular design code, and functions that act on them. For example, "BeamColumnSteelCsa24" is a code specific implementations of the generic "BeamColumn" class, and the function "checkBeamMrSupported", acts on it to determine a sections unsupported moment. Design libraries are divided by country and material standard. Currently, content only exists for Canadian design codes. See design api reference for more detail.

The Analysis library will contain functions that act on structural objects to analyze them. The analysis Library is a work in progress.

Development Roadmap

Version one of limitstates will release when the library can design most major elements in canadian design codes, and the core objects can handle American/EU design codes. The specific items required for version 1 are below:

Object Library

  • Create a section element for reinforced concrete
  • Improve section and material database documentation
  • Support plotting for concrete elements / sections
  • Support plotting for CLT elements / sections
  • Add section summary to section plotting
  • Add an generic design example showing how database can be used.

Design

CSA o86

  • Add Examples.
  • Add beam shear checks.

CSA S16

  • Develop multi-span beam checks.
  • Add beam shear checks.

CSA A23.3

  • Complete code checks for basic concrete beams in moment/shear.
  • Add section solvers for concrete that can determine steel required based on input capacities.
  • Complete code checks for basic concrete columns in compression / bending.
  • Complete code checks for basic concrete columns in compression / bending with slenderness effects.
  • Add examples for basic concrete checks
  • Add examples for concrete in compression

US/EU Standards

  • Ensure all basic design objects are compatible with US codes and units.

Metadata

Release files for limitstates 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for limitstates 0.3.1
File Size Uploaded Provenance Actions
limitstates-0.3.1.tar.gz 5.0 MB Without provenance Details for limitstates-0.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for limitstates 0.3.1
File Interpreter ABI Platform Actions
limitstates-0.3.1-py3-none-any.whl Python 3 none any Details for limitstates-0.3.1-py3-none-any.whl

Total release size: 5.6 MB

Release files / limitstates-0.3.1.tar.gz

Download URL limitstates-0.3.1.tar.gz
Size 5.0 MB
Tags Source
SHA-256 checksum
How to use checksums
f3e804c80198dd18e3952537af9816d3257ada2bdde7cefb2158c2f19d6340b9
BLAKE2b-256 checksum
How to use checksums
5fc89f9415cf8f6753ad30c307fcf606f876455e35de471502221d2bcdbc30b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / limitstates-0.3.1-py3-none-any.whl

Download URL limitstates-0.3.1-py3-none-any.whl
Size 566.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a4246a295d7a70fbb0f839729138c9f97b9129675095f5cc853ec48adcb80ad
BLAKE2b-256 checksum
How to use checksums
7591383a692db3d7dabe0c6ac111133ba26d8c189c585b02c8914cf480ba8e60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Security for limitstates 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page