Skip to content

Releases: StructuralPython/papermodels

v0.22.2 - pikepdf 10.0.x range

Choose a tag to compare

@connorferster connorferster released this 19 Sep 00:22
05dda4a

Patch release.

Changes

  • Relaxed the pikepdf requirement from ==10.0.2 to >=10.0.2,<10.1. pikepdf 10.0.x patch releases can now install, and 10.1.x is still excluded.

What's Changed

  • chore: allow pikepdf 10.0.x patch releases and bump version to 0.22.2 by @connorferster in #144

Full Changelog: v0.22.1...v0.22.2

v0.22.1 - pikepdf pin

Choose a tag to compare

@connorferster connorferster released this 19 Sep 00:04
077239d

Patch release.

Fixes

  • Pinned pikepdf==10.0.2 so papermodels no longer installs with pikepdf 10.1.x.

What's Changed

Full Changelog: v0.22.0...v0.22.1

v0.22.0 - The "Joist Arrays That Just Work" Release

Choose a tag to compare

@connorferster connorferster released this 18 Sep 23:25
68f18a3

This release rebuilds how papermodels handles geometry. Intersection points now come from a single canonical node store, and the JoistArrayModel has been rebuilt on top of it. The aim is to make the frequent geometry errors of past releases go away.

⚠️ Breaking changes

  • CollectorTribModel has been removed. Use JoistArrayModel instead. The Example notebooks have been updated to import and assign JoistArrayModel.

Features

  • Canonical node store: all intersection points now refer to shared canonical nodes, instead of each element carrying its own geometry and intersection points. An STRtree finds candidate overlaps, and wall centerlines use a robust oriented bounding box. This prevents floating-point errors between elements that should touch.
  • Rebuilt JoistArrayModel: joists are laid out in "stations" along the prototype.
    • A joist that lands in a gap between supports moves to the nearest location with valid supports, or is dropped with a warning.
    • Trib areas are bands between neighbouring joists, so there are no gaps in trib area.
    • An abrupt change in span along an array gives a warning suggesting a separate joist prototype.
    • Prototypes tilted past vertical no longer get backwards arrays or cantilevers projected into the span.
  • New joist_container markup: draw a polygon around a joist prototype and give it a legend entry whose Type contains "container". Joists in the array are clipped to the container, so both cantilevers and backspans can vary along the array.
  • Dashed line types: dash patterns in PDF annotations are now read, so a dashed legend entry is its own line type and no longer gets mixed up with a solid entry of the same colour and weight. plot_annotations() draws dashed lines dashed.

Fixes

  • Joist arrays that previously dropped joists, such as the triangular array in the resi dormers test drawing, are now complete.
  • A short intermediate beam under a single joist no longer moves that joist off its bearing.
  • Point load locations on walls are now correct.

What's Changed

Full Changelog: v0.21.0...v0.22.0

v0.21.0 - The "Working" Release

Choose a tag to compare

@connorferster connorferster released this 20 Jan 07:16

This release includes numerous small fixes and quality-of-life improvements that make papermodels more reliable and give better error messages based on my experience working with it over the last few weeks.

Features

  • papermodels.scales now include scales that convert US scales to metric scales for folks that perhaps work on US drawings but do all of their analysis and calcs in SI units. There are now scales like SCALE_QUARTER_INCH_M that will read a drawing at 1/4" = 1'-0" and will convert it so that, in papermodels, you are now working in meters.
  • Added a check for duplicate tags for when you are working on a tagged PDF model and you are duplicating elements between pages and you forget to remove the original tag from the duplicated element. Now, instead of getting a networkx "cyclical graph" error, you now get friendly error that tells you which tags have been duplicated so you can now search for them in your PDF and delete the duplicate tag.
  • Added an internal filter to make sure that walls transfering out to a beam do not ALSO transfer out to a beam framing in perpendicular to the transfer beam (and thereby also touching the transferring wall element).

Fixes

  • Various fixes to bugs that could only be found from real-life use.

What's Changed

Full Changelog: v0.20.0...v0.21.0

v0.20.0 - The "Being more helpful" release

Choose a tag to compare

@connorferster connorferster released this 02 Dec 23:38

Features

  • Added various user-warnings to the code base that fire during gravity post-processing and added the ability to suppress them from GeometryGraph.from_pdf_file()

What's Changed

Full Changelog: v0.19.0...v0.20.0

v0.19.0 - The "Easier Imports" Release

Choose a tag to compare

@connorferster connorferster released this 27 Nov 23:52

Feature

  • GeometryGraph.plot_elements now features more parameters to control the plot
  • GeometryGraph now has a .omitted attribute that captures subelements that were generated but, during post-processing, causes intersection errors. These subelements are now being removed from post-processing when exceptions occur and they are being stored in .omitted for review.
  • Imports are now much more convenient off of the top level namespace:
from papermodels import GeometryGraph
from papermodels.collectors import JoistArrayModel, CollectorTribModel
from papermodels.filters import create_element_filter
from papermodels import scales # Use these pre-made scale values instead of importing Decimal, etc.

Fixes

  • Extents were being correlated across pages - fixed
  • Internally removed the function geom_ops.sort_supports. This was a big source of errors before.
  • Misc geometry fixes and error catches

What's Changed

Full Changelog: v0.18.0...v0.19.0

v0.18.0 -The "Overwriting can be convenient" release

Choose a tag to compare

@connorferster connorferster released this 24 Nov 19:49

Features

  • You can now save the tagged PDF export over the same file name as the original file with graph.export_tagged_pdf

Breaking Changes

  • GeometryGraph.from_pdf_file(..., do_not_process=False) is now GeometryGraph.from_pdf_file(..., process_gravity_framing=True) (the parameter name changed, the default value changed, but its purpose and intention stayed the same (process by default)).

What's Changed

Full Changelog: v0.17.1...v0.18.0

v0.17.1 - The "Ooops, I meant this line" release

Choose a tag to compare

@connorferster connorferster released this 13 Nov 19:15

Fixes

  • Some geometry errors resulting from a rectangular polygon support returning the centerline that is parallel with the joist instead of the one that was perpendicular.
  • Added fail safe to geom_ops.get_cantilever_segments so that joist_prototypes that do not intersect with any supports simply indicate that the intersecting region is None

What's Changed

Full Changelog: v0.17.0...v0.17.1

v0.17.0 - The Snappy Release

Choose a tag to compare

@connorferster connorferster released this 29 Oct 22:46

Breaking changes

  • The output of LoadedElement.model() no longer outputs support fixities. Fixities are outside of the scope of papermodels. The 'supports' key of the ouptut dict now looks like this:
{
    "supports": {
        [
            {"location": 0.0, "overlap_length": 0.319, "terminus": True},
            {"location": 11.609, "overlap_length": 0.324, "terminus": True},
        ]
    }
}

Features

  • In-plane elements (frame elements) that intersect with polygons are now "snapped" so that their geometry starts and ends on the project centroid of the polygon. This means that the Element.geometry is altered from the original annotation geometry and the element's .intersections_below are modified at the same time.
  • A new plotting function: GeometryGraph.plot_elements allows the designer to see trib areas and extent polygons for getting a full glance at how load is being collected over each plane of the structure. Plots features that were not available before such as plotting the generated subelements and tribs for elements created with GeometryGraph.assign_collector_behaviour
  • Cantilever tolerance has been updated so it is only an absolute tolerance.
    • NOTE: The cantilever tolerance is basically like your "throw away" pieces tolerance. For example, if there are joist elements generated that are shorter than the cantilever tolerance, they will be ignored and not added to the model. This prevents all sorts of small problems (i.e. errors) that are not really problems when it comes to the model.

Fixes

  • Many small bug fixes along the way

What's Changed

Full Changelog: v0.16.1...v0.17.0

v0.16.1 - Horizontal joists, whoda thunk they would be so fussy?

Choose a tag to compare

@connorferster connorferster released this 10 Oct 22:03
82764d6

Fixes

  • Adds a more robust procedure for creating trib areas for horizontal joist subelements with CollectorTribModel. Previously, some joists would be omitted because no "overlap region" was found between their supports because the support coordinates were being entered in the wrong order.