Commit Graph

19980 Commits

Author SHA1 Message Date
Andrej730 668b63a323 shape_builder - clean up redundant default values from doc-strings 2026-01-16 17:16:28 +05:00
Andrej730 dbc0cca36e ifcsverchok - experimenting with shape builder nodes 2026-01-16 17:16:28 +05:00
Andrej730 009652f97d ifcsverchok - fix by query node 2026-01-16 17:16:28 +05:00
Andrej730 c77c4ce968 model.ui - more specific typing from props 2026-01-16 17:16:28 +05:00
Andrej730 a0b81e333e black . 2026-01-16 17:16:25 +05:00
Andrej730 dfc91e6639 ifcopenshell-python - clean up unused imports 2026-01-16 17:16:24 +05:00
Dion Moult 233ad63bca Remove document menu for UI consistency
Although it is a very cool trick, I feel this essentially duplicates the
UI in two spots, and is an outlier in UX. I'd prefer for all IFC data
and relationships to be in one location only (the panels). I think there
are a better unified solutions (e.g. favourite bookmark panels) for
quick access for things like this.
bonsai-0.8.5-alpha2601160912
2026-01-16 20:11:43 +11:00
Dion Moult 242f1aab35 Fix #7563. Regression in normalising document URIs. bonsai-0.8.5-alpha2601152326 2026-01-16 10:26:23 +11:00
Ryan Schultz d79524b087 fix #7559: DirectionSense works again. bonsai-0.8.5-alpha2601152022 bonsai-0.8.5-alpha2601152021 2026-01-15 14:21:39 -06:00
Dion Moult 8060c790ed Black bonsai-0.8.5-alpha2601151100 bonsai-0.8.5-alpha2601151101 2026-01-15 22:00:51 +11:00
Dion Moult 47a2c1d21a Refactor panel visibility to not use any helpers, operators, and shift config UI into add-on settings
To be consistent with all other settings, I've moved the visibility
config UI from inline into the add-on settings. This restores the
previous tab layout and no longer needs the "settings" icons to be
there. This also removes the need for a "enable UI config" checkbox.

Most of the code previously had dedicated operators to toggle booleans.
This has been removed. This new approach also means helpers aren't
needed.
2026-01-15 21:59:53 +11:00
Christoph Mellüh ed81a0a4b3 update api to V5 (#7409) 2026-01-15 20:52:06 +11:00
Dion Moult 26fb6ebd3c Refactor tab visibility to use data cache
Previously calculation of visibility was done on every draw (3x 10tabs x
10 collection items). The data class is intended to calculate UI data
once only which is more efficient. This also removes all helper calls
from the UI.
bonsai-0.8.5-alpha2601150031 bonsai-0.8.5-alpha2601150030
2026-01-15 11:30:28 +11:00
Dion Moult bb50be389e Refactor should_show_panel into tool.Blender (avoid helper.py) and merge into is_tab
This moves the logic from ui.py into tool.Blender. In general, helper.py
is a bit generic (and historic) and we should use tool instead.
bonsai-0.8.5-alpha2601142215
2026-01-15 09:15:13 +11:00
Richard Brice df7318973d Adds support for IfcOpenCrossProfileDef and branching with IfcSectionedSurface 2026-01-14 13:28:07 -08:00
Ryan Schultz 46a6356f93 update the name of the blender collection, as well, when updating the name of the spatial container. bonsai-0.8.5-alpha2601131834 2026-01-13 12:33:54 -06:00
Ryan Schultz 9adbd47181 feat: auto-assign containers to root aggregates and organize parts in outliner
When assigning a container to an aggregated element, automatically promote
the operation to the root aggregate and move all nested parts to the
container's collection in the Blender outliner.

Changes:
- AssignContainer now traverses the aggregate hierarchy to find the root
  aggregate when a user selects any nested part
- All parts and sub-aggregates are moved to the container's collection in
  the outliner while preserving IFC aggregate relationships
- Parts remain aggregated in IFC (not directly contained), only their
  Blender collection membership changes
- RefreshLinkedAggregate now also moves all parts to the correct container
  collection when restoring original data

This provides a more intuitive UX - users can select any part and the entire
assembly moves together, properly organized under the spatial container.

Fixes the previous behavior where:
- Aggregated elements were skipped with a warning
- Parts weren't organized under the container in the outliner
- Aggregate nesting was broken after container assignment
bonsai-0.8.5-alpha2601131746 bonsai-0.8.5-alpha2601131745
2026-01-13 11:45:34 -06:00
Ryan Schultz 249e68f163 fix to https://github.com/IfcOpenShell/IfcOpenShell/commit/7f87f1fb89fb001320223a4d85e6267f342bf13c: have rotation around the object's origin, not the world origin bonsai-0.8.5-alpha2601130137 2026-01-12 19:37:25 -06:00
Dion Moult 3c8ab26274 Do not scale georef WCS decorator if it is <1km (i.e. small site definition)
Previously it was scaled which misled users into thinking the point was
in the wrong location.
bonsai-0.8.5-alpha2601122230
2026-01-13 09:30:31 +11:00
Andrej730 18a25ffb0e Remove redundant label in project info UI bonsai-0.8.5-alpha2601121320 2026-01-12 18:20:11 +05:00
Andrej730 cc341b5ffd Remove debugging print statements 2026-01-12 18:20:11 +05:00
Andrej730 c8ac61a9d0 CI - bump Blender we use for testing to 5.0 2026-01-12 18:20:11 +05:00
Andrej730 7d49113407 typing 2026-01-12 18:20:11 +05:00
Andrej730 153de70a71 black . 2026-01-12 18:20:10 +05:00
falken10vdl 1f845569a5 Merge pull request #7466 from DrInfiniteExplorer/vscode-debug-integration
vscode config for Bonsai debugging
bonsai-0.8.5-alpha2601121123
2026-01-12 12:23:23 +01:00
Pierre LeMoine d7ad0a352e vscode config for Bonsai debugging 2026-01-12 07:30:02 +01:00
Ryan Schultz d29cecab30 Fix aggregate duplication to include parts and preserve hierarchy (#7550)
- Auto-include all parts when duplicating aggregates
- Preserve nested aggregate relationships during duplication
- Select all duplicated objects for immediate moving
bonsai-0.8.5-alpha2601120236 bonsai-0.8.5-alpha2601120235
2026-01-11 20:35:32 -06:00
Ryan Schultz 7f87f1fb89 fix #7537 - Layer thickness correct when slab is rotated and few other features...
- Add dual-rotation support for AXIS3 slabs (IFC angle + object rotation)
- Fix profile editing to display horizontal projection for tilted slabs
- Fix AXIS2 layer slicing to use local extrusion direction for walls
- Fix ChangeExtrusionDepth to refresh geometry after depth changes
- Remove rotation lock on slabs to allow free rotation
- Fix undefined variable bug in add_slab_representation.py
bonsai-0.8.5-alpha2601120043
2026-01-11 18:43:07 -06:00
Ryan Schultz 15bbdc8085 Fix #7539: preserve nested aggregate structure when refreshing linked aggregates bonsai-0.8.5-alpha2601101536 bonsai-0.8.5-alpha2601101537 2026-01-10 09:36:36 -06:00
falken10vdl c2b72440a2 Use helper function for search suggestions in literal property drawing (#7547) bonsai-0.8.5-alpha2601101431 2026-01-10 08:30:43 -06:00
falken10vdl 8205408a66 Add filter_mode property to BIMFacet for selection management (#7548) bonsai-0.8.5-alpha2601101424 2026-01-10 08:24:04 -06:00
falken10vdl b78db3cae0 Merge pull request #6825 from falken10vdl/UI_documents_tree
UI documents tree
bonsai-0.8.5-alpha2601101044
2026-01-10 11:43:42 +01:00
falken10vdl 81fdf63bd0 adapted to get pytest -p no:pytest-blender test/core/test_document.py working. Black formating 2026-01-10 10:44:51 +01:00
falken10vdl 454ed2c5a1 updated to get make test-bim MODULE=document working 2026-01-10 10:44:51 +01:00
falken10vdl df6592c7b9 updated to get make test-tool MODULE=document working 2026-01-10 10:44:51 +01:00
falken10vdl e4ba633d94 cleanup nomenclature and some redundant code 2026-01-10 10:44:51 +01:00
falken10vdl 6f400c8e44 updates based on core developer's feedback 2026-01-10 10:44:51 +01:00
falken10 128fe66837 cleanup and formatting 2026-01-10 10:44:51 +01:00
falken10 9c8c40c0ff nicer ui 2026-01-10 10:44:51 +01:00
falken10 ca8eb9b358 misc panel working 2026-01-10 10:44:51 +01:00
falken10 b6cfd165c2 updates based on developers feedback 2026-01-10 10:44:51 +01:00
falken10 aa8c146f9d Refactoring based on developer's feedback 2026-01-10 10:44:51 +01:00
falken10 d2adfc8c5d updated document ui 2026-01-10 10:44:51 +01:00
falken10 5ea66730d4 Implemented tree like structure for documents 2026-01-10 10:44:51 +01:00
Bruno Postle 0c3153ab7f Docs, link fedora Bonsai/IfcOpenShell packages bonsai-0.8.5-alpha2601092321 2026-01-09 23:19:39 +00:00
Ryan Schultz a460e29473 retain current selection in bim.select_similar_type bonsai-0.8.5-alpha2601081541 2026-01-08 09:41:29 -06:00
Ryan Schultz e9eca5e3f2 If feet is negative, inches should also be negative (subtractive) bonsai-0.8.5-alpha2601071508 2026-01-07 09:08:12 -06:00
falken10vdl c848462905 Merge pull request #7536 from falken10vdl/per-file-save-metadata
Add Ifc Document information element to decide if blend metadata info should be used in this project file
bonsai-0.8.5-alpha2601071447
2026-01-07 15:46:42 +01:00
falken10vdl 321878e1bb Add Ifc Document information element to decide if blend metadata info should be used in this project file 2026-01-06 22:14:08 +01:00
Ryan Schultz 831c3190cc Fix #7531: Add BBIM_MaterialLayer pset for custom offset persistence and UI improvements
This commit introduces a new BBIM_MaterialLayer property set to persist custom
material layer offset settings in IFC files, along with significant UI improvements
for material editing.

Features Added:
- New BBIM_MaterialLayer pset with properties:
  - UseCustomOffset (bool): Toggle for custom offset
  - CustomOffset (float): Offset value in SI units
  - CustomWallReference (str): Wall reference point (EXTERIOR/CENTER/INTERIOR)
  - CustomSlabReference (str): Slab reference point (TOP/MIDDLE/BOTTOM)

Tool Updates (tool.py):
- Added save_custom_offset_to_pset(): Saves custom offset from UI props to pset
- Added load_custom_offset_from_pset(): Loads custom offset from pset to UI props
- Updated get_material_layer_custom_offset(): Reads from pset when props unavailable

Operator Updates (operator.py):
- EnableEditingAssignedMaterial: Loads custom offset from pset on edit start
- EditAssignedMaterial: Saves custom offset to pset on edit completion
- Fixed KeyError for CardinalPoint in material constituent sets

Data Layer (data.py):
- Added bbim_material_layer_pset() to ObjectMaterialData for caching pset data
- Improves performance by avoiding repeated IFC queries during UI drawing

UI Improvements (ui.py):
- Added custom offset display in both editable and read-only material UIs
- Added OffsetFromReferenceLine display in read-only UI
- Implemented dynamic headers based on material type (Layers/Profiles/Constituents)
- Improved visual hierarchy with consistent boxing and indentation
- Aligned editable and read-only UI layouts for consistency
- Fixed layer set boundary labels (Top/Bottom for slabs, Interior/Exterior for walls)
- Reorganized "Add Material" section into material layers box

Bug Fixes:
- Fixed format_distance() to correctly handle negative imperial values
  (e.g., -0.5' now displays as "-0' - 6"" instead of "0' - -6"")

This allows users to set custom material layer offsets that persist in the IFC
file and remain available across sessions, with clear visual feedback in both
editing and viewing modes.
bonsai-0.8.5-alpha2601041916
2026-01-04 13:15:39 -06:00