Commit Graph

20355 Commits

Author SHA1 Message Date
ssg3d 7b4889d2ec Update IfcParse.cpp
IfcOpenshell read file, and write file without changes. This round trip introduces truncation noise. It should not hurt to increase the precision to keep this clean.
2026-02-13 10:03:05 +01:00
José Aliste 740fcf7768 Use Blender's angle snap setting in wall.py and profile.py
Replace hardcoded 5-degree angle snapping with Blender's
snap_angle_increment setting in create_wall_from_2_points()
and create_profile_from_2_points().

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bonsai-0.8.5-alpha2602120130
2026-02-11 22:29:43 -03:00
José Aliste 067e04b564 Use Blender's angle snap setting in model/polyline.py
Replace hardcoded 5-degree angle snapping with Blender's
snap_angle_increment setting in handle_lock_axis() for:
- Initial angle rounding when locking axis (A key)
- Angle rounding and increments on Shift+Wheel scroll

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 22:29:43 -03:00
José Aliste cd95f46db5 Use Blender's angle snap setting in tool/polyline.py
Replace hardcoded 5-degree angle snapping with Blender's
snap_angle_increment setting in calculate_distance_and_angle().

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 22:29:43 -03:00
José Aliste 348e48b49c Add get_angle_snap_value() helper to tool/snap.py
This function retrieves the angle snap increment from Blender's
tool_settings.snap_angle_increment property, which was added in
Blender 4.2. This allows users to configure the angle snap value
through Blender's native UI instead of using hardcoded values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 22:29:43 -03:00
Thomas Krijnen 6bb8abdc5a Fix for 4.2 schema after a46cdbb907 2026-02-11 12:11:23 +01:00
Thomas Krijnen b7a8c9b330 Fix for 4.2 schema after a46cdbb907 2026-02-11 11:43:58 +01:00
Thomas Krijnen e6780973da arrange_poly: Refactor into logical blocks; add timing 2026-02-10 14:01:10 +01:00
Thomas Krijnen c6072e416c N-Section Lofting for Non-Polygonal (Curved) Shapes #7658 2026-02-10 11:04:43 +01:00
Thomas Krijnen f5686fff26 Simplify destructor by removing null check #7650 2026-02-10 09:25:02 +01:00
Thomas Krijnen a46cdbb907 Ignore site placement also for site geometry - add queue #7654 2026-02-09 21:37:21 +01:00
Thomas Krijnen a4d5d4e19a Ignore site placement also for site geometry #7654 2026-02-09 21:21:10 +01:00
dependabot[bot] 17b88fff22 Bump aws-actions/configure-aws-credentials from 5 to 6
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 5 to 6.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v5...v6)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
bonsai-0.8.5-alpha2602080817
2026-02-08 19:17:56 +11:00
dependabot[bot] 3fe9980aa4 Bump ruff from 0.14.14 to 0.15.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.14 to 0.15.0.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.14...0.15.0)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-08 19:17:45 +11:00
Dion Moult dffa3515c0 Reimplement sort / reverse / join function to format language, simplify text annotation variables, add tests
Previously, sort, reverse list, and join functionality was implemented
as special cases in Bonsai itself. Given that it has usecases
(especially in material lists, but any sort of list applies) I've moved
this function into the IOS formatting language.

The IOS formatting language previously wasn't capable of this, but the
awesome addition by @falken10vdl made the formatting language accept
queries inline, so that means it can handle lists. I also added tests
for all the new functions and expression syntax (+-*/ operators).

I simplified the code that gets the evaluated text literal - previously
it seems to call format() multiple times.
2026-02-08 19:17:12 +11:00
Bruno Postle 1d5108f934 Fix linking for builds with -Wl,--as-needed 2026-02-06 16:51:41 +00:00
Dion Moult 02fab6eee2 Fix #7634. Support formatting signed numbers. bonsai-0.8.5-alpha2602060535 2026-02-06 16:35:04 +11:00
Dion Moult 5e9f97a0c7 Fix #5220. See #7629. See #7505. Reimplement text bulk copying using established copy attribute paradigm.
Previously, copy attribution was coupled with text editing. This meant
that you couldn't just do something like change the font or alignment
without also affecting literals. Now like most apps you can just select
bunch of text and change font size etc, using the same UI look and feel
that copying attribute has when editing attributes.

This refactor also removes the need for explicit props tracking each
possible attribute to copy, and the settings collection group. Bulk
applying is now done in core with no calls to UI.
bonsai-0.8.5-alpha2602060512
2026-02-06 16:12:14 +11:00
Richard Brice 2692341d3a Fixes typo bonsai-0.8.5-alpha2602052311 2026-02-05 15:10:33 -08:00
Richard Brice a54b21b838 Fixes documentation and adds test for expected type bonsai-0.8.5-alpha2602051238 2026-02-05 04:37:58 -08:00
Andrej730 79ef6eb55c validate_object_selection - fix missing check for active object not present in a view layer bonsai-0.8.5-alpha2602041530 bonsai-0.8.5-alpha2602041513 bonsai-0.8.5-alpha2602041459 bonsai-0.8.5-alpha2602041458 2026-02-04 19:58:26 +05:00
Andrej730 7e1843b962 dev_environment - support Blender 5.1 with Python 3.13 2026-02-04 19:58:25 +05:00
Andrej730 7411da2ae8 bim.search - fix error when unselectable objects get in the way #7635 2026-02-04 19:58:25 +05:00
Andrej730 2f586d6b9e bonsai prefs - shorten some description strings for readibility 2026-02-04 19:58:25 +05:00
Andrej730 f10d4602fc typing 2026-02-04 19:58:25 +05:00
Andrej730 50d00eba20 black . 2026-02-04 19:58:25 +05:00
Andrej730 95480a231c Move handling legacy mathutils buffer types to separate methods 2026-02-04 19:58:24 +05:00
Andrej730 a62b177b19 Bonsai - fix error drag'n'dropping ifc files in Blender 4.5.6
Example error:
```
Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'.
Traceback (most recent call last):
  File "\Blender Foundation\Blender\4.5\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 2759, in invoke
    return bpy.ops.bim.load_project(filepath=(filepath / clean_up_path(self.files[0].name)).as_posix())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\blender-4.5.6-lts.a78963ed6435\4.5\scripts\modules\bpy\ops.py", line 109, in __call__
    ret = _op_call(self.idname_py(), kw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'.
```
bonsai-0.8.5-alpha2602031422
2026-02-03 19:20:05 +05:00
Andrej730 d6b636909f bonsai Makefile - revert d745882
Since https://github.com/LBNL-ETA/pyradiance/issues/56 is resolved now.
bonsai-0.8.5-alpha2602030955
2026-02-03 14:55:14 +05:00
Andrej730 abf0d6f81a bonsai chaching - save ears for those running the tests 2026-02-03 14:55:14 +05:00
Andrej730 015431fa1f bonsai - drop unrelated pypi aud module
Turned out `aud` module we had in our makefile had nothing to do with Blender built-in `uad` module 🫣
So no need to install anything from PyPI since this module is generally available in Blender
2026-02-03 14:55:14 +05:00
Andrej730 95cc52a6f3 bonsai - revive very important chaching sound
`get_data_dir_path` doesn't have `filename` argument, therefore leading to an error
2026-02-03 14:55:14 +05:00
Dion Moult 9dff1441d7 See #7632. See #5848. Just disable indexed colour map loading for now, it's pretty rare.
Famous last words, at least the KDTree implementation is much faster.
bonsai-0.8.5-alpha2602030724
2026-02-03 18:23:39 +11:00
Dion Moult fdf23ece85 Fix #7632. See #2824. Optimise vertex matching trick for IfcIndexedColourMap. 2026-02-03 18:20:49 +11:00
Dion Moult 1445f89f19 See #7629. Partially reimplement bulk text editing.
This isn't complete yet, but it hopefully demonstrates a preferred
implementation:

 * Logic in core, not operator
 * Loop done in core, without needing to call other core functions, so
the overhead of enabling and disabling editing per object is removed. No
more Blender logic, just straight editing in IFC.
 * Reuse existing function to grab text attributes instead of
reimplementing it twice.
 * Remove dead code, there seems to be a function
apply_to_selected_objects which was completely unused and duplicated
code twice.
2026-02-03 18:09:15 +11:00
Dion Moult fe395f9024 Revert "fixes #7629: close editing mode for text objects after batch edit"
This reverts commit 950e147bde.
2026-02-03 09:13:26 +11:00
Ryan Schultz 950e147bde fixes #7629: close editing mode for text objects after batch edit
Fix issue where selected text annotations remained in editing mode after
applying changes. Now properly restores original editing state for each
selected object.
bonsai-0.8.5-alpha2602021534
2026-02-02 09:34:28 -06:00
Thomas Krijnen c385b93701 Add option --make-volume to apply BOPAlgo_MakerVolume API to non-manifold first operands in opening subtraction 2026-02-01 21:08:11 +01:00
falken10vdl 2d2e8e51aa Merge pull request #7611 from falken10vdl/connect-ports-for-cable-polyline-operator
connect the ports when creating several conected IfcFlowSegment with polyline
bonsai-0.8.5-alpha2602010821
2026-02-01 09:21:27 +01:00
falken10vdl 13f03b7487 Merge pull request #7619 from falken10vdl/MEP-Segment-tool-add-rectangular-hollow-profile
MEP-Segment-tool-add-rectangular-hollow-and-U-shape-profile
bonsai-0.8.5-alpha2602010800
2026-02-01 09:00:14 +01:00
Richard Brice c6257a4b3a Fixes errors in ifc_curve_rebar.cpp
M_PI was not defined,. Replaced it with boost::math::constants::pi<double>

Calculation of area was incorrect. Area of a circle = PI*r*r = PI*dia*dia/4
2026-01-31 05:30:36 -08:00
dependabot[bot] 9b8b05a570 Bump gersemi from 0.25.1 to 0.25.4
Bumps [gersemi](https://github.com/BlankSpruce/gersemi) from 0.25.1 to 0.25.4.
- [Release notes](https://github.com/BlankSpruce/gersemi/releases)
- [Changelog](https://github.com/BlankSpruce/gersemi/blob/master/CHANGELOG.md)
- [Commits](https://github.com/BlankSpruce/gersemi/compare/0.25.1...0.25.4)

---
updated-dependencies:
- dependency-name: gersemi
  dependency-version: 0.25.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-31 10:04:17 +11:00
Bruno Postle 611a898ada IFC Git close and reopen repo after cloning
Apparently on Windows clone can leave 'stale processes'
bonsai-0.8.5-alpha2601302008
2026-01-30 20:07:04 +00:00
Andrej730 6409f41cdf Bonsai Makefile - sort of simplify pyversion check bonsai-0.8.5-alpha2601301334 bonsai-0.8.5-alpha2601301329 bonsai-0.8.5-alpha2601301325 bonsai-0.8.5-alpha2601301318 bonsai-0.8.5-alpha2601301314 bonsai-0.8.5-alpha2601301105 2026-01-30 16:05:27 +05:00
Andrej730 35dc029898 bonsai - add a dockerfile 2026-01-30 16:05:27 +05:00
Andrej730 2f72346845 bonsai Makefile - fix platform tag to use the latest pyradiance
Apparently `pip download` is matching tag exactly, which was leading to Linux using pyradiance 0.5.3 instead of 1.1.5.
2026-01-30 16:05:27 +05:00
Andrej730 40e4894f8e ci-bonsai-daily - exclude intel mac build for Python 3.13
Since Blender dropped support for it in Blender 5.0 and Python 3.13 is only needed for Blender 5.1.
2026-01-30 16:05:27 +05:00
Andrej730 91ee2b9222 bonsai Makefile - require Blender 5.1 for Python 3.13 2026-01-30 16:05:27 +05:00
Andrej730 ac4ffd91e7 Bonsai Makefile - drop wheel renaming workaround #5743 2026-01-30 16:05:27 +05:00
Andrej730 d74588246a bonsai Makefile - workaround for pyradiance in Python 3.13
Until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved.
2026-01-30 16:05:26 +05:00