Sectionproperties

Latest version: v3.8.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 6

2.1.0

- Add `bulb_section()` to steel sections library, thanks to [\zmpulse]
- Add progress bar and pretty output using [rich]
- Fix logic of generating holes in CompoundGeometry using the subtraction method, thanks to [\connorferster]
- Expand testing suite and documentation, thanks to [\czarified]
- Fix bug with plastic calculation when material properties are specified
- Add warning message for disconnected geometries when trying to calculate warping properties, thanks to [\connorferster]
- Fix bug with material properties not being assigned when using the ``CompoundGeometry.from_points()`` method, thanks to [\connorferster]

**Full changelog:** [2.0.3\...2.1.0]

[\zmpulse]: https://github.com/zmpulse
[rich]: https://github.com/Textualize/rich
[\connorferster]: https://github.com/connorferster
[\czarified]: https://github.com/czarified
[2.0.3\...2.1.0]: https://github.com/robbievanleeuwen/section-properties/compare/2.0.3...2.1.0

2.0.3

- Add top reinforcement to concrete section library sections
- Add option to specify concrete circle area to ``concrete_circular_section()``
- Update concrete section library to prevent overlapping geometries
- Fix implementation of ``Geometry`` and ``CompoundGeometry`` ``.__sub__()`` method
- Add method to detect overlapping geometry errors and generate warning
- Add option to create coarse mesh (no angle or area constraints)
- Update ``rhino-shapley-interop`` and ``cad_to_shapely`` requirements

**Full changelog:** [2.0.2...2.0.3](https://github.com/robbievanleeuwen/section-properties/compare/2.0.2...2.0.3)

2.0.2

- Add circular_section_by_area() in the section library
- Add option to define reinforcement by area rather than diameter for all concrete sections in the section library
- Fix bug in super_t_girder_section() which caused type 5 to be returned in all cases
- Require matplotlib >= 3.4 for CenteredNorm

2.0.1

- Fix issue with library module

2.0.0

*sectionproperties* v2 incorporates significant changes to the pre-processor, which now uses the [Shapely](https://github.com/shapely/shapely) package to power advanced geometry creation and manipulation, and vastly improves the performance and robustness of the plastic section property algorithm. ``v2.x.x`` introduces many breaking changes from ``v1.x.x`` when creating and manipulating `Geometry`, refer to the [documentation](https://sectionproperties.readthedocs.io) for more information.

Pre-Processor:

A special mention to [connorferster](https://github.com/connorferster) for a majority of these fantastic additions!

- `sections.py` renamed to `geometry.py`
- All `Geometry` objects are defined by a shapely `Polygon`
- Addition of new geometry manipulation methods and geometry set operators
- Added .dxf import, thanks to [aegis1980](https://github.com/aegis1980)
- Added .3dm import, thanks to [normanrichardson](https://github.com/normanrichardson)
- Introduction of a `CompoundGeometry` class for geometries with multiple regions
- `Geometry` objects are assigned a `Material` property object, `CompoundGeometry` objects can contain multiple `Geometry` objects (each with their own `Material` object) enabling composite analysis
- `Geometry` and `CompoundGeometry` objects contain mesh information and meshing must be performed before initialising a `Section` object
- Improved `.offset_perimeter()` logic
- Meshing is now performed by [triangle](https://github.com/drufat/triangle), *meshpy* is no longer a dependency
- `Material` class now requires a `.density` parameter
- The section library (`sectionproperties.pre.library`) now contains the built-in *sectionproperties* geometries
- Added `triangular_section()` and `triangular_radius_section()` to the `primitive_sections` library
- Added `concrete_sections` library - contains `concrete_rectangular_section()`, `concrete_tee_section()` and `concrete_circular_section()`
- Added `bridge_section` library, thanks to [ccaprani](https://github.com/ccaprani) - contains `super_t_girder_section()` and `i_girder_section()`

Analysis:

- `cross_section.py` renamed to `section.py`
- `CrossSection` object renamed to `Section` and is now initialised with only a `Geometry` or `CompoundGeometry` object
- Added calculation of cross-section mass
- Added calculation of weighted material properties - E\_eff, G\_eff, nu\_eff
- The plastic algorithm is now performed by shapely, improving performance and robustness
- Added calculation of principal stresses, thanks to [ccaprani](https://github.com/ccaprani)
- Shape factors are no longer calculated for composite sections (irrelevant property)

Post-Processor:

- Added the ``plotting_context()`` manager, allowing easily saving files, passing kwargs to ``pyplot.subplots()`` and much more! Many thanks to [Spectre5](https://github.com/Spectre5)
- Improved contour plotting behaviour
- Added plotting of Mohr's circle of stresses for any given point, thanks to [ccaprani](https://github.com/ccaprani)
- `.display_results()` now reports E.J and E.Iw instead of G.J and G.Iw
- `.display_results()` now reports modulus weighted shear areas for composite sections

Misc.:

- Many spelling and code style fixes, thanks to [Spectre5](https://github.com/Spectre5)
- Updated documentation to include theoretical background
- Updated examples to be performed by sphinx-gallery, thanks to [normanrichardson](https://github.com/normanrichardson) and [Spectre5](https://github.com/Spectre5)

1.0.8

- All plots now return figure and axes objects
- Fix bug in frame_properties causing the program to crash under certain circumstances

Page 5 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.