Bruno Postle
2f05d36272
shape_builder: fix half_space_solid agreement_flag docstring
2026-03-23 22:31:28 +00:00
Bruno Postle
7a4c825d9f
shape_builder: warn about mixed item types in get_representation
...
Generated with the assistance of an AI coding tool.
2026-03-23 22:30:33 +00:00
Bruno Postle
412477d0c7
shape_builder: complete docstrings and return type annotations
...
Generated with the assistance of an AI coding tool.
2026-03-23 22:30:18 +00:00
Sayan J. Das
f679c63a18
Merge pull request #7808 from theseyan/ifctester-improvements-rebased
...
IfcTester webapp improvements
2026-03-23 15:48:34 +05:30
Thomas Krijnen
e6cc0e7813
Initialize ncount_total #7834
2026-03-23 10:54:38 +01:00
Dion Moult
cf2acfc649
Add covering feature tests for ceiling and cursor variants
...
Add tests for all four covering generation operators: flooring/ceiling
from walls and flooring/ceiling from cursor. Previously only flooring
from walls was tested.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 23:25:04 +11:00
Dion Moult
60ebb99fda
Fix covering geometry not persisting to IFC, same root cause as #7055
...
The covering tool used bmesh as an intermediate and relied on
type.assign_type post-listeners (removed in 44a52863a ) to generate
the IfcExtrudedAreaSolid body. With those listeners gone, coverings
had no body representation and assign_swept_area_outer_curve crashed.
Build covering representations from scratch using ShapeBuilder, reading
the extrusion depth from the type's IfcMaterialLayerSet. Also replace
bpy.ops.bim.assign_class with bonsai.core.root.assign_class using
should_add_representation=False, consistent with the space fix.
Refactored shared coordinate-conversion and extrusion-building logic
into get_2d_vertices_from_polygon and set_extrusion_representation_from_polygon,
used by both space and covering code paths. Removed all bmesh-dependent
dead code from the spatial tool.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 23:18:59 +11:00
Dion Moult
ab96add772
Gitignore all test cache files
2026-03-22 22:26:23 +11:00
Dion Moult
d8de623086
Fix space regen not saving geometry to IFC ( #7055 )
...
Space regeneration was only updating the Blender mesh and marking the
object as edited, but the IFC representation was never synced on save.
Replace the bmesh-based approach with ShapeBuilder to write geometry
directly to IFC as an IfcExtrudedAreaSolid, then reload via
switch_representation. This applies to both new space creation and
existing space regeneration.
Also changes assign_ifcspace_class_to_obj to call
bonsai.core.root.assign_class directly with
should_add_representation=False instead of bpy.ops.bim.assign_class.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 22:14:02 +11:00
dependabot[bot]
a3f2e061fb
Bump hendrikmuhs/ccache-action from 1.2.20 to 1.2.21
...
Bumps [hendrikmuhs/ccache-action](https://github.com/hendrikmuhs/ccache-action ) from 1.2.20 to 1.2.21.
- [Release notes](https://github.com/hendrikmuhs/ccache-action/releases )
- [Commits](https://github.com/hendrikmuhs/ccache-action/compare/v1.2.20...v1.2.21 )
---
updated-dependencies:
- dependency-name: hendrikmuhs/ccache-action
dependency-version: 1.2.21
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-22 21:31:54 +11:00
dependabot[bot]
f51a4673db
Bump ruff from 0.15.6 to 0.15.7
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.6 to 0.15.7.
- [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.15.6...0.15.7 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-22 21:31:42 +11:00
Dion Moult
75b8d4f218
Remove spatial containment and aggregation when nesting
...
The nest assign_object API now removes existing spatial containment and
aggregate relationships before creating the nest, matching the behavior
documented in its docstring and consistent with aggregate.assign_object.
Fix #7248
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 15:28:47 +11:00
Dion Moult
b8136d4762
Prevent cyclic references when assigning nesting or aggregation
...
Walk up the full hierarchy via get_parent() in can_nest() and
can_aggregate() to reject assignments that would create a cycle.
Also reject self-assignment.
Fix #7248
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 15:28:47 +11:00
Dion Moult
ecde429d36
Fix crash after undo of assign_class on macOS ( #7419 )
...
After assigning an IFC class and undoing, msgbus subscriptions registered
with the old Python object wrapper survived (PERSISTENT flag) but could
not be cleared because: (1) rollback_link_element looked up objects by
their post-link name which no longer exists after undo, and (2) the
per-object clear_by_owner calls in rebuild_element_maps used new Python
wrappers that didn't match the old subscription owners.
Fix by using a dedicated stable object (object_subscription_owner) as
the msgbus owner for all per-object subscriptions, allowing
rebuild_element_maps to clear all stale subscriptions in one call
regardless of Python wrapper identity changes during undo/redo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 14:42:55 +11:00
Dion Moult
1771b34449
Fix error when entering edit mode on camera objects
...
Fixes #7313 .
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 14:08:12 +11:00
Dion Moult
41469acbc8
Fix walrus operator precedence in MaterialCreator
...
The `is not ...` was being captured by the walrus assignment due to
missing parentheses, causing the condition to always evaluate incorrectly.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-22 13:58:17 +11:00
Ryan Schultz
547b22199f
Without 'Material.Name' layers merge. ( #7700 )
2026-03-21 18:02:02 -05:00
Dion Moult
94c15213f6
Guard against emptying IfcShapeRepresentation Items
...
remove_representation_item now returns early if removing the item would
leave Items empty. edit_text_literals returns early on empty attributes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 20:10:11 +11:00
Dion Moult
fca258fb07
Fix add_boolean removing second operands from unrelated representations
...
add_boolean was removing second operands from ALL IfcShapeRepresentations
that referenced them, which could corrupt unrelated shapes and leave
representations with empty Items (bug #7803 ).
The API no longer modifies Items — callers manage this explicitly.
validate_type and Bonsai's AddBoolean operator now handle their own
item removal scoped to the correct representation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 20:10:11 +11:00
Dion Moult
bcfad8d96d
Migrate remove_deep to remove_deep2 across API modules
...
remove_deep is deprecated and can silently delete elements still in use.
remove_deep2 requires zero inverses before removal, making it safer.
Also fixes a double-removal bug in remove_grid_axis and prevents
removing the last prop template from a pset template.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-21 20:10:11 +11:00
Parag Debnath
c026dd3b6e
IsVentilated now defaults to False ( #7819 )
...
* IsVantillated now defaults to false
* IsVentilated now defaults to False
---------
Co-authored-by: Parag Debnath <paragforwork@gmail.com >
2026-03-20 23:33:40 +11:00
Dion Moult
d0f20371bd
Add feature to get parent of a particular IFC class
2026-03-20 23:10:00 +11:00
Dion Moult
7b6e82a9cc
Fix stair calculated params test to set custom_tread_lock=False
...
Tests using custom first/last tread runs were not setting
custom_tread_lock=False, so the custom values were silently ignored
since 8f7cf76d9 introduced the lock gate in the calculation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-20 23:09:15 +11:00
Andrej730
286c69429d
gitignore bonsai external_dependencies
2026-03-20 15:49:08 +05:00
dependabot[bot]
9c22dc6013
Bump socket.io-parser from 4.2.4 to 4.2.6 in /src/ifctester/webapp
...
Bumps [socket.io-parser](https://github.com/socketio/socket.io ) from 4.2.4 to 4.2.6.
- [Release notes](https://github.com/socketio/socket.io/releases )
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md )
- [Commits](https://github.com/socketio/socket.io/compare/socket.io-parser@4.2.4...socket.io-parser@4.2.6 )
---
updated-dependencies:
- dependency-name: socket.io-parser
dependency-version: 4.2.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-20 11:47:01 +01:00
Andrej730
0acbd5ffad
black .
2026-03-20 15:45:24 +05:00
Andrej730
77f0c43314
ids_doc_generator - fix invalid escape sequence SyntaxWarning
...
SyntaxWarning: invalid escape sequence '\/' at line 312.
`\/` in a plain string is treated as `/` by accident; replaced with raw string r"..." to be explicit.
2026-03-20 15:43:13 +05:00
Andrej730
c1a9708504
ci.yml - build ifctester docs
...
to ensure script doesn't break
2026-03-20 15:43:13 +05:00
Andrej730
bcf6f6197d
ifctester - move build-ids-docs target to ifctester Makefile
...
Also added a note why it lives in test folder and added it's output to gitignore.
2026-03-20 15:43:13 +05:00
Andrej730
1778656bd5
ids_doc_generator - fix Property args missed ( ed8eb75)
...
TypeError: Property.__init__() got an unexpected keyword argument 'name'
2026-03-20 15:43:12 +05:00
Andrej730
54f450129c
ids_doc_generator - fix failed_entities removed ( bd92c043)
...
AttributeError: 'Attribute' object has no attribute 'failed_entities'
2026-03-20 15:43:12 +05:00
Andrej730
9fad1569c7
ids_doc_generator - fix error due to stale cache ( f40281e97)
...
AssertionError: bool(facet(inst)) is expected
2026-03-20 15:43:12 +05:00
Andrej730
722c374fa6
ids_doc_generator - handle invalid entities coming from a test ( 1ed770d)
...
Exception: About to emit invalid example data: IfcMaterial.Name not optional
2026-03-20 15:43:12 +05:00
Andrej730
91b6c3e256
bcf v3 tests - fix wrong args, add dead code TODOs
2026-03-20 15:43:12 +05:00
Andrej730
ea3f71b4e0
rename test files to test_* prefix for pytest discovery and fix missing add_pset name arg
2026-03-20 15:43:12 +05:00
Andrej730
1a8b17e235
ifcfm cobie24 - remove unused ifc_file param from get_unit_name
2026-03-20 15:43:12 +05:00
Andrej730
2bad861122
ifcopenshell_wrapper.pyi - support varargs and kwargs in constructors
2026-03-20 15:43:11 +05:00
Andrej730
6c1fb3b01a
Remove stale mass_time_units_in_wizard references ( 5c31ae4c3)
2026-03-20 15:36:18 +05:00
Andrej730
f5be64af6c
Remove redundant __init__ from BaseLinesShader
2026-03-20 15:36:18 +05:00
Andrej730
b043dd4d04
Fix unknown-argument error in BaseLinesShader.__init__
2026-03-20 15:36:18 +05:00
Andrej730
ffd2466321
Fix missing prop name in bim.mep_add_bend
2026-03-20 15:36:17 +05:00
Andrej730
e9241fd812
Fix error in bim.fit_flow_segments
2026-03-20 15:36:17 +05:00
Andrej730
48d45451ac
Remove dead code join_walls_TZ, join_T, join_Z superseded in acdc40fb4
2026-03-20 15:36:17 +05:00
Andrej730
3b7cf6e865
Fix error displaying bsdd description after API update ( ed81a0a4b)
2026-03-20 15:36:17 +05:00
Andrej730
6038373ee5
ifcopenshell_wrapper.pyi - sync default values, validate_stub - suggest default values
2026-03-20 15:36:16 +05:00
Andrej730
3d7de87b46
ifcopenshell_wrapper.pyi - add temp MakeVolume stub
2026-03-20 15:36:16 +05:00
Andrej730
cb113ae8da
ifcopenshell_wrapper.pyi - support stubs for constructors
2026-03-20 15:36:15 +05:00
Andrej730
26280d24fe
Add ty to check for missing symbols and other simple errors
2026-03-20 15:36:14 +05:00
Andrej730
30551cb288
typing
2026-03-20 15:36:14 +05:00
Andrej730
3bf0edeca2
Fix subtle walrus operator bug in align_walls using e before assignment
2026-03-20 15:34:57 +05:00
Andrej730
3590b08e68
search/operator - remove unnecessary Ifc Operators
2026-03-20 15:34:57 +05:00
Ryan Schultz
fd902d88fb
Update selector_syntax.rst with query examples
...
Clarified usage of queries in IfcAnnotation tags with examples.
2026-03-18 18:25:03 -05:00
Sayan Jyoti Das
aa5f5120e0
delete ifcopenshell wheel
2026-03-18 14:37:24 +05:30
Sayan Jyoti Das
81986bcbfb
ifcopenshell wasm wheel should be dynamically fetched, not included in git
2026-03-18 14:35:55 +05:30
Andrej730
ec6c268cdb
Fix type assign_type core test ( 44a52863a)
2026-03-18 13:15:39 +05:00
Andrej730
64003fd5ef
Fix drawing update_drawing_name core test ( 19534e225)
2026-03-18 13:15:38 +05:00
Andrej730
58d07bace4
Fix drawing edit_text core test and tool interface ( 5e9f97a0c)
2026-03-18 13:15:38 +05:00
Andrej730
3b718bc58d
Fix georeference core tests ( b246998f6)
2026-03-18 13:15:38 +05:00
tsomanna_QCOM
18c035ea77
Fix Windows ARM64 Python Bindings Issue
2026-03-18 08:44:34 +01:00
Andrej730
f2e2e324b1
Fixing stubs
...
- `function_item`, `tags` added in df7318973
- MakeVolume added in c385b93 , ignore as all other conversion settings
- moved `SeparateZUpNode` ignore to the other geom serializer settings
2026-03-18 12:25:14 +05:00
Andrej730
069dbbd8c2
bonsai docs - add maintenance page
2026-03-18 12:25:14 +05:00
Andrej730
3385872e8b
ci-black-formatting - use variables for min Python versions
2026-03-18 12:25:14 +05:00
Andrej730
f0b27a0910
ifcopenshell-python Makefile - simplify pyversion check, similar to 6409f41
2026-03-18 12:25:13 +05:00
Andrej730
888158570a
Remove Python 3.9 references
2026-03-18 11:20:22 +05:00
Andrej730
c03156b5cd
control.assign_control - remove deprecated related_object argument support
2026-03-18 11:20:22 +05:00
Andrej730
05bf2b82d2
system.disconnect_port - fix missing flow direction reset ( bbda8d2)
2026-03-18 11:03:33 +05:00
Andrej730
7bdc1b6a75
cache_dependencies - skip ifcopenshell dir when packing
2026-03-18 11:01:38 +05:00
Sayan Jyoti Das
03de69814a
fixes and cleanups from old branch
2026-03-18 11:22:41 +05:30
Sayan Jyoti Das
4dc6a0f2bc
update ifcopenshell wheel to ifcopenshell-0.8.5+a51b2c5
2026-03-18 11:18:50 +05:30
Andrej730
c33509364c
Fix error generating ifcpatch recipes docs for Bonsai tooltips
...
Mentioned in https://github.com/IfcOpenShell/IfcOpenShell/issues/7667#issuecomment-4076645173
Traceback:
```
Traceback (most recent call last):
File "\bonsai\bim\module\patch\prop.py", line 55, in get_ifcpatch_recipes
docs = ifcpatch.extract_docs(f, "Patcher", "__init__", ("src", "file", "logger", "args"))
File "\ifcpatch\__init__.py", line 168, in extract_docs
spec.loader.exec_module(submodule)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 1027, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "\ifcpatch/recipes/FixRevit2025TINs.py", line 31, in <module>
class Patcher:
...<509 lines>...
return co / self.unit_scale
File "\ifcpatch/recipes/FixRevit2025TINs.py", line 168, in Patcher
def create_edges(self, obj: bpy.types.Object) -> None:
^^^
NameError: name 'bpy' is not defined
File "\bonsai\bim\module\patch\prop.py", line 43, in get_ifcpatch_recipes
```
2026-03-18 10:04:36 +05:00
Sayan Jyoti Das
47f058341b
local ifctester wheel build
2026-03-18 10:29:09 +05:30
Thomas Krijnen
a51b2c587c
Revert "Simplifies IfxAxis2PlacementLinear, assumes default Axis = (0,0,1)"
...
This reverts commit cf1552e79e .
2026-03-17 20:49:48 +01:00
Sayan Jyoti Das
845a13ba83
some fixes and lint cleanups
2026-03-17 21:16:53 +05:30
Sayan Jyoti Das
530841967e
Merge branch 'v0.8.0' into ifctester-improvements
2026-03-17 19:49:09 +05:30
Andrej730
c36e7badae
Remove use of deprecated os.popen
2026-03-17 18:14:22 +05:00
Andrej730
515fe8d2ef
Remove use of deprecated tempfile.mktemp
2026-03-17 18:14:22 +05:00
Andrej730
b8d3d1d105
pyproject.toml - add ty command to check for deprecated methods
2026-03-17 18:14:22 +05:00
Sayan Jyoti Das
e95da857d6
convert codebase to typescript + introduce biome lint
2026-03-16 21:55:10 +05:30
Sayan Jyoti Das
d587d1ac11
build step for pyodide
2026-03-16 21:46:46 +05:30
Andrej730
ba36dc82ff
bim.clear_measurement - add poll message
2026-03-16 15:27:39 +05:00
Andrej730
025fb769e2
bim.explore_tool - remove additional row to keep hotkey and operators on the same row
2026-03-16 15:27:39 +05:00
Andrej730
bf75a19640
bim.image_scaling_tool - break description to multiple lines for readibility
2026-03-16 15:27:39 +05:00
Andrej730
4473dbd138
bim.generate_uv_map - move to operator.py, fix missing description, add separate row in ui
2026-03-16 15:27:39 +05:00
Sayan Jyoti Das
6117417b89
update webapp + bonsai integration
2026-03-16 15:54:52 +05:30
Thomas Krijnen
0398584c69
empty
2026-03-16 15:45:41 +05:30
Thomas Krijnen
0c69f85d5e
Empty
2026-03-16 15:45:40 +05:30
Andrej730
7e987be00f
bim.link_ifc - document default query
...
To make it more discoverable for users.
2026-03-16 15:10:05 +05:00
Andrej730
35e3d9c42e
Linked Models - invalidate cache for mismatching query automatically
2026-03-16 15:10:04 +05:00
Andrej730
63a8639353
Linked Models - option to provide custom selector query
...
Available in file dialog when linking model - https://files.catbox.moe/tdmmbt.png
It's not very robust currently, just something to start with.
2026-03-16 15:10:04 +05:00
Andrej730
bd15ba4aa3
Linked Models - fix removing link operator missing if link is still loaded
2026-03-16 15:10:04 +05:00
Andrej730
f583d1ecc1
typing
2026-03-16 15:10:04 +05:00
Andrej730
5bfab569ba
bim.link_ifc - fix prop display in file dialog panel
...
Fixes this - https://files.catbox.moe/eq10ip.png
2026-03-16 15:10:04 +05:00
Andrej730
fb16e91249
Remove use of deprecated datetime.utcnow()
...
To fix warnings below:
```
<python-input-1>:1: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
```
2026-03-16 15:10:03 +05:00
Andrej730
1c456c3cb2
Bonsai Makefile - use official bpypolyskel repo instead of fork
...
Since https://github.com/prochitecture/bpypolyskel/pull/22 got merged.
2026-03-16 15:10:03 +05:00
Andrej730
a8d28fb469
Remove unused import, black .
2026-03-16 15:10:03 +05:00
Dion Moult
62bb6cdf33
Fix failing classification tests because they relied on spaces which are now hidden by default
2026-03-16 19:31:25 +11:00
Dion Moult
cf153981ce
Feature tests for add/remove literal
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 19:04:35 +11:00
Dion Moult
b38316336c
Revert "Fix #6392 : when duplicating a window/door/etc, the associated IfcOpenElement duplicates as well."
...
This reverts commit a2a5780d59 .
2026-03-16 17:52:02 +11:00
Dion Moult
021e6b9ef5
Simplify get model types to just got all type products. Fixes failing test.
2026-03-16 15:15:12 +11:00
falken10vdl
1999d93f9a
Add GenerateUVMap operator and integrate into ExploreTool ( #7695 )
...
Co-authored-by: Dion Moult <dionmoult@gmail.com >
2026-03-16 07:30:49 +11:00
Dirk Olbrich
8c9e89ace8
Bonsai - change add_grid operator namespace to bim
2026-03-15 23:50:52 +11:00
Ryan Schultz
868bb5c39e
Allow bulk annotation product assignment
...
Closes #7787 : Previously bim.assign_selected_as_product required exactly
2 objects. With multiple annotations referencing the same
product, users had to repeat the operation once per
annotation. Now any number of IfcAnnotations can be selected
alongside a single product object and all are assigned in
one operation and one undo step.
Generated with the assistance of an AI coding tool.
2026-03-15 23:42:07 +11:00
Dion Moult
c3a87c8f9c
Add basic text editing feature tests
2026-03-15 23:30:10 +11:00
Dion Moult
c30d24c4d9
Fix regression where changing logic to occur in filesystem selector caused headless test to fail.
...
See d4388ec76
2026-03-15 23:29:57 +11:00
Dion Moult
2edd1a5044
Black
2026-03-15 21:39:57 +11:00
Dion Moult
08dfcea47c
Fix Python signatures in operator descriptions.
...
Closes #7797 . Closes #7230 .
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 21:38:20 +11:00
Dion Moult
9c8f25739c
Fix failing test. Add reference images should use generated coords, not UV.
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 19:27:42 +11:00
Sebastian Schilling
256e4d2191
buildingSMART Data Dictionary module: use pSets from different data dictionary sources ( #7764 )
...
* buildingSMART Data Dictionary module: added textfield to change data dictionary url
* moved change of bsdd baseurl change to addon settings
* Receiving Psets from other dictionary sources has been made available by dynamizing the identifier_url using the client baseurl
* Remove unnecessary blank lines in prop.py
* Remove unused import of bsdd module
2026-03-15 12:56:04 +11:00
Dion Moult
b14da14614
Default to assigning material set usages if assigning to an occurrence. See #7794 .
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 12:26:21 +11:00
Dion Moult
273ecfe8e4
Supersede 3x3 box alignment with more familiar horizontal / vertical UI
...
* Fix #7712 - global alignment controls now affects all literals
* Fix #7760 - goodbye 3x3 box alignment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 08:24:38 +11:00
Dion Moult
6e0f24105e
Minor fix to regression in 95480a2 where reshaping to a 3x3 matrix was removed
2026-03-15 07:28:38 +11:00
Ryan Schultz
25af50a092
Temp files from ai coding tools
2026-03-15 07:20:15 +11:00
dependabot[bot]
4b5a50a831
Bump actions/download-artifact from 8.0.0 to 8.0.1
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v8.0.0...v8.0.1 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: 8.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-15 07:19:11 +11:00
dependabot[bot]
bd77175c66
Bump ruff from 0.15.5 to 0.15.6
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.5 to 0.15.6.
- [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.15.5...0.15.6 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-15 07:19:05 +11:00
dependabot[bot]
2b1d99a8b1
Bump gersemi from 0.26.0 to 0.26.1
...
Bumps [gersemi](https://github.com/BlankSpruce/gersemi ) from 0.26.0 to 0.26.1.
- [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.26.0...0.26.1 )
---
updated-dependencies:
- dependency-name: gersemi
dependency-version: 0.26.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-15 07:18:58 +11:00
Dion Moult
82adf4d18c
Fix #7782 : Don't allow assigning styles if no styles available.
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 07:03:48 +11:00
Thomas Krijnen
cf9df33aa5
Change checkout reference to build branch
2026-03-14 14:51:24 +01:00
Thomas Krijnen
1a6fd2530f
Remove dependency on Standard_failure #7788
2026-03-14 14:44:47 +01:00
Dion Moult
ea64f1b6b9
Fix #7770 , #7747 , #7572 , #7522 , #7416 , #7086 : Bug when first point in poly tool clicked twice
...
Previous logic always skipped the first point. Instead, it should only
skip when actually closing a loop (i.e. >= 3 points).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 20:35:59 +11:00
Dion Moult
473d689cf2
Fix #7794 : Only slice layerset mesh when material layer set usage exists
...
Without a usage, orientation is undefined so slicing should be skipped.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 13:25:14 +11:00
Richard Brice
cf1552e79e
Simplifies IfxAxis2PlacementLinear, assumes default Axis = (0,0,1)
2026-03-13 11:16:10 -07:00
Andrej730
90db564b4b
ifcclash - add advanced package type that supports smart group clashes
2026-03-13 20:26:23 +05:00
Andrej730
e9fb6b3c1d
Bonsai Makefile - upstream bpypolyskel wheel recipe
...
Sent PR - https://github.com/prochitecture/bpypolyskel/pull/22
2026-03-13 20:26:23 +05:00
Andrej730
a5e0b3f0e5
Bonsai Makefile - upstream ifcjson wheel recipe
...
Sent PR - https://github.com/IFCJSON-Team/IFC2JSON_python/pull/8
2026-03-13 20:26:23 +05:00
Andrej730
60519e8fed
ifcopenshell dev_environment - include all packages
2026-03-13 20:26:23 +05:00
Andrej730
8fb454bb27
Partially disable old Windows workaround for Bonsai uninstallation
2026-03-13 20:26:23 +05:00
Andrej730
9ed8f3e244
Bonsai - fix missing Bonsai Fatal Error UI
...
Since we added more data to debug info in fcf5614 Fatal Error itself started to fail and was never displayed due some props being inaccessible during load, should be fixed now.
Possible error that were fixed:
```
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 328, in <module>
print(format_debug_info(get_debug_info()))
~~~~~~~~~~~~~~^^
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 117, in get_debug_info
if bpy.data.is_saved:
^^^^^^^^^^^^^^^^^
AttributeError: '_RestrictData' object has no attribute 'is_saved'
Traceback (most recent call last):
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 366, in draw
info = get_debug_info()
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 152, in get_debug_info
bim_props = tool.Blender.get_bim_props()
^^^^
NameError: name 'tool' is not defined. Did you mean: 'bool'?
Traceback (most recent call last):
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 366, in draw
info = get_debug_info()
File "\Blender\5.1\extensions\raw_githubusercontent_com\bonsai\__init__.py", line 141, in get_debug_info
import bonsai.tool as tool
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\__init__.py", line 355, in <module>
print(format_debug_info(get_debug_info()))
~~~~~~~~~~~~~~^^
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\__init__.py", line 141, in get_debug_info
import bonsai.tool as tool
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\tool\__init__.py", line 23, in <module>
from bonsai.tool.attribute import Attribute
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\tool\attribute.py", line 31, in <module>
import bonsai.bim.helper as helper
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\bim\__init__.py", line 28, in <module>
from . import handler, operator, prop, ui
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\bim\handler.py", line 36, in <module>
from bonsai.bim.module.aggregate.decorator import AggregateDecorator
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\bim\module\aggregate\__init__.py", line 21, in <module>
from . import operator, prop, ui
File "\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\bim\module\aggregate\operator.py", line 32, in <module>
class BIM_OT_aggregate_assign_object(bpy.types.Operator, tool.Ifc.Operator):
^^^^^^^^
AttributeError: partially initialized module 'bonsai.tool' from '\Blender\5.1\extensions\.local\lib\python3.13\site-packages\bonsai\tool\__init__.py' has no attribute 'Ifc' (most likely due to a circular import)
```
2026-03-13 20:26:23 +05:00
Andrej730
298beacef6
Bonsai - remove pyperclip use
2026-03-13 20:26:22 +05:00
Andrej730
eba798c544
typing
2026-03-13 20:26:22 +05:00
dependabot[bot]
1576302caf
Bump devalue from 5.6.3 to 5.6.4 in /src/ifctester/webapp
...
Bumps [devalue](https://github.com/sveltejs/devalue ) from 5.6.3 to 5.6.4.
- [Release notes](https://github.com/sveltejs/devalue/releases )
- [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/devalue/compare/v5.6.3...v5.6.4 )
---
updated-dependencies:
- dependency-name: devalue
dependency-version: 5.6.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-13 07:58:26 +01:00
dependabot[bot]
d7f29c4494
Bump tar from 7.5.10 to 7.5.11 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.10 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.10...v7.5.11 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.11
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-13 07:58:22 +01:00
dependabot[bot]
4ff6f7c78b
Bump black from 26.3.0 to 26.3.1
...
Bumps [black](https://github.com/psf/black ) from 26.3.0 to 26.3.1.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/26.3.0...26.3.1 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.3.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-13 07:58:06 +01:00
Andrej730
0b44e146bd
Fix error starting Bonsai ( 77697aeef)
2026-03-13 11:57:17 +05:00
tsomanna_QCOM
cf42f986c4
Add Support for IfcOpenShell on Win ARM64
2026-03-12 20:29:10 +01:00
tsomanna_QCOM
e84142894e
Add Support for IfcOpenShell on Win ARM64
2026-03-12 20:29:10 +01:00
tsomanna_QCOM
b38a0dce1f
Add Support for IfcOpenShell on Win ARM64
2026-03-12 20:29:10 +01:00
tsomanna_QCOM
ae253f5e2a
Add Support for IfcOpenShell on Win ARM64
2026-03-12 20:29:10 +01:00
tsomanna_QCOM
b25c24a007
Add Support for IfcOpenShell on Win ARM64
2026-03-12 20:29:10 +01:00
Andrej730
8bd3fab608
Linked Models - option to isolate selected object
...
Quick demo - https://files.catbox.moe/6chdx7.mp4
2026-03-12 20:21:10 +05:00
Andrej730
82951fe702
Pylance - ignore _deps folder
...
In my case it was adding 3115 Python files and VS Code kept indexing them.
2026-03-12 20:21:10 +05:00
Andrej730
77697aeefc
typing
2026-03-12 20:21:10 +05:00
Thomas Krijnen
71442bd4d4
Submodule
2026-03-12 12:34:05 +01:00
Andrej730
f7bee258c6
Linked models - add description for georeferencing indicator
...
Example - https://files.catbox.moe/bkn9pn.png
2026-03-11 18:38:25 +05:00
Andrej730
0585f8716a
Quick Favorites Manager - support enum items
2026-03-11 18:38:25 +05:00
Andrej730
f3fe1a7bf0
ci.yml - BUILD_EXAMPLES=ON to keep testing examples build
2026-03-11 18:38:25 +05:00
Andrej730
61ba6a7989
Add operator to run search generic search queries
...
So it will be easy to add queries to quick favorites.
2026-03-11 18:38:25 +05:00
Andrej730
97f900e62f
Quick Favorites Manager - show operators suggestions
2026-03-11 18:38:25 +05:00
Andrej730
594d72d7e1
Quick Favorites Manager
...
Blender doesn't have it's own quick favorites manager and working with them can be not very flexible - you can add them in context menu and remove them from Quick Favorites menu. But you can't reorder them, you can't rename them and you can't even add a new button to favorites if it's not added by some addon in the UI.
Have been stumbling upon this for awhile and decided to create an experimental manager UI for this. Things it can do:
- help user create a button with any operator in Blender and properties they prefer to then save it Quick Favorites. Which seems can be very useful in Bonsai, since you can create separate buttons for all kinds of selectors expressions, class assignment or other operators.
- it can import quick favorites from user's actual current quick favorites, so they can just modify them a bit, reorder, rename and then add them again.
- Since quick favorites are not exposed to Python API in Blender, we're using a very hacky way to retrieve them from Blender and don't provide our own buttons for adding and removing quick favorites, as it may be dangerous and even more hacky in implementation. So the workflow for user is to either generate some buttons and add them to quick favorites using Manager or to import it's own quick favorites, then change them how they like, then remove quick favorites using usual quick favorites menu and then add new button one by one.
Small demo - https://files.catbox.moe/vyffp6.mp4
2026-03-11 18:38:24 +05:00
Andrej730
578caaf2cd
tool.Blender.update_all_viewports
2026-03-11 18:38:24 +05:00
Andrej730
15ea092ac4
typing
2026-03-11 18:38:23 +05:00
Andrej730
4b12b6dacd
bim.hide_queried_linked_element - note known UNDO limitation
2026-03-11 18:38:23 +05:00
Andrej730
584bbe3b83
tool/test_project - remove redundant __init__
2026-03-11 18:38:22 +05:00
Andrej730
e47b7bca4b
ci-black-formatting.yml - note on Python versions used
2026-03-11 18:38:22 +05:00
Andrej730
62b108766b
ci-black-formatting.yml - note on Python versions used
2026-03-11 18:38:22 +05:00
HugoBallee
972a1fd309
Update getting_started.rst
...
IFC_SCHEMA_NAME matching includes
2026-03-10 09:41:09 +01:00
Bruno Postle
6f0bb21a43
Disable building example applications by default, closes #7763
...
Enable with -DBUILD_EXAMPLES=ON
2026-03-09 22:59:34 +00:00
dependabot[bot]
72f279381f
Bump immutable from 5.1.2 to 5.1.5 in /src/ifctester/webapp
...
Bumps [immutable](https://github.com/immutable-js/immutable-js ) from 5.1.2 to 5.1.5.
- [Release notes](https://github.com/immutable-js/immutable-js/releases )
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md )
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.2...v5.1.5 )
---
updated-dependencies:
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:33:44 +01:00
dependabot[bot]
9873e403bc
Bump tar from 7.5.9 to 7.5.10 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.9 to 7.5.10.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.9...v7.5.10 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.10
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:33:38 +01:00
dependabot[bot]
a48449bc9c
Bump docker/setup-buildx-action from 3 to 4
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:33:31 +01:00
dependabot[bot]
8cc50b7399
Bump docker/build-push-action from 6 to 7
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:33:25 +01:00
dependabot[bot]
da027b912e
Bump black from 26.1.0 to 26.3.0
...
Bumps [black](https://github.com/psf/black ) from 26.1.0 to 26.3.0.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/26.1.0...26.3.0 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:33:18 +01:00
dependabot[bot]
b65a69b9ca
Bump docker/login-action from 3 to 4
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:25:36 +01:00
dependabot[bot]
3b3b1f1eab
Bump ruff from 0.15.4 to 0.15.5
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.4 to 0.15.5.
- [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.15.4...0.15.5 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:25:11 +01:00
dependabot[bot]
ff1b74ef10
Bump docker/setup-qemu-action from 3 to 4
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-09 14:22:05 +01:00
Richard Brice
610d639c21
Fixes rotation lerp test in make_loft
2026-03-08 10:37:05 -07:00
Richard Brice
e282a18474
Fixes crash in taxonomy::loft::print_impl when axis == nullptr
2026-03-08 09:55:47 -07:00
Thomas Krijnen
0469a9528b
use basic casts to prevent needless item upgrades #7738
2026-03-06 16:34:12 +01:00
Andrej730
f9486be172
get_linked_element_geom_slice - add tests
2026-03-06 19:07:34 +05:00
Andrej730
3a59425a64
Linked IFC models - hotkey to hide selected geometry
...
Demo - https://files.catbox.moe/aok74w.mp4
2026-03-06 19:07:34 +05:00
Andrej730
9d0c172a53
bim.select_linked_model_element
...
Refactored methods for accessing objects in linked models and added a simple operator to select object in linked model by providing guid.
A quick demo - https://files.catbox.moe/sjjw37.mp4
2026-03-06 19:07:34 +05:00
Andrej730
ecc82a52f5
ExtractPropertiesToSQLite - add typing for created columns
2026-03-06 19:07:34 +05:00
Andrej730
adaf33b74f
project.operator - reuse ray_cast method
2026-03-06 19:07:33 +05:00
Andrej730
a52a329197
Update note on Blender upstream issue
...
Fix was included in 4.5.7 (see 141496 bug in https://projects.blender.org/blender/blender/issues/141871 )
2026-03-06 19:07:33 +05:00
Andrej730
3a54e808f6
dev_environment python - create user site packages folder if missing
...
E.g. it might be missing if Python was just installed. Also print paths first before symlinking, making it easier to debug.
2026-03-06 19:07:33 +05:00
Andrej730
f102c7c1b4
ifcopenshell-python makefile - add note about PYNUMBER
2026-03-06 19:07:33 +05:00
Andrej730
9005333f53
ifcpatch MergeProjects - make logger arg optional
2026-03-06 19:07:33 +05:00
Andrej730
a26dbe252a
bim.append_inspected_linked_element - fix missing UNDO
2026-03-06 19:07:33 +05:00
Andrej730
8743d5643e
typing
2026-03-06 19:07:33 +05:00
Andrej730
619848823c
Sort out imports
2026-03-06 19:07:32 +05:00
Richard Brice
951ade4b57
Fix bug introduced in 65d5df78
2026-03-05 14:50:33 -08:00
Richard Brice
1378919709
Fixes IfcLinearPlacement fallback position warning
2026-03-03 13:16:55 -08:00
Ryan Schultz
61cfa48c2c
docs: add BonsaiPR bleeding edge installation section ( #7721 )
...
* Fix #7718 : Fix FallDecorator label calculation for all slope annotation types
- Fix wrong dict key type in decoration.py: DecoratorData.data["fall"] is
keyed by obj.name (str) but was looked up with obj (Object), causing
object_type to always be None
- Apply obj.matrix_world transform to spline points before computing rise/run
in both decoration.py and svgwriter.py; local coordinates have Z=0 for flat
annotations, world coordinates correctly reflect elevation change
- Use hypotenuse (segment_length) instead of run as the denominator for
SLOPE_FRACTION label display
Generated with the assistance of an AI coding tool.
* docs: add BonsaiPR bleeding edge installation section
Add new section to installation.rst documenting the BonsaiPR
community build, including why it exists, how the automated
PR-merging system works, installation steps with automated
updates, manual installation, and the PR workflow for
contributors.
Generated with the assistance of an AI coding tool.
* whoops
2026-03-03 18:48:03 +11:00
falken10vdl
d6c782aba5
Add newline handling with add_newline_between_words n SvgWriter for text literals
2026-03-03 18:46:14 +11:00
dependabot[bot]
d4150e0558
Bump svelte from 5.53.0 to 5.53.6 in /src/ifctester/webapp
...
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte ) from 5.53.0 to 5.53.6.
- [Release notes](https://github.com/sveltejs/svelte/releases )
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.53.6/packages/svelte )
---
updated-dependencies:
- dependency-name: svelte
dependency-version: 5.53.6
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-03 18:44:47 +11:00
dependabot[bot]
4f6051cb0a
Bump ruff from 0.15.2 to 0.15.4
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.2 to 0.15.4.
- [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.15.2...0.15.4 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-03 18:44:40 +11:00
dependabot[bot]
5a27ec9814
Bump actions/upload-artifact from 6 to 7
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-03 18:44:32 +11:00
dependabot[bot]
0ce60f5061
Bump actions/download-artifact from 7.0.0 to 8.0.0
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v7.0.0...v8.0.0 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: 8.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-03 18:44:25 +11:00
Thomas Krijnen
43146530b0
arrange polygons: Alternative (unused) perimiter approach; simpler topology handling; projection-based clean-up
2026-03-02 21:49:05 +01:00
Andrej730
db377e2178
Also bump binary version
2026-02-27 15:20:18 +05:00
Thomas Krijnen
5b0511379b
IfcAxis1Placement.Axis is optional #7728
2026-02-27 11:06:45 +01:00
Andrej730
f8663b5e2b
Bump ifcopenshell build
...
Just because it didn't happened for a while now and we need to test it.
2026-02-27 14:52:56 +05:00
Andrej730
92c979fbbf
black .
2026-02-27 14:52:55 +05:00
Andrej730
8834a51122
format cmake files
2026-02-27 14:52:55 +05:00
Andrej730
1c5b825d8e
build-all-win - fix missing compression for Python zip archives
...
Same as 5ebd425 , should resolve https://github.com/ifcopenshell/ifcopenshell/issues/7404
2026-02-27 12:09:34 +05:00
dependabot[bot]
58c69f9d35
Bump ruff from 0.15.1 to 0.15.2
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.1 to 0.15.2.
- [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.15.1...0.15.2 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-26 13:15:49 +01:00
dependabot[bot]
198e111a92
Bump gersemi from 0.25.4 to 0.26.0
...
Bumps [gersemi](https://github.com/BlankSpruce/gersemi ) from 0.25.4 to 0.26.0.
- [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.4...0.26.0 )
---
updated-dependencies:
- dependency-name: gersemi
dependency-version: 0.26.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-26 13:15:39 +01:00
dependabot[bot]
35886c9f72
Bump svelte from 5.33.10 to 5.53.0 in /src/ifctester/webapp
...
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte ) from 5.33.10 to 5.53.0.
- [Release notes](https://github.com/sveltejs/svelte/releases )
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.53.0/packages/svelte )
---
updated-dependencies:
- dependency-name: svelte
dependency-version: 5.53.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-26 13:14:38 +01:00
dependabot[bot]
097c8af7c7
Bump rollup from 4.41.1 to 4.59.0 in /src/ifctester/webapp
...
Bumps [rollup](https://github.com/rollup/rollup ) from 4.41.1 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v4.41.1...v4.59.0 )
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-26 13:14:21 +01:00
Andrej730
cfea3de552
cmake - fix msvc warning on linking without /ltcg flag
...
Linking flags were missing for `MODULE` type libraries, example warning: `IfcPythonPYTHON_wrap.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance`
2026-02-26 17:12:55 +05:00
Andrej730
5b86eedb26
cmake - fix ifc geom mapping not linking against IfcGeom library
2026-02-26 17:12:55 +05:00
Andrej730
fc13bcd055
bump ccache-action
2026-02-26 17:12:55 +05:00
Andrej730
be4806471d
cache_dependencies - use tar instead of tarfile for archiving
2026-02-26 17:12:55 +05:00
Andrej730
7909997d42
build workflows - reuse cache_dependencies.py
2026-02-26 17:12:54 +05:00
Andrej730
00cd0b76f9
.gersemirc - search src for definitions
...
To fix errors when parsing custom macro from `src\examples\CMakeLists.txt`, see https://github.com/BlankSpruce/gersemi/issues/105
2026-02-26 17:12:54 +05:00
Andrej730
aa7710dd74
cache_dependencies.py - note expected cwd
2026-02-26 17:12:54 +05:00
Andrej730
fc7d15324f
build-all - don't use main repo pyproject.toml for wasm builds
2026-02-26 17:12:54 +05:00
Andrej730
f8f4725054
build-all - remove wasm cxx flags workaround
...
As issue is now fixed upstream (https://github.com/pyodide/pyodide-build/issues/251 )
2026-02-26 17:12:54 +05:00
Andrej730
333b6210a4
black .
2026-02-26 17:12:52 +05:00
Andrej730
ff3933a117
Remove some unused imports
2026-02-26 17:12:46 +05:00
Andrej730
34ffaea2c9
cmake - link serializers against IfcGeom to fix wasm build
...
jsonserializer is using ifcgeom and also eigen3
2026-02-26 17:12:45 +05:00
Andrej730
526b9537a9
build_pyodide.sh - allow executing multiple times
2026-02-26 17:12:45 +05:00
Andrej730
fb1c9eb7e3
build-all - fix missing f-string
2026-02-26 17:12:45 +05:00
Andrej730
a61d5a12fb
build-all - use cmake to build swig
...
To keep it in sync with Windows build. Also Removed pcre2 dependency as apparently it's not required - we were not using it on Windows.
2026-02-26 17:12:45 +05:00
Andrej730
e54d16ef57
build_osx - ensure we use bison from brew instead of the default one
2026-02-26 17:12:45 +05:00
Andrej730
4591b6d926
cmake - ignore rocksdb shared library
...
If makes code target it by default if it's available, leading to errors below, since we don't really support using shared rocksdb. See some more details in the code comment.
IfcPythonPYTHON_wrap.cxx.obj : error LNK2001: unresolved external symbol "public: __cdecl rocksdb::Cleanable::~Cleanable(void)" (??1Cleanable@rocksdb@@QEAA@XZ)
IfcPythonPYTHON_wrap.cxx.obj : error LNK2001: unresolved external symbol "public: __cdecl rocksdb::Cleanable::Cleanable(void)" (??0Cleanable@rocksdb@@QEAA@XZ)
IfcPythonPYTHON_wrap.cxx.obj : error LNK2001: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl rocksdb::Slice::ToString(bool)const " (?ToString@Slice@rocksdb@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "const rocksdb::WriteBatch::`vftable'" (??_7WriteBatch@rocksdb@@6B@)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl rocksdb::WriteBatch::~WriteBatch(void)" (??1WriteBatch@rocksdb@@UEAA@XZ)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: __cdecl rocksdb::WriteBatch::WriteBatch(unsigned __int64,unsigned __int64,unsigned __int64,unsigned __int64)" (??0WriteBatch@rocksdb@@QEAA@_K000@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: __cdecl rocksdb::ColumnFamilyOptions::ColumnFamilyOptions(void)" (??0ColumnFamilyOptions@rocksdb@@QEAA@XZ)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl rocksdb::Configurable::GetOptionName(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?GetOptionName@Configurable@rocksdb@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV34@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl rocksdb::Configurable::SerializeOptions(struct rocksdb::ConfigOptions const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?SerializeOptions@Configurable@rocksdb@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBUConfigOptions@2@AEBV34@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual bool __cdecl rocksdb::Configurable::OptionsAreEqual(struct rocksdb::ConfigOptions const &,class rocksdb::OptionTypeInfo const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,void const * const,void const * const,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?OptionsAreEqual@Configurable@rocksdb@@MEBA_NAEBUConfigOptions@2@AEBVOptionTypeInfo@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBX3PEAV56@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class rocksdb::Status __cdecl rocksdb::Configurable::ParseOption(struct rocksdb::ConfigOptions const &,class rocksdb::OptionTypeInfo const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,void *)" (?ParseOption@Configurable@rocksdb@@MEAA?AVStatus@2@AEBUConfigOptions@2@AEBVOptionTypeInfo@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2PEAX@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class rocksdb::Status __cdecl rocksdb::Configurable::ConfigureOptions(struct rocksdb::ConfigOptions const &,class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > const &,class std::unordered_map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::hash<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::equal_to<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > > *)" (?ConfigureOptions@Configurable@rocksdb@@MEAA?AVStatus@2@AEBUConfigOptions@2@AEBV?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@std@@PEAV56@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class rocksdb::Status __cdecl rocksdb::Configurable::ParseStringOptions(struct rocksdb::ConfigOptions const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseStringOptions@Configurable@rocksdb@@MEAA?AVStatus@2@AEBUConfigOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual void const * __cdecl rocksdb::Configurable::GetOptionsPtr(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?GetOptionsPtr@Configurable@rocksdb@@MEBAPEBXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual class rocksdb::Status __cdecl rocksdb::Configurable::ValidateOptions(struct rocksdb::DBOptions const &,struct rocksdb::ColumnFamilyOptions const &)const " (?ValidateOptions@Configurable@rocksdb@@UEBA?AVStatus@2@AEBUDBOptions@2@AEBUColumnFamilyOptions@2@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual class rocksdb::Status __cdecl rocksdb::Configurable::PrepareOptions(struct rocksdb::ConfigOptions const &)" (?PrepareOptions@Configurable@rocksdb@@UEAA?AVStatus@2@AEBUConfigOptions@2@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl rocksdb::Configurable::AreEquivalent(struct rocksdb::ConfigOptions const &,class rocksdb::Configurable const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?AreEquivalent@Configurable@rocksdb@@UEBA_NAEBUConfigOptions@2@PEBV12@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual class rocksdb::Status __cdecl rocksdb::Configurable::GetOption(struct rocksdb::ConfigOptions const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?GetOption@Configurable@rocksdb@@UEBA?AVStatus@2@AEBUConfigOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAV56@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "class rocksdb::TableFactory * __cdecl rocksdb::NewBlockBasedTableFactory(struct rocksdb::BlockBasedTableOptions const &)" (?NewBlockBasedTableFactory@rocksdb@@YAPEAVTableFactory@1@AEBUBlockBasedTableOptions@1@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: class std::shared_ptr<class rocksdb::Cache> __cdecl rocksdb::LRUCacheOptions::MakeSharedCache(void)const " (?MakeSharedCache@LRUCacheOptions@rocksdb@@QEBA?AV?$shared_ptr@VCache@rocksdb@@@std@@XZ)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: static class rocksdb::Status __cdecl rocksdb::DB::OpenForReadOnly(struct rocksdb::Options const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::unique_ptr<class rocksdb::DB,struct std::default_delete<class rocksdb::DB> > *,bool)" (?OpenForReadOnly@DB@rocksdb@@SA?AVStatus@2@AEBUOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAV?$unique_ptr@VDB@rocksdb@@U?$default_delete@VDB@rocksdb@@@std@@@6@_N@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: static class rocksdb::Status __cdecl rocksdb::DB::Open(struct rocksdb::Options const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::unique_ptr<class rocksdb::DB,struct std::default_delete<class rocksdb::DB> > *)" (?Open@DB@rocksdb@@SA?AVStatus@2@AEBUOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAV?$unique_ptr@VDB@rocksdb@@U?$default_delete@VDB@rocksdb@@@std@@@6@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "class std::vector<enum rocksdb::CompressionType,class std::allocator<enum rocksdb::CompressionType> > const & __cdecl rocksdb::GetSupportedCompressions(void)" (?GetSupportedCompressions@rocksdb@@YAAEBV?$vector@W4CompressionType@rocksdb@@V?$allocator@W4CompressionType@rocksdb@@@std@@@std@@XZ)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl rocksdb::MergeOperator::PartialMergeMulti(class rocksdb::Slice const &,class std::deque<class rocksdb::Slice,class std::allocator<class rocksdb::Slice> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,class rocksdb::Logger *)const " (?PartialMergeMulti@MergeOperator@rocksdb@@UEBA_NAEBVSlice@2@AEBV?$deque@VSlice@rocksdb@@V?$allocator@VSlice@rocksdb@@@std@@@std@@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@PEAVLogger@2@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl rocksdb::MergeOperator::FullMergeV3(struct rocksdb::MergeOperator::MergeOperationInputV3 const &,struct rocksdb::MergeOperator::MergeOperationOutputV3 *)const " (?FullMergeV3@MergeOperator@rocksdb@@UEBA_NAEBUMergeOperationInputV3@12@PEAUMergeOperationOutputV3@12@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl rocksdb::MergeOperator::FullMergeV2(struct rocksdb::MergeOperator::MergeOperationInput const &,struct rocksdb::MergeOperator::MergeOperationOutput *)const " (?FullMergeV2@MergeOperator@rocksdb@@UEBA_NAEBUMergeOperationInput@12@PEAUMergeOperationOutput@12@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl rocksdb::Customizable::SerializeOptions(struct rocksdb::ConfigOptions const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?SerializeOptions@Customizable@rocksdb@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBUConfigOptions@2@AEBV34@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "protected: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl rocksdb::Customizable::GetOptionName(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (?GetOptionName@Customizable@rocksdb@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV34@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual class rocksdb::Status __cdecl rocksdb::Customizable::GetOption(struct rocksdb::ConfigOptions const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?GetOption@Customizable@rocksdb@@UEBA?AVStatus@2@AEBUConfigOptions@2@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAV56@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl rocksdb::Customizable::AreEquivalent(struct rocksdb::ConfigOptions const &,class rocksdb::Configurable const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?AreEquivalent@Customizable@rocksdb@@UEBA_NAEBUConfigOptions@2@PEBVConfigurable@2@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "public: __cdecl rocksdb::DBOptions::DBOptions(void)" (??0DBOptions@rocksdb@@QEAA@XZ)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "private: virtual bool __cdecl rocksdb::AssociativeMergeOperator::PartialMerge(class rocksdb::Slice const &,class rocksdb::Slice const &,class rocksdb::Slice const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,class rocksdb::Logger *)const " (?PartialMerge@AssociativeMergeOperator@rocksdb@@EEBA_NAEBVSlice@2@00PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVLogger@2@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "private: virtual bool __cdecl rocksdb::AssociativeMergeOperator::FullMergeV2(struct rocksdb::MergeOperator::MergeOperationInput const &,struct rocksdb::MergeOperator::MergeOperationOutput *)const " (?FullMergeV2@AssociativeMergeOperator@rocksdb@@EEBA_NAEBUMergeOperationInput@MergeOperator@2@PEAUMergeOperationOutput@42@@Z)
IfcParse.lib(IfcFile.cpp.obj) : error LNK2001: unresolved external symbol "bool const rocksdb::kDefaultToAdaptiveMutex" (?kDefaultToAdaptiveMutex@rocksdb@@3_NB)
ifcwrap\_ifcopenshell_wrapper.cp311-win_amd64.pyd : fatal error LNK1120: 34 unresolved externals
Or on Unix:
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcEntityInstanceData.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcEntityInstanceData.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::Configurable::~Configurable()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/configurable.h:59: undefined reference to `vtable for rocksdb::Configurable'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/configurable.h:59: undefined reference to `vtable for rocksdb::Configurable'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/configurable.h:59: undefined reference to `vtable for rocksdb::Configurable'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::Customizable::GetOptionsPtr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/customizable.h:105: undefined reference to `rocksdb::Configurable::GetOptionsPtr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/customizable.h:105: undefined reference to `rocksdb::Configurable::GetOptionsPtr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/customizable.h:105: undefined reference to `rocksdb::Configurable::GetOptionsPtr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::Options::Options()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/options.h:1628: undefined reference to `rocksdb::DBOptions::DBOptions()'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/options.h:1628: undefined reference to `rocksdb::ColumnFamilyOptions::ColumnFamilyOptions()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `IfcParse::impl::rocks_db_file_storage::rocks_db_file_storage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, IfcParse::IfcFile*, bool)':
/home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:421: undefined reference to `rocksdb::GetSupportedCompressions()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `init_db':
/home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:440: undefined reference to `rocksdb::kDefaultToAdaptiveMutex'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::NewLRUCache(unsigned long, int, bool, double, std::shared_ptr<rocksdb::MemoryAllocator>, bool, rocksdb::CacheMetadataChargePolicy, double)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/cache.h:282: undefined reference to `rocksdb::LRUCacheOptions::MakeSharedCache() const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `init_db':
/home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:445: undefined reference to `rocksdb::NewBlockBasedTableFactory(rocksdb::BlockBasedTableOptions const&)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::DB::OpenForReadOnly(rocksdb::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::DB**, bool)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/db.h:243: undefined reference to `rocksdb::DB::OpenForReadOnly(rocksdb::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<rocksdb::DB, std::default_delete<rocksdb::DB> >*, bool)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::DB::Open(rocksdb::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::DB**)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/db.h:187: undefined reference to `rocksdb::DB::Open(rocksdb::Options const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<rocksdb::DB, std::default_delete<rocksdb::DB> >*)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb_set_view<unsigned long>::iterator::extract_current_value() const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_set_view.h:70: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb_set_view<unsigned long>::iterator::iterator(rocksdb_set_view<unsigned long>::iterator const&)':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_set_view.h:103: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_set_view.h:106: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `IfcParse::impl::rocks_db_file_storage::process_deletion_inverse(IfcUtil::IfcBaseClass*)':
/home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:526: undefined reference to `rocksdb::WriteBatch::~WriteBatch()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/write_batch.h:67: undefined reference to `rocksdb::WriteBatch::WriteBatch(unsigned long, unsigned long, unsigned long, unsigned long)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `rocksdb::WriteBatch::DeleteRange(rocksdb::Slice const&, rocksdb::Slice const&)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/write_batch.h:164: undefined reference to `rocksdb::WriteBatch::DeleteRange(rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::Slice const&)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o): in function `IfcParse::impl::rocks_db_file_storage::process_deletion_inverse(IfcUtil::IfcBaseClass*)':
/home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:526: undefined reference to `rocksdb::WriteBatch::~WriteBatch()'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:547: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/IfcFile.cpp:526: undefined reference to `rocksdb::WriteBatch::~WriteBatch()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTIN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x10): undefined reference to `typeinfo for rocksdb::AssociativeMergeOperator'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x20): undefined reference to `rocksdb::Customizable::GetOption(rocksdb::ConfigOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x28): undefined reference to `rocksdb::Customizable::AreEquivalent(rocksdb::ConfigOptions const&, rocksdb::Configurable const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x38): undefined reference to `rocksdb::Configurable::PrepareOptions(rocksdb::ConfigOptions const&)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x40): undefined reference to `rocksdb::Configurable::ValidateOptions(rocksdb::DBOptions const&, rocksdb::ColumnFamilyOptions const&) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x50): undefined reference to `rocksdb::Configurable::ParseStringOptions(rocksdb::ConfigOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x58): undefined reference to `rocksdb::Configurable::ConfigureOptions(rocksdb::ConfigOptions const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x60): undefined reference to `rocksdb::Configurable::ParseOption(rocksdb::ConfigOptions const&, rocksdb::OptionTypeInfo const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*)'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x68): undefined reference to `rocksdb::Configurable::OptionsAreEqual(rocksdb::ConfigOptions const&, rocksdb::OptionTypeInfo const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void const*, void const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x70): undefined reference to `rocksdb::Customizable::SerializeOptions(rocksdb::ConfigOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0x78): undefined reference to `rocksdb::Customizable::GetOptionName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0xb8): undefined reference to `rocksdb::MergeOperator::FullMergeV3(rocksdb::MergeOperator::MergeOperationInputV3 const&, rocksdb::MergeOperator::MergeOperationOutputV3*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0xc0): undefined reference to `rocksdb::AssociativeMergeOperator::PartialMerge(rocksdb::Slice const&, rocksdb::Slice const&, rocksdb::Slice const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, rocksdb::Logger*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcFile.cpp.o):(.data.rel.ro._ZTVN12_GLOBAL__N_126ConcatenateIdMergeOperatorE+0xc8): undefined reference to `rocksdb::MergeOperator::PartialMergeMulti(rocksdb::Slice const&, std::deque<rocksdb::Slice, std::allocator<rocksdb::Slice> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, rocksdb::Logger*) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::iterator::operator*() const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:261: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:263: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::iterator::operator==(rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::iterator const&) const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:296: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:296: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DefaultCodec<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator::operator*() const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:261: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:263: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, DefaultCodec<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::find(unsigned long const&) const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:327: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::tuple<int, int, int>, std::vector<unsigned int, std::allocator<unsigned int> >, DefaultCodec<std::vector<unsigned int, std::allocator<unsigned int> > > >::find(std::tuple<int, int, int> const&) const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:327: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::tuple<int, int, int>, std::vector<unsigned int, std::allocator<unsigned int> >, DefaultCodec<std::vector<unsigned int, std::allocator<unsigned int> > > >::iterator::operator*() const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:261: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o):/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:263: more undefined references to `rocksdb::Slice::ToString[abi:cxx11](bool) const' follow
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:327: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::iterator::iterator(rocksdb_map_adapter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, DefaultCodec<unsigned long> >::iterator const&)':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:230: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_map_adapter.h:233: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::PinnableSlice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:141: undefined reference to `rocksdb::Cleanable::Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb::PinnableSlice::~PinnableSlice()':
/home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: /home/andrej/ifcopenshell/build/Linux/x86_64/install/rocksdb-9.11.2/include/rocksdb/slice.h:138: undefined reference to `rocksdb::Cleanable::~Cleanable()'
/usr/bin/ld: ../ifcparse/libIfcParse.a(IfcParse.cpp.o): in function `rocksdb_set_view<unsigned long>::iterator::operator==(rocksdb_set_view<unsigned long>::iterator const&) const':
/home/andrej/ifcopenshell/src/ifcparse/rocksdb_set_view.h:170: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
/usr/bin/ld: /home/andrej/ifcopenshell/src/ifcparse/rocksdb_set_view.h:170: undefined reference to `rocksdb::Slice::ToString[abi:cxx11](bool) const'
collect2: error: ld returned 1 exit status
make[2]: *** [ifcconvert/CMakeFiles/IfcConvert.dir/build.make:236: ifcconvert/IfcConvert] Error 1
make[1]: *** [CMakeFiles/Makefile2:569: ifcconvert/CMakeFiles/IfcConvert.dir/all] Error 2
2026-02-26 17:12:44 +05:00
Andrej730
6492fdeb05
build-all - add zlib and openssl to RHEL packages
2026-02-26 17:12:44 +05:00
Andrej730
8eb0641e70
build-all - mention zlib requirement
2026-02-26 17:12:44 +05:00
Andrej730
6face696cb
build-all - use cmake arg instead of a patch to disable ExpToCasExe
2026-02-26 17:12:42 +05:00
Andrej730
4c4eed5dd4
build_rocky - switch to rocky 9
...
As rocky 8 is not updating anymore for 2 years and we need some updated dependencies (e.g. `bison` 3.5+ for newer version of `swig`).
2026-02-26 17:01:56 +05:00
Andrej730
634600b65f
FindOpenCASCADE - rescan dependencies for cmake config
2026-02-26 17:01:56 +05:00
Andrej730
d43b9ee353
build-all - ensure Python was built with openssl
2026-02-26 17:01:56 +05:00
Andrej730
5ea4290920
build-all - ensure bison is installed
2026-02-26 17:01:56 +05:00
Andrej730
c8ca904333
build-all - distinct command and path in logs
2026-02-26 17:01:56 +05:00
Andrej730
59c28b5ae6
build_rocky - use dnf instead of yum
...
It's using `dnf` either way, but just to make it more explicit.
2026-02-26 17:01:56 +05:00
Andrej730
c649a4b522
build-all - don't fail silently on missing Python dependencies
2026-02-26 17:01:55 +05:00
Andrej730
5ebd4256a1
build-all-win.py - fix missing compression
...
Resulting in larger zip files for builds, reported in 7404
2026-02-26 17:01:55 +05:00
Andrej730
3ec9d69556
build-deps - support building Boost for VS2026
2026-02-26 17:01:55 +05:00
Andrej730
54a6fb651e
tool.ps1 - support commands with 0 args
...
No such commands atm though.
2026-02-26 17:01:55 +05:00
Andrej730
dcac336b98
tool.ps1 - refer to cecho.cmd directly, use return instead of exit 0
...
Which is useful when debugging and calling tools.ps1 directly - less thing to modify to make it work.
Also replaced `exit 0` with `return`, so it would be possible to reuse functions inside `tools.ps1`
2026-02-26 17:01:55 +05:00
Andrej730
88a5717295
build-deps.cmd - fix issue building opencollada in cmake 4
2026-02-26 17:01:55 +05:00
Andrej730
8bfceec1fd
vs-cfg.cmd - document some output vars
2026-02-26 17:01:55 +05:00
Andrej730
3807479e42
build-deps - update occt config to support cmake 4
...
And also to make it work in sync with `build-all.py`.
2026-02-26 17:01:54 +05:00
Andrej730
aebcb676f2
windows - add occt patch to support cmake 4
2026-02-26 17:01:54 +05:00
Andrej730
ba5ea08aee
Bump swig version to support cmake 4
2026-02-26 17:01:54 +05:00
Andrej730
d4ebf3f308
cmake - error if svgpp submodule is not initialized
2026-02-26 17:01:54 +05:00
Andrej730
d9e488d518
cmake format
2026-02-26 17:01:54 +05:00
Andrej730
1fb6227d13
build-deps - use other mpir fork to support VS 2026
2026-02-26 17:01:54 +05:00
Andrej730
0e90cd81b3
vs-cfg.cmd - add support for Visual Studio 18 2026
2026-02-26 17:01:53 +05:00
Andrej730
ac23c7a74b
vs-cfg.cmd - more readable error on supported versions of VS
2026-02-26 17:01:51 +05:00
Andrej730
7322082a0d
typing
2026-02-26 17:01:48 +05:00
Andrej730
0234809d0b
Prefer direct api calls over tool.Ifc.run
2026-02-26 17:01:48 +05:00
Andrej730
38381f44b9
ci-bonsai-daily - generate timestamp once for all builds
...
To avoid running in a situation when some builds are using one tag and some are using another and then unstable repo script fails to find builds for some platforms.
2026-02-26 17:01:47 +05:00
Andrej730
83fed6257e
run-cmake.bat - deduplicate cmake args code
2026-02-26 17:01:47 +05:00
Andrej730
40d43732ca
build-deps - bump proj version to avoid errors in cmake 4+
2026-02-26 17:01:47 +05:00
Andrej730
521c8eae0d
run-cmake.bat - document USE_NINJA env var
2026-02-26 17:01:47 +05:00
Andrej730
5aa7ba6be6
IfcConvert - fix Windows builds stuck on 0.8.0 version
2026-02-26 17:01:47 +05:00
Thomas Krijnen
e3464b395e
--recursion-limit option in validate.py
2026-02-26 12:38:36 +01:00
Thomas Krijnen
9ab9da2ca8
Update black exclude dirs
2026-02-26 12:36:17 +01:00
Thomas Krijnen
077a0c3755
Run black on express/
2026-02-26 12:36:01 +01:00
Thomas Krijnen
18527a78e1
rule_executor.py don't log RecursionError as error
2026-02-26 12:35:40 +01:00
falken10vdl
0be348707c
Update scale_font_size method to accept a None parameter so it is cleaner the calls from the rest of the code base
2026-02-25 13:28:58 -03:00
falken10vdl
1b784e22af
Add decorator font scale property addon setting
2026-02-25 13:28:58 -03:00
falken10vdl
c0857c715a
Refactor scale_font_size to improve DPI and pixel size handling for better font scaling
2026-02-25 13:28:58 -03:00
falken10vdl
ecaea5f776
refactor scale_font_size as per developers feedback
2026-02-25 13:28:58 -03:00
falken10vdl
dde6e2d62b
black
2026-02-25 13:28:58 -03:00
falken10vdl
8df4b2cd56
Scale font size in PolylineDecorator and BoundingBoxDecorator based on Blender's UI preferences
2026-02-25 13:28:58 -03:00
Richard Brice
ece7d6b97f
Fixes example in documentation
2026-02-25 14:21:10 +01:00
Thomas Krijnen
2d7a556dd5
Fix sectioned solid cap #7674
2026-02-24 11:26:18 +01:00
Dion Moult
dcc25038f9
Fix #7646 . Bug with layer thumbnail orientation.
2026-02-24 10:03:33 +11:00
Dion Moult
0d382119dd
Fix docs table for selector syntax
2026-02-24 09:53:57 +11:00
Dion Moult
41afaaec0d
Revert "Fix #7681 : Fix isolate_objects ignoring hide_select/hide_viewport ( #7710 )"
...
This reverts commit 7d8c7a2c3d .
2026-02-24 09:53:28 +11:00
Dion Moult
f69ea82789
Revert "Fix #7646 : Fix layer thumbnail orientation for IFC types"
...
This reverts commit 514cbb49cc .
2026-02-24 09:53:27 +11:00
Dion Moult
2f5c71588e
Revert "Table was not rendering correctly."
...
This reverts commit 9ff4a7f0e0 .
2026-02-24 09:53:24 +11:00
Ryan Schultz
7d8c7a2c3d
Fix #7681 : Fix isolate_objects ignoring hide_select/hide_viewport ( #7710 )
...
Objects with hide_select=True could not be selected during
isolation, causing hide_view_set to incorrectly hide them.
Objects with hide_viewport=True had their H-key hide state
modified as a side effect of hide_view_clear/hide_view_set.
Both are now left unaffected by bim.activate_drawing.
Generated with the assistance of an AI coding tool.
2026-02-23 07:09:18 -06:00
Ryan Schultz
514cbb49cc
Fix #7646 : Fix layer thumbnail orientation for IFC types
...
Use EPset_Parametric.LayerSetDirection exclusively to
determine horizontal vs vertical layer rendering in type
thumbnails, rather than hardcoding IfcSlabType checks.
Also fix line drawing to use the is_horizontal flag
consistently.
Generated with the assistance of an AI coding tool.
2026-02-22 17:46:10 -06:00
Ryan Schultz
9ff4a7f0e0
Table was not rendering correctly.
...
Fix Sphinx docs: replace csv-table with list-table for formatting functions
The documentation table of formatting/query functions was not rendering
because `.. csv-table::` requires strict RFC4180 CSV escaping. The table
contains nested quotes, inch marks (e.g. `3' - 0"`), backticks, and code
examples, which cause the CSV parser in docutils to treat rows as malformed
and drop the entire directive.
Replaced the directive with `.. list-table::`, which parses reStructuredText
instead of CSV and safely supports inline code, quotes, and multi-line cells.
Also moved the examples text outside the directive block and ensured a blank
line after the table so Sphinx does not interpret following paragraphs as
table rows.
No content changes — documentation now renders correctly.
Generated with the assistance of an AI coding tool.
2026-02-22 15:10:29 -06:00
dependabot[bot]
8afe05601e
Bump tar from 7.5.7 to 7.5.9 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.7 to 7.5.9.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.9 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-20 08:56:50 +11:00
falken10vdl
1751c36c67
AddReferenceImage: implement option to show texture in solid mode ( #7689 )
2026-02-19 21:02:57 +11:00
falken10vdl
d4388ec76d
AddReferenceImage: fix regression with IFC2X3 support, refactor to no longer depend on add_representation or update_representation, remove legacy style updating functionality
...
* Enhance AddReferenceImage operator to use file browser instead of independent popup dialogue
* Fix dimensions assertion in TestAddReferenceImage
* Remove error in return in _execute (it is not execute)
* Add IFC2X3 support to AddReferenceImage
* Adde unit="LENGTH" to the x/y properties (every length dimension everywhere in the UI is in project length units. No need to say it explicitly)
* Manually create the texture always, not just for IFC2X3
* Add poll method to AddReferenceImage operator to check for loaded IFC project
* Refactor AddReferenceImage to add representation manually following pattern in root/operator.py's bim.add_element
* Improve File explorer options between new and select from existing project Ifc Reference Images
* Refactor get_existing_reference_images to use selector for filtering image annotations
* No extra args needed after should_add_representation is False
* Doing clean=True deletes everything
* Don't manually add geometry and materials, don't call bpy.ops. Only create IFC data, then use preexisting loading functions to create geometry.
* Black formatting, also now we can start to remove this operator as it becomes obsolete
* Consolidate duplicate UV generation into Loader.load_generated_uv_map
Replace 3 identical XY-UV baking blocks (create_object IMAGE,
bm_add_image_plane, ImageScalingTool) with a single reusable
classmethod in tool.Loader.
* Fix IFC4 texture display in Solid viewport Texture mode
IFC4 IfcTextureCoordinateGenerator Mode=COORD is used, load_texture_maps
falls back to load_generated_uv_map to bake XY-UV data onto the mesh.
* Fix IFC2X3 texture display
* This looks wrong
* Remove legacy override image feature, because we now have a proper styles and texture manager
* Remove legacy override existing image element, because we now have a dedicated styles texture manager
* Remove unnecessary roundtrip to bmesh and mesh
---------
Co-authored-by: Dion Moult <dion@thinkmoult.com >
2026-02-19 11:56:10 +11:00
falken10vdl
7141f2cf90
Fixes to PR7607 (Linked IFC Projects): Wireframe toggle. More permisive to get has_transformation = False. Show enable_editing_link if link is loaded
2026-02-19 10:53:01 +11:00
Sebastian Schilling
418d410b5c
moved change of bsdd baseurl change to addon settings
2026-02-18 09:11:25 +11:00
Sebastian Schilling
a5461c0748
buildingSMART Data Dictionary module: added textfield to change data dictionary url
2026-02-18 09:11:25 +11:00
Bruno Postle
291e815770
Add AGENTS.md contributor guide
...
Guidelines for external contributors using AI coding tools,
covering licensing, AI disclosure requirements, PR scope,
commit style, code formatting, and testing expectations.
Generated with the assistance of an AI coding tool.
2026-02-18 09:09:46 +11:00
Dion Moult
ed500d58ba
For consistency, maxfail=1 for module tool tests
2026-02-17 18:16:33 +11:00
Dion Moult
8023a992da
Fix tests where panel name and tab panel name is identical
...
For now probably just easier to skip tabs. They are just containers and
not worth testing. Famous last words :)
2026-02-17 18:16:20 +11:00
Dion Moult
fcc80ad14a
Simplify add reference image size implementation and fix segfaulting tests
...
Previously, there was a dance between invoke, execute, and draw. This
can probably be resolved, but is a high-risk for undo bugs. This
simplifies the logic flow to just a traditional _invoke -> _execute.
I add a new feature test to at least make sure it does something, and
this also fixes the segfault in tool tests as it no longer requires the
launching of the file browser.
2026-02-17 18:11:13 +11:00
José Aliste
c6b14d1474
Fixes snap angle.
...
In my previous commit, I mistakenly believed that there was an API change from
snap_angle_increment to snap_angle_increment_3d
But since the feature was introduced in blender 4.2 the setting is called
snap_angle_increment_3d.
2026-02-17 13:39:03 +11:00
Dion Moult
37fe0ad993
Reimplement adding multiple references / schedules cf5ffad9af
...
Previously it was implemented inline. This now implements it as a
tool.Blender function with tests. Also the previous tests didn't
actually run and weren't actually testing any tools despite being in a
tool tests.
2026-02-17 11:18:24 +11:00
Dion Moult
e20e286168
Revert "feat(drawing): support multiple file selection in Add Reference"
...
This reverts commit cf5ffad9af .
2026-02-16 18:25:54 +11:00
Dion Moult
8c0bed0c61
Stub open command so running tests doesn't keep on launching apps
2026-02-16 18:24:37 +11:00
Dion Moult
8cfb162851
Fix #7656 . Regression in text editing where leaders were accidentally removed. Added tests.
2026-02-16 17:57:09 +11:00
dependabot[bot]
379c74b31f
Bump ruff from 0.15.0 to 0.15.1
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.15.0 to 0.15.1.
- [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.15.0...0.15.1 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-16 14:57:13 +11:00
Dion Moult
1d1f158fe2
Remove no longer relevant invoke code for linking IFCs
2026-02-16 08:23:35 +11:00
Richard Brice
65d5df7801
IfcAxis2PlacementLinear mapping used with IfcSectionedSurface and IfcSectionedSolidHorizontal
...
IfcSectionedSurface and IfcSectionedSolidHorizontal both of CrossSectionPositions attributes which are lists of IfcAxis2PlacementLinear. The implementation of each class used its own bespoke mapping of IfcAxis2PlacementLinear, which were identical to each other and slightly different than IfcAxis2PlacementLinear. Now the two sectioned classes use the one and only mapping for IfcAxis2PlacementLinear
2026-02-15 11:16:07 -08:00
falken10vdl
b246998f68
Linked IFC projects enhancement (multiple links to same project file) ( #7607 )
...
* Linked IFC projects enhancement (multiple links to same project file)
- Implement link management system using UUIDs as identifiers to support multiple links to the same IFC file
- Add georeferencing compatibility detection and UI display (NONE, NOT_COMPATIBLE, PARTIAL_COMPATIBLE, FULL_COMPATIBLE)
- Support for duplicate link creation with Shift+D shortcut and automatic position offset
- Add false origin and project north calculation from 3D cursor for MANUAL mode
- Only store one cache per file, regardless of the amount of links
- Prevent duplicate links based on filepath and position comparison
- Improve error handling for missing files and loading failures
- Update tests
* Remove duplicate georef UI
I try to avoid duplicate UI (especially for one that can be as
sophisticated as georef - e.g. missing is WCS) as it means double the
code, double the tests, potential user confusion. BTW the note about
vertical datum isn't quite accurate as it may be included in the CRS
definition so vertical datum is optional.
* Remove depsgraph_update_post handler for update_link_ui_on_transform as per core developer feedback
* Move get_projected_crs to geolocation module
* Refactor get_projected_crs to simplify as per core developer feedback
* Remove unused import of bonsai.tool from project module
* Use IfcDocumentInformation per linked file and IfcDocumentReference for locaiton information
* Refactor SaveBlendMetadataFile operator to remove try-except blocks and remove linked projects collections since they are recreated by bonsai
* Cleanup removing empty collection instances for linked models in metadata.blend file and call determine_georeferencing_compatibility on link reload
* Add locking mechanism for linked models and update UI to reflect lock status
* Update logic that track IFC to execute_ifc_duplicate_operator instead of having it in execute() which does not track IFC undo/redo
* Refactor link handling to use get_link_empty_handle and set_link_empty_handle methods which in turn use the standard blender-ifc integrations patters (tool.Ifc.get_object(doc_reference) and tool.Ifc.link(doc_reference, empty_handle)
* remove operator.DuplicateLink and move it to tool.Project.duplicate_link()
* Refactor link handling to use sequential identifiers (no need for STEP ID DocRef)
* Refactor IFC linking logic to handle cases without a parent IFC file loaded. Firts link flase origin becomes parent origin
* Lock should not affect selection.
This makes it consistent with grid / spatial lock, and also toggle
selectability is already implemented.
* Remove unnecessary check for loaded library as Blender seems to do this internally already
* Rename util to get_crs because in IFC4X3 you can also have geographic CRS not just projected
* Remove unnecessary call to determine_georeferencing_compatibility
This function is already always called prior to calculate_link_position
so shouldn't be called here. It's also a very expensive function: as it
currently stands, just to link a single IFC, ifcopenshell.open() is
called 3 times. This reduces it to 2.
* Store CRS as metadata for linked models, and compare metadata when indicating georeferencing compatibility
Previously, to check georeferencing compatibility, ifcopenshell.open()
was used. When linking large models, this adds considerable time and
memory usage. This instead captures the georef as standard metadata in
our .cache.json. This now reduces the ifcopenshell.open() calls back
down to only 1 as necessary (see previous commit).
* Use link index instead of link name to fetch link collection item
Link name runs into issues with name uniqueness. This is why you created
a function for "get next link ID". After this refactoring, we can no
longer worry about uniqueness and that function may be removed.
* Simplify reloadlink into just unload and reload (with cache disabled)
This function should not be responsible for editing any data.
* Remove unnecessary get_next_link_id as names no longer need uniqueness
This now frees up the name variable to track a more meaningful, human
name like IfcDocumentInformation's Name attribute.
* Rewrite get / set link_empty_handle to just use the link directly
This prevents needless logic to fetch the link and also removes issues
related to duplicate names.
* Temporarily remove logic in prop callback
Right now, pretty much all the logic is done in a prop callback. In
general logic in prop callbacks should be minimised, since it's hard to
test and easily triggered as a domino effect of another change, and may
also impact undo/redo.
* Remove code that unnecessarily removes cache
This code removes cache, which means any project unlinking an IFC auto
clears the cache for any other project which doesn't make sense, and
also breaks the ability to readd it quickly.
* Rewrite link, unlink, load, and unload IFC
There were a few issues tackled here:
- Operators that change any IFC data must use tool.Ifc.Operator and
_execute, otherwise undo/redo will break. That's one of the risks of
using prop callbacks, as it is not explicit when an IFC edit happens.
- The usage of IfcDocumentReference was not correct. The Location
should store the URL, _not_ the position. The position should be in the
Identification attribute.
- The URL was stored in IfcDocumentInformation location, which does not
work in IFC2X3. There are a few changes here to make it IFC2X3
compatible.
- Generally move logic in operators, not prop callback.
* Remove restriction around manual mode.
Users should be able to use manual mode if they want.
* Restore AUTOMATIC mode to identical behaviour to file open
This is the first step to reusing cache files agnostic of the host.
* Revert tests for a fresh start for updating tests
* Revert "test_feature - clean up .ifc.cache. files after test was executed"
This reverts commit 99ae768ddf .
* Update tests and reimplement calculations for matrix of empty handle
Previously, the empty would always be placed at the origin, unless a
"position" offset was present. This is a problem, because the "position"
is simply a local offset relative to the Blender cache! If the cache was
regenerated, the offsets would be outdated. Also, the cache appeared in
different locations depending on the false origin mode, so the offset
would mean different things to different people.
Instead, a more robust method is:
1. When you link a file, a Blender cache is generated. The Blender
origin of this cache is arbitrary! It depends on the user's false origin
mode and is purely a Blender session specific thing.
2. When you load a link, a link is _always_ loaded into the correct
location with regards to IFC global coordinates. All math is done from
the perspective of IFC.
3. If you choose to transform (move / rotate / scale!?) this link from
its correct location, that gets recorded as a 4x4 transformation matrix.
Note: I haven't implemented this properly yet.
Tests all pass, with a minor modification to the new behaviour that
false origin mode now won't affect the location it ends up in, only the
generation of the cache.
* Remove arbitrary convention around display name
Not needed anymore now that A/M/D is a detail and not significant on
actual coordinates, and also that the UUID is no longer needed.
* Simplify implementation of loading linked models when opening an IFC
* Move link matrix calculation from operator to tool for reuse
* Implement editing link location and calculation of transformation matrix
I changed my mind on the is_locked thing, since it isn't clear to the
user that locking need to be done to save changes.
* Remove old is_locked, prop update callback no longer needed (dedicated operator instead), remove old calculation code
* Simplify code related to placed_as_per_georef
* For now, simple skip for duplicate / delete
IMO duplicate / delete / move a link are very rare and explicit
operations.
* Update tests
* Remove host_model coordinate data as cache is no longer host model dependent
* Move icons outside list because there are too many
* Minor tweaks
---------
Co-authored-by: Dion Moult <dionmoult@gmail.com >
Co-authored-by: Dion Moult <dion@thinkmoult.com >
2026-02-15 19:28:43 +11:00
Ryan Schultz
a88c5938dc
typos
2026-02-14 12:18:29 -06:00
Thomas Krijnen
7978f1fb08
Fix compilation on gcc #7666
2026-02-13 10:17:28 +01:00
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 >
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 >
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.
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.
2026-02-06 16:12:14 +11:00
Richard Brice
2692341d3a
Fixes typo
2026-02-05 15:10:33 -08:00
Richard Brice
a54b21b838
Fixes documentation and adds test for expected type
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
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'.
```
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.
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.
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.
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
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
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'
2026-01-30 20:07:04 +00:00
Andrej730
6409f41cdf
Bonsai Makefile - sort of simplify pyversion check
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
Andrej730
e8a4590d0a
Bonsai Makefile - error for missing PYVERSION
2026-01-30 16:05:26 +05:00
Andrej730
38f9f309e7
Bonsai Makefile - enable Python 3.13 build
2026-01-30 16:05:26 +05:00
Andrej730
47ac909a81
ruff - sort imports
2026-01-30 16:05:26 +05:00
Andrej730
6a63c651d3
black .
2026-01-30 16:05:26 +05:00
falken10vdl
2727bec929
Reorder representation_template to improve clarity and organization as per user feedback
2026-01-30 10:24:53 +01:00
dependabot[bot]
22f91e11b3
Bump tar from 7.5.6 to 7.5.7 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.6 to 7.5.7.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.6...v7.5.7 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.7
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-30 17:57:12 +11:00
Dion Moult
398cd7571e
Add array feature tests
...
I'm thinking of moving array into its own module. The "model" module is
getting a bit full and it'll only grow bigger in the future.
2026-01-30 17:32:30 +11:00
Dion Moult
83d97d7e95
Fix #7616 . Make regenerate array an operator instead of an array preference
...
Sync children was a bit odd because it's not actually an "array
parameter" per se, just a way to regenerate. It's now an operator.
There was a deeper issue I encountered where the way arrays work is that
they duplicate the parent element. (first encountered in e51d2d )
However, the duplication code has special array handling too. To avoid
issues with this cyclical coupling the previous solution was to
reimplement object duplication (with all sorts of pitfalls that has).
Now, I've tried to decouple it further by clearing all array psets prior
to any change, and readding the pset after everything has been
regenerated.
This can be improved upon but I don't feel confident until there is more
comprehensive test coverage for the duplicate operator.
2026-01-30 17:18:02 +11:00
falken10vdl
e47694458f
Add support for FLOW_SEGMENT_U_SHAPE in the AddElement operator
2026-01-29 23:21:14 +01:00
falken10vdl
98a3b2b132
Merge remote-tracking branch 'upstream/v0.8.0' into MEP-Segment-tool-add-rectangular-hollow-profile
2026-01-29 13:17:53 +01:00
falken10vdl
d06f5a6cb9
Add thickness dimension to profile name
2026-01-29 13:12:47 +01:00
falken10vdl
966751a928
Add support for FLOW_SEGMENT_RECTANGULAR_HOLLOW in profile creation in the MEP Segment Tool
2026-01-29 13:10:54 +01:00
Dion Moult
c1aa1dedba
Fix #7615 . Forgot a line when refactoring type geometry regeneration. Added test.
2026-01-29 19:33:44 +11:00
Dion Moult
cc995db98b
Minor fix to 46a6356 to use the collector tool
...
This has a few advantages:
- The collection logic is centralised
- The collection logic is configurable based on the collection mode
- The name is not hardcoded
2026-01-29 19:12:02 +11:00
Ryan Schultz
0e8c98a7bb
Fix: Handle emoji encoding error in dev_environment.py
...
Prevents UnicodeEncodeError on Windows when displaying success message.
2026-01-28 18:34:14 -06:00
Dion Moult
5ce6d927f3
Revert "fix #7537 - Layer thickness correct when slab is rotated and few other features... "
...
This reverts commit 7f87f1fb89 .
2026-01-28 23:39:45 +11:00
Dion Moult
34303c2cfe
Revert "fix to https://github.com/IfcOpenShell/IfcOpenShell/commit/7f87f1fb89fb001320223a4d85e6267f342bf13c : have rotation around the object's origin, not the world origin"
...
This reverts commit 249e68f163 .
2026-01-28 23:28:14 +11:00
Dion Moult
6cfb6d74fe
Revert "fix #7559 : DirectionSense works again."
...
This reverts commit d79524b087 .
2026-01-28 23:25:35 +11:00
Dion Moult
e76c2a70e6
Add tests for aggregate containment changing
2026-01-28 23:18:57 +11:00
Dion Moult
53e5f84730
Fix failing core unit tests
2026-01-28 21:49:25 +11:00
Dion Moult
bcff5c7449
Remove unused tool
2026-01-28 21:49:13 +11:00
Dion Moult
6f78d60c9f
Minor fix for tests to prevent ambiguous labeling
2026-01-28 21:22:19 +11:00
Dion Moult
ff35666ad9
Reimplement feature to reassign inherited containers if you select a child element
...
This reimplements @theoryshaw 's commit 9adbd4 but has a few upgrades:
- Considers all parent / child relationships, not just aggregates
- Puts business logic in core where it belongs and tool code in tool
- Uses existing utils where possible like get_decomposition
- Does not use name based collection checking which is fragile
- Reuses tool.Collector
- Makes container assignment handle the API's capability to do things
in bulk instead of one by one in a loop, so it's faster
- Tests
2026-01-28 18:00:04 +11:00
Dion Moult
79fa47fc2f
Allow specifying MODULE in make test-core for convenience
2026-01-28 17:49:31 +11:00
Dion Moult
35ae1e927d
Fix missing model prophet in core test bootstrap
2026-01-28 17:49:15 +11:00
Dion Moult
24a58cba40
Remove functionality to unlink from non-IFC collections
...
This is a cool idea, but users have all sorts of Blender collection
strategies and I think it's a good idea for Bonsai code to just touch
Bonsai's stuff and leave everything else. Separate functionality can be
built for non-Bonsai workflows and preferrably in a more discoverable
way than in individual Bonsai features.
2026-01-28 09:14:40 +11:00
falken10vdl
8a32d7bea0
Add EstablishPathDirection operator and update UI to integrate it
2026-01-27 18:05:19 +01:00
Dion Moult
bbf8fc2b64
Revert "feat: auto-assign containers to root aggregates and organize parts in outliner"
...
This reverts commit 9adbd47181 .
2026-01-27 19:27:34 +11:00
Dion Moult
2a60f46516
Refactor parse_distance_string into tool classmethod and add tests including e9eca5e behaviour
2026-01-27 19:13:43 +11:00
Dion Moult
6ad9949571
Update tests based on new simpler unit settings code
2026-01-27 19:12:43 +11:00
Dion Moult
e41df68124
Reintroduce public API for IfcTester after ruff purge 72f8218fcd
2026-01-27 15:57:47 +11:00
Ryan Schultz
de6f6cc8b2
Skip incompatible objects instead of failing IFC join operation
...
When joining objects with mismatched representation types, deselect and
skip incompatible objects rather than canceling the entire operation.
This allows users to join compatible objects even when the selection
includes incompatible ones.
2026-01-26 19:53:41 -06:00
falken10vdl
fed98451d4
connect the ports when creating several conected IfcFlowSegment with polyline
2026-01-27 01:32:06 +01:00
Dion Moult
44a52863a2
Fix #3764 . WARNING: Preserve material usage attributes when switching types and refactor type regeneration API listeners
...
This is a dangerous commit because the effect of refactoring of the listeners is hard to know.
2026-01-26 23:30:39 +11:00
Esteban Dugueperoux
f725e05655
Merge pull request #7486 from EstebanDugueperoux2/TestAllExamples
...
cmake: Try to build and run others examples
2026-01-26 13:20:21 +01:00
Andrej730
953c5fddc6
bonsai - sort imports
2026-01-26 17:13:18 +05:00
Andrej730
1319391a6b
ci-bonsai-daily - enable Python 3.13 build
...
Since it's coming in Blender 5.1 which is soon to go Beta (at 4 Feb).
2026-01-26 17:10:04 +05:00
Andrej730
bc675ef9b2
cmake_uninstall - fix always skipped if-block condition
2026-01-26 17:10:03 +05:00
Andrej730
c6766cefb7
cmake_uninstall - speed up the process and fix cmake warnings
2026-01-26 17:10:03 +05:00
Andrej730
c4c1e2ebf9
cmake_uninstall - simplify by using common variable
2026-01-26 17:10:03 +05:00
Andrej730
dbb4e91d55
apply cmake file formatting
2026-01-26 17:10:03 +05:00
Andrej730
44f0a4a39b
pyproject.toml - simplify cmake formatter command
...
Since the latest gersemi version, it now respects gitignore.
2026-01-26 17:10:03 +05:00
Andrej730
6d4eb06d89
black .
2026-01-26 17:10:03 +05:00
Andrej730
72f8218fcd
ruff - check for more unused imports
2026-01-26 17:10:02 +05:00
Andrej730
4edcad13b8
fix ruff
2026-01-26 17:10:02 +05:00
Andrej730
d4d10b2eb5
ifcsverchok - polyline node
...
Demo - https://files.catbox.moe/azv66e.mp4
2026-01-26 17:10:02 +05:00
Andrej730
523bcf3443
ifcsverchok - node to convert sverchok geometry to ifc
...
Example - https://files.catbox.moe/wecgw9.mp4
2026-01-26 17:10:02 +05:00
Andrej730
b96a21350c
ifcsverchok - document value types in doc-strings
2026-01-26 17:10:02 +05:00
Andrej730
2f5bcccd2c
bim.assign_class - don't flip normals for objects with negative scale in Blender 5.1+
...
The issue was fixed upstream - https://projects.blender.org/blender/blender/issues/102266
2026-01-26 16:10:02 +05:00
Dion Moult
d62a6186b5
Demo project preset shouldn't have mass or time by default
2026-01-26 00:01:43 +11:00
Dion Moult
a6394d8628
Revert "Closes #3764 : When switching an instance to a different beam type, preserve the CardinalPoint."
...
This reverts commit 4874f7770b .
2026-01-25 20:58:29 +11:00
Dion Moult
b4caf3b2dd
Fix #7153 . Fix regression in purging types in IFC2X3 from 56861b9
2026-01-25 15:27:23 +11:00
Dion Moult
0e4f2fada1
Fix #7519 . Do not import parametrically locked item attributes.
...
The previous fix by @theoryshaw had the correct conclusion but had some
issues:
1. Don't implement anything that fetches IFC data in the UI draw calls.
This historically has lead to race conditions and crashes. The data
classes are much preferred.
2. Rather than load the inapplicable attribute then selectively omit it
in the UI, it's preferred to just never load it in the first place.
2026-01-25 14:16:35 +11:00
Dion Moult
12f8863014
Revert "Fix #7519 : Hide depth attribute in Item Mode for elements with material layer sets"
...
This reverts commit 99b162f712 .
2026-01-25 14:12:16 +11:00
Dion Moult
884661a454
See #7537 . Quick fix for regression in editing slabs. Needs further investigation.
2026-01-25 10:43:27 +11:00
Dion Moult
0d8c4c7795
Fix #7587 . See #7550 . Bug where you couldn't load or edit arrayed voids.
...
Reuse tool.Geometry.duplicate_ifc_objects because that's where all
duplication logic should stay instead of half reimplementing it every
time which introduces subtle bugs.
2026-01-24 23:03:18 +11:00
Esteban DUGUEPEROUX
8f3715c0f1
review: Take into account remarks
2026-01-24 12:09:29 +01:00
Dion Moult
cf52607528
Fix #7591 . Save pset as template now considers all psets in the file, not just the active one.
2026-01-24 14:20:02 +11:00
dependabot[bot]
7636ff3fdb
Bump ruff from 0.14.13 to 0.14.14
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.14.13 to 0.14.14.
- [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.13...0.14.14 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.14.14
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 13:47:32 +11:00
dependabot[bot]
0577dbe865
Bump black from 25.12 to 26.1.0
...
Bumps [black](https://github.com/psf/black ) from 25.12 to 26.1.0.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/25.12.0...26.1.0 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.1.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 13:45:01 +11:00
Esteban DUGUEPEROUX
a86c333a99
make: Try to build and run others examples
2026-01-23 20:49:16 +01:00
Thomas Krijnen
3983bfa467
Don't crash on passing indeterminate to instance expecting aggregates #7529
2026-01-23 14:36:06 +01:00
Thomas Krijnen
1137e7b77b
Fix rule compilation regarding indeterminate #7529
2026-01-23 14:36:06 +01:00
Dion Moult
cc542ad074
See #7503 . Add docs about geometry_library
2026-01-23 22:33:20 +11:00
Dion Moult
b41d3ae2b7
Bump IfcConvert documentation including .json and .rdb support
2026-01-23 22:32:48 +11:00
Dion Moult
5c31ae4c37
Remove preference to mass/time and make it default with simpler code
...
I generally like to minimise knobs and dials, so this is now part of the
wizard but now defaults to a "NONE" unit. You also now have the option
to choose "NONE" for area / volume units which makes things consistent.
Enum names also match the IFC lowercase convention for conversion based
units. This also simplifies the core logic and treats all units the same
way instead of special cases for each unit type. (length is still
special and required in Bonsai as we are inherently graphical)
2026-01-23 22:03:32 +11:00
Thomas Krijnen
92ad7d2ba2
Fix #7554
2026-01-23 11:54:04 +01:00
Thomas Krijnen
ad0c97a6bb
Fix #7561
2026-01-23 11:44:14 +01:00
Thomas Krijnen
3d530b1d39
No occt multi-threading since we have our own
2026-01-23 11:44:14 +01:00
Thomas Krijnen
f0308962aa
Clash: Increase robustness of processing triangulated elements - fully co-planar element #7467
2026-01-23 11:44:14 +01:00
Thomas Krijnen
9c6a8bdb90
Clash: Increase robustness of processing triangulated elements - skip empty #7467
2026-01-23 11:44:14 +01:00
Thomas Krijnen
a6a9f9d0a7
Only enable--fat on x86 in build-all.py #7458 #7556
2026-01-23 11:22:56 +01:00
Thomas Krijnen
ab3108ff59
Set GMP --enable-fat during build #7458 #7556
2026-01-23 11:16:06 +01:00
Esteban DUGUEPEROUX
128fdcb62e
fix: Add IfcGeom as a dependency of kernels target instead of the inverse
2026-01-23 10:22:16 +01:00
Esteban DUGUEPEROUX
a609bc61b9
fix: Define OPENCASCADE_LIBRARIES as expected by generic CMakeLists.txt for ifcgeom kernels
2026-01-23 10:22:16 +01:00
Esteban DUGUEPEROUX
c739b93389
fix: Have kernels targets built as library
2026-01-23 10:22:16 +01:00
Thomas Krijnen
6b7b834ac0
Don't try and solve 2d bools in cgal-simple #7503
2026-01-23 10:12:33 +01:00
Dion Moult
ac128e3395
Close #7601 . Clearer docs that there is a single mesh item.
2026-01-23 15:56:44 +11:00
Dion Moult
5dd771c5e5
Fix #7596 . Bug where IFC2X3's workspace didn't use IfcDoorStyle and IfcWindowStyle instead
2026-01-23 15:51:39 +11:00
Dion Moult
247f0c41d9
Increase default deflection tolerance to improve performance
...
This only results in a lower resolution for things like advanced brep
geometry which isn't a biggie (I'll eat my words later)
2026-01-23 15:32:04 +11:00
falken10vdl
bbda8d2aff
Merge pull request #7543 from falken10vdl/MEP-ports
...
Simplified handling of Ports in MEP
Addresses https://community.osarch.org/discussion/comment/27740#Comment_27740
2026-01-22 09:34:52 +01:00
Dion Moult
c2cc6f80be
IfcTester webapp now shows prohibited more clearly
...
- is_skipped is calculated upstream instead of reimplementing logic
- the viewer now shows cardinality (not just in edit mode) to make it
clear what the requirements are
- prohibited specs are not allowed to have any requirements, so that
section is hidden
- failed prohibited specs now shows list of failed (applicable)
entities
2026-01-22 14:36:46 +11:00
Dion Moult
4c47eb573a
Improve IDS static HTML reporter to report list of prohibited entities (they aren't passes or fails, just prohibited applicability)
2026-01-22 11:18:35 +11:00
falken10vdl
84d55d8969
cleanup
2026-01-21 20:54:20 -03:00
falken10vdl
587fc63843
Refactor PolylineDecorator to simplify label indexing and improve text spacing calculation
2026-01-21 20:54:20 -03:00
falken10vdl
3c3525f205
display angles and area/length values conditionally based on polyline points
2026-01-21 20:54:20 -03:00
falken10vdl
4da0b04162
add adjunt_overlapping_labels
2026-01-21 20:54:20 -03:00
Vincent Cadoret
a3801a0ce9
Fix UnboundLocalError in reporter.py cardinality assignment
...
The report_specification() method in the Json reporter class was raising
an UnboundLocalError when processing IDS specifications with certain
minOccurs/maxOccurs combinations that weren't explicitly handled.
Problem:
The cardinality variable was only assigned for three specific cases:
- minOccurs=1, maxOccurs="unbounded" → "required"
- minOccurs=0, maxOccurs="unbounded" → "optional"
- minOccurs=0, maxOccurs=0 → "prohibited"
However, the IDS schema allows other valid combinations such as:
- minOccurs=0, maxOccurs=1 (commonly used for optional specifications)
- minOccurs=1, maxOccurs=1 (exactly one occurrence required)
- Any other valid XML Schema cardinality values
When processing IDS files with these combinations, the cardinality
variable remained unassigned, causing an UnboundLocalError at line 382
when attempting to use it in ResultsSpecification().
Solution:
Added fallback logic to handle all valid IDS cardinality combinations:
- If minOccurs >= 1: cardinality = "required" (must occur at least once)
- Otherwise (minOccurs == 0): cardinality = "optional" (may occur)
This maintains semantic compatibility with the existing codebase, which
expects cardinality to be one of the semantic strings ("required",
"optional", "prohibited") rather than numeric ranges. This is critical
for:
- HTML template rendering (line 457: .capitalize())
- Conditional logic for skipped specs (line 454)
- UI rendering for prohibited specs (line 456)
Testing:
- Tested with IDS file containing minOccurs=0 without explicit maxOccurs
(defaults to 1 per XML Schema specification)
- Validation now completes successfully without UnboundLocalError
- HTML report generation works correctly with semantic cardinality labels
- Maintains backward compatibility with existing IDS files
Fixes: Validation failure when using valid IDS cardinality combinations
2026-01-22 10:21:45 +11:00
Christoph Mellüh
aafa1b95e8
bSDD Add new class properties and relations API Endpoints ( #7502 )
...
* black .
* add typing
* move function
* add get_class_relations
* add test for class relation
---------
Co-authored-by: Dion Moult <dionmoult@gmail.com >
2026-01-22 10:19:09 +11:00
falken10vdl
f89cf88bc0
Add use_factory_startup to src/bonsai/test/bim/test_feature.py def an_empty_blender_session()
...
This addresses https://github.com/IfcOpenShell/IfcOpenShell/issues/7590
Cheers!
2026-01-22 09:36:04 +11:00
dependabot[bot]
0cc3ce8709
Bump tar from 7.5.3 to 7.5.6 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.3 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.6 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-22 08:40:44 +11:00
Andrej730
421d454ce8
Fix missing Literal import
2026-01-21 17:39:41 +05:00
Andrej730
64865c58a5
remove debug print
2026-01-21 17:39:41 +05:00
Andrej730
784415e464
ifcsverchok bonsai integration - support editing parametric properties from UI
...
Demo - https://files.catbox.moe/extsxf.mp4
But now it requires ifcsverchok graph to be nested inside a subgroup because we need a way to indicate which graph parameters are important, so user can modify them from Parametric Geometry tab without actually explicitly opening sverchok graph.
2026-01-21 17:39:41 +05:00
Andrej730
c33969d589
ifcsverchok - correct socket type for position
2026-01-21 17:39:40 +05:00
Dion Moult
41c6eba193
IfcTester should not check requirements for prohibited specifications
2026-01-21 19:43:37 +11:00
Dion Moult
db52703ce3
Revert "Use hide_set() for IfcSpaces instead of hide_viewport"
...
This reverts commit 96fe9b5398 .
This commit contains a logical error where hide_viewport is checked in
the if statement but hide_set() is used as the effect. This causes a
regression in tests about project visibility. `hide_viewport` is the
correct hiding setting to use, because hide_set is more ephemeral and
affected by Shift-H, Alt-H etc.
2026-01-21 18:52:27 +11:00
Dion Moult
e55955b72a
See #7566 . Fix unusable lag due to dense meshes with product preview
...
Previously, when the add occurrence modal operator was executed, on
every modal loop (i.e. every mouse movement) it would fetch the mesh
geometry to be previewed, store the verts / edges / faces in mesh
collections, then the decorator would fetch that geometry, the clear the
collections, in a loop.
I've removed the Blender collections. Instead the same strategy is used
as in ItemDecorator i.e. the mesh and verts are fetched once during
decorator installation, then on each draw call only a single vertex loop
to multiply by the transformation matrix for snapping and mouse
position.
You can test with the LOD400 model in #7566 . On my machine it would
cause lag on anything with >500 faces. Now it seems to work without lag
on a 26k polygon mesh.
2026-01-21 18:11:20 +11:00
dependabot[bot]
4c1b3221ce
Bump gersemi from 0.24 to 0.25.1
...
Bumps [gersemi](https://github.com/BlankSpruce/gersemi ) from 0.24 to 0.25.1.
- [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.24.0...0.25.1 )
---
updated-dependencies:
- dependency-name: gersemi
dependency-version: 0.25.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 12:40:44 +11:00
dependabot[bot]
9e2b7ba7c8
Bump tar from 7.4.3 to 7.5.3 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.4.3 to 7.5.3.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.3 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 12:39:38 +11:00
falken10vdl
1576ade147
Merge pull request #7576 from falken10vdl/support-enum-for-search-suggestions
...
Enhance filter value suggestions to support enumerated properties in search
2026-01-18 00:13:44 +01:00
falken10vdl
db8a1b9262
Merge pull request #7575 from falken10vdl/simplify-new-filter-mode-with-just-chained-filters-with-set-operations
...
Refactor filter mode handling to simplify chained filters with set operations
2026-01-18 00:12:40 +01:00
falken10vdl
09d193045a
Enhance filter value suggestions to support enumerated properties in search
2026-01-18 00:05:07 +01:00
falken10vdl
f3295e2663
Refactor filter mode handling to simplify chained filters with set operations
2026-01-17 20:02:09 +01:00
Dion Moult
16a90cadb5
Cap product decorator at 500 triangles to prevent unresponsive UI during dense product placement
2026-01-17 17:57:07 +11:00
Dion Moult
2065d4ce78
Minor optimisation to prevent looping through all verts twice in decorator draw
2026-01-17 17:55:11 +11:00
dependabot[bot]
5cadfd693f
Bump ruff from 0.14.10 to 0.14.13
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.14.10 to 0.14.13.
- [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.10...0.14.13 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.14.13
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-17 15:39:57 +11:00
Andrej730
9d1dcf9034
external parametric geometry - integrate with ifcsverchok
...
Still very experimental, but here's a short demo - https://files.catbox.moe/u6vnhj.mp4
Sverchok graph I've used - https://files.catbox.moe/1x7b7q.png
2026-01-16 17:16:29 +05:00
Andrej730
ed38d2347c
ifcsverchok - check for unused imports
2026-01-16 17:16:29 +05:00
Andrej730
47e259ff2f
ifcsverchok - operator to apply graph to Bonsai file
2026-01-16 17:16:29 +05:00
Andrej730
413530bb0a
ifcsverchok - shape output node
2026-01-16 17:16:29 +05:00
Andrej730
a3bcea008a
util.shape - move typing stuff to TYPE_CHECKING block
2026-01-16 17:16:29 +05:00
Andrej730
d93363b9bb
ifcsverchok - specify extrusion axis
2026-01-16 17:16:29 +05:00
Andrej730
77a912c756
shape_builder.rectangle - clarify 3d size use
2026-01-16 17:16:28 +05:00
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.
2026-01-16 20:11:43 +11:00
Dion Moult
242f1aab35
Fix #7563 . Regression in normalising document URIs.
2026-01-16 10:26:23 +11:00
falken10vdl
96a0e9f72d
Adapt tests for create_port_at_cursor method
2026-01-13 10:07:10 +01:00
falken10vdl
791a41d649
cleanup and black .
2026-01-13 08:49:57 +01:00
falken10vdl
1eb2b65268
Add flow direction handling to port connection logic and UI updates
2026-01-12 12:19:13 +01:00
falken10vdl
e5ccd26762
Update port UI to indicate disconnection status more clearly
2026-01-11 14:46:17 +01:00
falken10vdl
0243519a68
Refactor port connection logic and UI integration for improved usability
2026-01-11 14:22:58 +01:00
falken10vdl
7ef11361b0
Update flow direction icons for ports in UI
2026-01-10 10:12:25 +01:00
falken10vdl
dfbaa6ac8e
Reset related_port_object to None after connecting ports
2026-01-09 17:39:42 +01:00
falken10vdl
c41496a9c3
import IfcDistributionPorts with assets when executing append_library_element and for type products, use the type product's collection, not the container
2026-01-09 17:11:02 +01:00
falken10vdl
ed7ae0da9c
Enhance show_ports (also shows ports of connected objects) and refine UI layout
2026-01-09 13:18:01 +01:00
falken10vdl
4463235728
Remove ShowPortFlowError operator and update flow direction handling for connected ports
2026-01-09 08:43:46 +01:00
falken10vdl
628a76e487
Simplified handling of Ports in MEP
2026-01-09 02:02:43 +01:00