Commit Graph

18224 Commits

Author SHA1 Message Date
Andrej730 44e5f89119 ruff 0.12 - ignore UP045
Kind of acts the same as UP007 asking to convert all Optional[xxx] to X | None
2025-06-18 19:12:10 +05:00
Andrej730 c68b0c7280 typing 2025-06-18 19:12:10 +05:00
Andrej730 8c5affaae6 linter github workflow - use uv for acquiring black 2025-06-18 19:12:09 +05:00
Andrej730 bd4b80bdc2 linter github workflow - use correct minimum required versions
Previously it was using Python 3.12 for everything, therefore syntax errors from Python 3.9 (e.g. `match` statement in ifcopenshell-python) went under the radar.
2025-06-18 19:12:09 +05:00
Andrej730 21f5363c74 Bonsai - cache get_user and get_application for a speed-up bonsai-0.8.3-alpha2506171347 2025-06-17 18:44:32 +05:00
Andrej730 71d469a271 Bonsai - use main version part to avoid creating too many IfcApplications 2025-06-17 18:41:20 +05:00
Andrej730 96bdda305e Bonsai - purge unused IfcApplications and IfcOrganizations 2025-06-17 18:41:20 +05:00
Andrej730 1063238479 Bonsai - merge identical IfcOrganizations, IfcApplications
Added an utility to merge organizations and application that have exactly the same data. Noticed working with different files that sometimes they have these data duplicated - I guess reasons vary (revit exporter, our bug - c58b84d), but it's nice to be able to clean up redundant data.
Though still need to add some UI to change IfcApplications, so user could also get rid of them in case if they have small differences.

Feature location - https://files.catbox.moe/pwymx1.png

@theoryshaw in file from #6784 there were 2481 identical organizations and 1234 identical applications 😅
2025-06-17 18:41:20 +05:00
Andrej730 d1337cff02 Refresh applications UI on changes (bd1871bd4) 2025-06-17 18:41:19 +05:00
Andrej730 f26f2780e9 owner.ui - check props explicitly instead of relying on ifc data update 2025-06-17 18:41:19 +05:00
Andrej730 2e3c733c0d IfcParseWrapper - exclude instances_by_reference
As it does exactly the same as get_inverse()
2025-06-17 18:41:19 +05:00
Andrej730 ff09cd0a56 IfcParseWrapper - instance_by_guid -> by_guid
It seems they have exactly the same signatures and it makes sense to just rename instance_by_guid to by_guid, instead of implementing it separately.
2025-06-17 18:41:19 +05:00
Andrej730 df91f475c1 entity_instance constructor - skip setting None value 2025-06-17 18:41:19 +05:00
Andrej730 a733f36576 CMake - set C++17 as the minimum required version (34676a567)
Currently IfcOpenShell doesn't compile for C++14 (it stumbles upon `invoke_result_t` in XmlSerializer.cpp) and I'm not sure if it's needed.
2025-06-17 18:41:18 +05:00
Andrej730 9282ccabb3 typing 2025-06-17 18:41:18 +05:00
Thomas Krijnen 404c39873d Update WASM example app 2025-06-17 11:50:02 +02:00
Thomas Krijnen 34a1bc6f04 WASM build changes #6794 2025-06-16 21:18:14 +02:00
Andrej730 15112211c1 add_application not to add deprecated IfcTelecomAddress in ifc4x3 #6806 bonsai-0.8.3-alpha2506161457 2025-06-16 19:57:00 +05:00
Andrej730 e3bbec6394 entity_instance constructor and destructor micro optimizations 2025-06-16 19:55:25 +05:00
Andrej730 bd1871bd44 Basic IfcApplications UI
Just so you can view IfcApplications in the project from UI

Example - https://files.catbox.moe/15a72n.png
2025-06-16 19:55:25 +05:00
Andrej730 a75f6a5804 typing 2025-06-16 19:55:25 +05:00
Andrej730 a12bb343ca Fix RUF015 (next() instead of list comprehensions[0])
https://docs.astral.sh/ruff/rules/-iterable-allocation-for-first-element/
2025-06-16 19:55:25 +05:00
Thomas Krijnen b486b32c8d WASM build changes 2025-06-14 18:05:29 +02:00
Thomas Krijnen 5e7893dbb3 Update build-all.py 2025-06-14 15:38:28 +02:00
Thomas Krijnen c8d74a560c Nix build retry downloads 2025-06-13 18:15:23 +02:00
Andrej730 9b8357c5ec entity_instance.__hash__ - reuse id() value for optimization bonsai-0.8.3-alpha2506131434 2025-06-13 19:33:30 +05:00
Andrej730 67b539aba1 remove_representation - optimization
In some cases remove_representation got 2x times faster (when there were a lot representation items that are not IfcTessellatedFaceSets).

getattr with attribute that might not be present on the element could be much slower then checking it's class explicitly.
2025-06-13 19:33:29 +05:00
Andrej730 176c5cc0fb typing 2025-06-13 19:33:29 +05:00
Thomas Krijnen 152c94a7d6 Update cgal for compilation on clang 19 https://github.com/CGAL/cgal/pull/8330 2025-06-13 16:06:08 +02:00
Thomas Krijnen 4b92d7d076 cgal: Dont proceed when not valid after triangulation #6735 2025-06-13 13:33:42 +02:00
Cristian Ritter d10c176bb6 re-adding u32string if ASCII instead of use only Boost.Locale 2025-06-13 10:39:59 +02:00
Bruno Postle 3503d41b3f Minor fix for the CMake package_source target 2025-06-13 09:11:09 +01:00
Esteban DUGUEPEROUX 34676a567e #6803: Update IfcOffsetCurveByDistance to be compitable on Windows with MSVC and C++20
In addition add option to be able to build IfcOpenShell against other C++ standard than C++17
2025-06-13 09:43:13 +02:00
Thomas Krijnen f5a46ffb7c pyodide: try 0.28.0a3 2025-06-12 20:48:52 +02:00
Cristian Ritter 94452b4a7a change deprecated wstring_convert to Boost.Locale and fix #6779 issue bonsai-0.8.3-alpha2506121408 2025-06-12 08:52:38 +02:00
Thomas Krijnen 2c0b1691ae -lexceptions.js #6794 2025-06-11 16:45:06 +02:00
Andrej 60c71c145b IfcFile::inverse_attr_record - add a note bonsai-0.8.3-alpha2506111440 2025-06-11 19:39:46 +05:00
Andrej d0f4dd00c7 getInverse -> get_inverses_by_declaration
Similar to getTotalInverses rename, to prevent confusing with get_inverse.
2025-06-11 19:39:46 +05:00
Andrej eee94f53a4 get_inverse, get_inverse_indices, get_total_inverses - prevent possible crashes
When passing entity without an id (e.g. IfcBaseType)
2025-06-11 19:39:46 +05:00
Andrej 6bb028696d getTotalInverses -> get_total_inverses_by_id
Rename method to avoid confusion with get_total_inverses
2025-06-11 19:39:46 +05:00
Andrej 3499c50d7d entity_instance.__getattr__ - small optimization for inverse attrs
Stop iterating early and don't build a list to make it a bit more optimized.

Though I'm unsure if anyone is really using `unpack_non_aggregate_inverses`
2025-06-11 19:39:46 +05:00
Andrej cd952d7e54 typing 2025-06-11 19:38:24 +05:00
Thomas Krijnen 2741acf4fe Fix compilation 2025-06-11 10:39:02 +02:00
Thomas Krijnen 69b6c41791 Use u32string throughout in character decoder 2025-06-10 20:33:21 +02:00
myoualid d1306d7a27 pyodide fatal error example #6794 2025-06-10 19:31:09 +01:00
Andrej 2bb373c1b2 bim.remove_representation - show operator time if it took more than 10 sec #6784 bonsai-0.8.3-alpha2506101357 bonsai-0.8.3-alpha2506101356 2025-06-10 18:54:37 +05:00
Andrej b4bc7ec371 remove_deep2 optimization for cases when the same entity is referenced by multiple other in the subgraph #6784 2025-06-10 18:54:37 +05:00
Andrej 1fecd77121 Fix a typo 2025-06-10 18:54:37 +05:00
Andrej c9b41a1499 Warning for joining non-mesh-like representation items #6793 2025-06-10 18:54:36 +05:00
Andrej b1ae213349 Fix bim.unassign_structural_load_case (redundant argument) 2025-06-10 18:54:36 +05:00