Skip to content

Tags: IfcOpenShell/IfcOpenShell

Tags

bonsai-0.8.5-alpha2604052143

Toggle bonsai-0.8.5-alpha2604052143's commit message
Auto-assign aggregate on eyedropper pick

Add update callbacks to the relating_object and related_object
PointerProperties so that selecting an object via the eyedropper
in BIM_PT_aggregate immediately calls aggregate_assign_object
and closes the editing panel, removing the need to click the
checkmark button manually.

Generated with the assistance of an AI coding tool.

bonsai-0.8.5-alpha2604041849

Toggle bonsai-0.8.5-alpha2604041849's commit message
Whoops, this was supposed to be a PR...

Revert "Fix #3742: Remove coplanar boundary lines between adjacent same-material elements in Bonsai SVG drawings"

This reverts commit 1c7e134.

bonsai-0.8.5-alpha2604041843

Toggle bonsai-0.8.5-alpha2604041843's commit message
Fix #3742: Remove coplanar boundary lines between adjacent same-mater…

…ial elements in Bonsai SVG drawings

Adds `remove_coplanar_boundary_lines()` to operator.py (Bonsai uses this
path, not draw.py's main()). After `merge_linework_and_add_metadata()`
assigns material CSS classes, this post-processes the SVG to delete
projection line segments that appear in two or more adjacent, coplanar
elements with the same material and presentation style.

Key design decisions:
- Material identity: compared via sorted IFC material ID tuples from
  `get_materials()`, not CSS class names — avoids false matches between
  unrelated `material-null` elements.
- Presentation style identity: compared via IFC IfcPresentationStyle IDs
  from `StyledByItem` on geometry representation items — handles elements
  with no material but distinct visual styles.
- Physical adjacency: confirmed by a 3D shared-vertex test (tol=0.01 m)
  after a quick AABB guard, rejecting elements whose 2D projections
  overlap but sit at different depths.
- Coplanarity: determined by the dominant (largest-area) face normal of
  each Blender mesh object — area-weighted averages are unreliable for
  slabs whose equal top/bottom faces cancel out. Folded walls sharing an
  edge but meeting at an angle are correctly rejected (normal dot ≪ 1.0).

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

bonsai-0.8.5-alpha2604041731

Toggle bonsai-0.8.5-alpha2604041731's commit message
See #7888 - Fix snap when object changes during modal operator.

Handle cases where the snapped target is modified while a modal operator
is active (e.g., adding a door or window that alters the wall geometry).

bonsai-0.8.5-alpha2604040322

Toggle bonsai-0.8.5-alpha2604040322's commit message
Update the pyver as 3.13 is default in 5.1 now

bonsai-0.8.5-alpha2604040256

Toggle bonsai-0.8.5-alpha2604040256's commit message
Fix the ci-bonsai-daily blender url

bonsai-0.8.5-alpha2604032319

Toggle bonsai-0.8.5-alpha2604032319's commit message
Merge branch 'ifcgit-features' into v0.8.0

bonsai-0.8.5-alpha2604030923

Toggle bonsai-0.8.5-alpha2604030923's commit message
Provider selection as tabs

bonsai-0.8.5-alpha2604030224

Toggle bonsai-0.8.5-alpha2604030224's commit message
Fix TypeError in ray_cast_by_proximity_2d degenerate edge

A degenerate edge (zero-length segment) caused an early `return`
of a tuple instead of continuing the loop, resulting in a
TypeError when snap.py iterated the result and tried to assign
`point["group"]` on a float.

Generated with the assistance of an AI coding tool.

bonsai-0.8.5-alpha2604020705

Toggle bonsai-0.8.5-alpha2604020705's commit message
Update Bonsai to latest ifcmerge (#7581 #3096)

This version has some functional differences:
- Structured JSON error message instead of free text (on STDOUT not STDERR)
- New --prioritise-local flag to control which side wins in merge conflicts (not used by Bonsai yet)
- IfcLocalPlacement conflicts now auto-resolve instead of failing the merge (partial solution to #6885)
- Float values are normalised when comparing entities (workaround for #7696)