Bruno Postle
d8e9ae39a2
README: add missing tools (ifc_new, ifc_reset, ifc_contexts, ifc_materials, ifc_plot, ifc_render, ifc_shape_*); fix mcp dependency note; add readme to pyproject.toml
2026-03-23 23:41:50 +00:00
Bruno Postle
9fd4c5a6a8
Add ifcmcp MCP server for IFC model querying and editing
2026-03-23 23:23:49 +00:00
Bruno Postle
8b8f78095d
geometry_creation.rst: add sections for assemblies, clipping normals, openings ( #7844 )
...
Generated with the assistance of an AI coding tool.
2026-03-23 23:02:15 +00:00
Bruno Postle
23ba9e4db0
Add geometry.clip_solid, clip_solid_bounded, and copy_representation APIs ( #7843 )
...
* Add geometry.clip_solid API
* Add geometry.clip_solid_bounded API
* Add geometry.copy_representation API
Deep-copies the named representation from a source element to a target
element.
Generated with the assistance of an AI coding tool.
2026-03-23 23:00:12 +00:00
Bruno Postle
1aec991f08
api: docstring improvements across geometry, sequence, and feature modules ( #7842 )
...
* Doc clarification for api.sequence.assign_process
* Doc clarification for api.geometry.edit_object_placement
* Doc clarification for api.feature.remove_feature
* Doc clarification for api.geometry.add_wall_representation clippings normal
* regenerate_wall_representation: document BBIM_Boolean preservation requirement
Generated with the assistance of an AI coding tool.
2026-03-23 22:57:28 +00:00
Bruno Postle
bddf9b85f8
shape_builder: complete docstrings and return type annotations ( #7841 )
...
* shape_builder: complete docstrings and return type annotations
* shape_builder: warn about mixed item types in get_representation
* shape_builder: fix half_space_solid agreement_flag docstring
Generated with the assistance of an AI coding tool.
2026-03-23 22:54:55 +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