Thomas Krijnen
e42acdfa86
ifcquery plot subcommand
2026-03-01 21:01:09 +01:00
Bruno Postle
1801a768c1
Fix clipping when generating a wall
2026-03-01 17:07:50 +00:00
Bruno Postle
66f0b71c65
Add ifcmcp ifc_render tool and ifcquery render subcommand
...
Renders IFC model geometry to a PNG image using pyvista (off_screen).
ifcquery CLI:
ifcquery <file> render [-o out.png] [--selector QUERY]
[--element ID[,ID...]] [--view iso|top|south|north|east|west]
ifcmcp MCP tool:
ifc_render(selector, element_ids, view) -> list[ImageContent]
Returns base64-encoded PNG as an MCP ImageContent block so the agent
can inspect the model geometry inline.
Generated with the assistance of an AI coding tool.
2026-03-01 13:23:00 +00:00
Bruno Postle
f4d7fda255
Support file paths in ifcedit project.append_asset
...
This now works:
ifcedit run model.ifc project.append_asset --library library.ifc --element 5711
Generated with the assistance of an AI coding tool.
2026-02-28 07:19:51 +00:00
Bruno Postle
c112c115ce
Update README files
...
Generated with the assistance of an AI coding tool.
2026-02-23 23:30:07 +00:00
Bruno Postle
2a2ba45676
Add new ifcmcp tools to ifcchat tool schema
...
Adds ifc_validate, ifc_schedule, ifc_cost, ifc_schema, and ifc_quantify
to the hardcoded tool list in app.js to match the extended ifcmcp session.
Generated with the assistance of an AI coding tool.
2026-02-23 23:19:06 +00:00
Bruno Postle
fd69c0534b
Add validate, schedule, cost, schema, quantify to ifcquery/ifcedit/ifcmcp
...
ifcquery: validate [--rules], schedule [--depth N], cost [--depth N],
schema <EntityType>. ifcedit: quantify list/run subcommands using ifc5d
QTO rules. schedule and cost support max_depth to limit tree expansion,
replacing truncated levels with {truncated, count}. ifcmcp gains matching
session methods, @server.tool() decorators, and OpenAI tool schemas.
Generated with the assistance of an AI coding tool.
2026-02-23 23:11:35 +00:00
Thomas Krijnen
1226370b9e
re-add AI generation disclosure
2026-02-21 09:37:29 +01:00
Thomas Krijnen
6e3eaa9b39
mv chat/ ifcchat
2026-02-21 09:34:42 +01:00
Bruno Postle
3ed2da23be
Create missing CLI tools
...
Actually create the ifcquery, ifcedit and ifcmcp executables on pip
install instead of relying on `python3 -m ifcquery` style usage
2026-02-20 22:22:29 +00:00
Bruno Postle
249c498112
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-20 21:43:22 +00:00
Thomas Krijnen
2dde62803d
Package ifcmcp as a HTML client-side chat app ( #7697 )
2026-02-20 20:54:16 +00:00
Bruno Postle
d4ac3c36ce
Add AI generation disclosure
2026-02-14 08:10:55 +00:00
Bruno Postle
fecd4a810a
black and ruff
2026-02-11 18:22:45 +00:00
Bruno Postle
060afb94b5
MCP wrapper for ifcquery and ifcedit
...
Model Context Protocol server implementation for AI agent access to IFC
projects
2026-02-10 22:32:43 +00:00
Bruno Postle
b1f1de954d
Rename ifcapi to ifcedit, README and black
2026-02-09 22:59:11 +00:00
Bruno Postle
12ed2d1ec3
Add ifcquery clash subcommand for geometric clash detection
...
Uses ifcopenshell.geom.tree API directly to check an element for
intersections and clearance violations against sibling elements
(--scope storey) or the entire model (--scope all).
2026-02-09 18:20:41 +00:00
Bruno Postle
c77983ffe5
Add ifcquery relations subcommand for IFC relationship traversal
...
New subcommand: ifcquery <file> relations <element_id>
Returns all relationships for an element organised by category:
hierarchy (parent, container, aggregate, nest), children (contained,
parts, components, openings), type relationships, groups, systems,
zones, material, referenced structures, and connections/ports.
Empty categories are omitted from output.
Optional --traverse up flag walks the hierarchy from the element
up to IfcProject, returning the chain as a list.
2026-02-09 07:20:37 +00:00
Bruno Postle
78f26c2432
Add ifcapi CLI wrapper for ifcopenshell.api editor functions
...
Runtime introspection auto-discovers all API functions. Subcommands:
list (modules/functions), docs (parameter documentation), run (execute
with type-coerced CLI arguments). Output is JSON to stdout, supports
--dry-run validation and -o alternate output path.
2026-02-09 06:27:00 +00:00
Bruno Postle
39161e7256
Add ifcquery CLI tool for IFC model interrogation
...
Provides four subcommands for querying IFC models with JSON output:
- summary: schema, entity counts, project info
- tree: spatial hierarchy (Project > Site > Building > Storey > elements)
- info: deep element inspection (attributes, psets, type, material, container)
- select: filter elements using selector syntax
2026-02-08 23:24:48 +00:00
dependabot[bot]
17b88fff22
Bump aws-actions/configure-aws-credentials from 5 to 6
...
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials ) from 5 to 6.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases )
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md )
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-08 19:17:56 +11:00
dependabot[bot]
3fe9980aa4
Bump ruff from 0.14.14 to 0.15.0
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.14.14 to 0.15.0.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.14...0.15.0 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.15.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-08 19:17:45 +11:00
Dion Moult
dffa3515c0
Reimplement sort / reverse / join function to format language, simplify text annotation variables, add tests
...
Previously, sort, reverse list, and join functionality was implemented
as special cases in Bonsai itself. Given that it has usecases
(especially in material lists, but any sort of list applies) I've moved
this function into the IOS formatting language.
The IOS formatting language previously wasn't capable of this, but the
awesome addition by @falken10vdl made the formatting language accept
queries inline, so that means it can handle lists. I also added tests
for all the new functions and expression syntax (+-*/ operators).
I simplified the code that gets the evaluated text literal - previously
it seems to call format() multiple times.
2026-02-08 19:17:12 +11:00
Bruno Postle
1d5108f934
Fix linking for builds with -Wl,--as-needed
2026-02-06 16:51:41 +00:00
Dion Moult
02fab6eee2
Fix #7634 . Support formatting signed numbers.
2026-02-06 16:35:04 +11:00
Dion Moult
5e9f97a0c7
Fix #5220 . See #7629 . See #7505 . Reimplement text bulk copying using established copy attribute paradigm.
...
Previously, copy attribution was coupled with text editing. This meant
that you couldn't just do something like change the font or alignment
without also affecting literals. Now like most apps you can just select
bunch of text and change font size etc, using the same UI look and feel
that copying attribute has when editing attributes.
This refactor also removes the need for explicit props tracking each
possible attribute to copy, and the settings collection group. Bulk
applying is now done in core with no calls to UI.
2026-02-06 16:12:14 +11:00
Richard Brice
2692341d3a
Fixes typo
2026-02-05 15:10:33 -08:00
Richard Brice
a54b21b838
Fixes documentation and adds test for expected type
2026-02-05 04:37:58 -08:00
Andrej730
79ef6eb55c
validate_object_selection - fix missing check for active object not present in a view layer
2026-02-04 19:58:26 +05:00
Andrej730
7e1843b962
dev_environment - support Blender 5.1 with Python 3.13
2026-02-04 19:58:25 +05:00
Andrej730
7411da2ae8
bim.search - fix error when unselectable objects get in the way #7635
2026-02-04 19:58:25 +05:00
Andrej730
2f586d6b9e
bonsai prefs - shorten some description strings for readibility
2026-02-04 19:58:25 +05:00
Andrej730
f10d4602fc
typing
2026-02-04 19:58:25 +05:00
Andrej730
50d00eba20
black .
2026-02-04 19:58:25 +05:00
Andrej730
95480a231c
Move handling legacy mathutils buffer types to separate methods
2026-02-04 19:58:24 +05:00
Andrej730
a62b177b19
Bonsai - fix error drag'n'dropping ifc files in Blender 4.5.6
...
Example error:
```
Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'.
Traceback (most recent call last):
File "\Blender Foundation\Blender\4.5\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 2759, in invoke
return bpy.ops.bim.load_project(filepath=(filepath / clean_up_path(self.files[0].name)).as_posix())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\blender-4.5.6-lts.a78963ed6435\4.5\scripts\modules\bpy\ops.py", line 109, in __call__
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Couldn't find IFC file: 'L:/OD_Cool_Car_Guys.ifc'.
```
2026-02-03 19:20:05 +05:00
Andrej730
d6b636909f
bonsai Makefile - revert d745882
...
Since https://github.com/LBNL-ETA/pyradiance/issues/56 is resolved now.
2026-02-03 14:55:14 +05:00
Andrej730
abf0d6f81a
bonsai chaching - save ears for those running the tests
2026-02-03 14:55:14 +05:00
Andrej730
015431fa1f
bonsai - drop unrelated pypi aud module
...
Turned out `aud` module we had in our makefile had nothing to do with Blender built-in `uad` module 🫣
So no need to install anything from PyPI since this module is generally available in Blender
2026-02-03 14:55:14 +05:00
Andrej730
95cc52a6f3
bonsai - revive very important chaching sound
...
`get_data_dir_path` doesn't have `filename` argument, therefore leading to an error
2026-02-03 14:55:14 +05:00
Dion Moult
9dff1441d7
See #7632 . See #5848 . Just disable indexed colour map loading for now, it's pretty rare.
...
Famous last words, at least the KDTree implementation is much faster.
2026-02-03 18:23:39 +11:00
Dion Moult
fdf23ece85
Fix #7632 . See #2824 . Optimise vertex matching trick for IfcIndexedColourMap.
2026-02-03 18:20:49 +11:00
Dion Moult
1445f89f19
See #7629 . Partially reimplement bulk text editing.
...
This isn't complete yet, but it hopefully demonstrates a preferred
implementation:
* Logic in core, not operator
* Loop done in core, without needing to call other core functions, so
the overhead of enabling and disabling editing per object is removed. No
more Blender logic, just straight editing in IFC.
* Reuse existing function to grab text attributes instead of
reimplementing it twice.
* Remove dead code, there seems to be a function
apply_to_selected_objects which was completely unused and duplicated
code twice.
2026-02-03 18:09:15 +11:00
Dion Moult
fe395f9024
Revert "fixes #7629 : close editing mode for text objects after batch edit"
...
This reverts commit 950e147bde .
2026-02-03 09:13:26 +11:00
Ryan Schultz
950e147bde
fixes #7629 : close editing mode for text objects after batch edit
...
Fix issue where selected text annotations remained in editing mode after
applying changes. Now properly restores original editing state for each
selected object.
2026-02-02 09:34:28 -06:00
Thomas Krijnen
c385b93701
Add option --make-volume to apply BOPAlgo_MakerVolume API to non-manifold first operands in opening subtraction
2026-02-01 21:08:11 +01:00
falken10vdl
2d2e8e51aa
Merge pull request #7611 from falken10vdl/connect-ports-for-cable-polyline-operator
...
connect the ports when creating several conected IfcFlowSegment with polyline
2026-02-01 09:21:27 +01:00
falken10vdl
13f03b7487
Merge pull request #7619 from falken10vdl/MEP-Segment-tool-add-rectangular-hollow-profile
...
MEP-Segment-tool-add-rectangular-hollow-and-U-shape-profile
2026-02-01 09:00:14 +01:00
Richard Brice
c6257a4b3a
Fixes errors in ifc_curve_rebar.cpp
...
M_PI was not defined,. Replaced it with boost::math::constants::pi<double>
Calculation of area was incorrect. Area of a circle = PI*r*r = PI*dia*dia/4
2026-01-31 05:30:36 -08:00
dependabot[bot]
9b8b05a570
Bump gersemi from 0.25.1 to 0.25.4
...
Bumps [gersemi](https://github.com/BlankSpruce/gersemi ) from 0.25.1 to 0.25.4.
- [Release notes](https://github.com/BlankSpruce/gersemi/releases )
- [Changelog](https://github.com/BlankSpruce/gersemi/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BlankSpruce/gersemi/compare/0.25.1...0.25.4 )
---
updated-dependencies:
- dependency-name: gersemi
dependency-version: 0.25.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-31 10:04:17 +11:00
Bruno Postle
611a898ada
IFC Git close and reopen repo after cloning
...
Apparently on Windows clone can leave 'stale processes'
2026-01-30 20:07:04 +00:00
Andrej730
6409f41cdf
Bonsai Makefile - sort of simplify pyversion check
2026-01-30 16:05:27 +05:00
Andrej730
35dc029898
bonsai - add a dockerfile
2026-01-30 16:05:27 +05:00
Andrej730
2f72346845
bonsai Makefile - fix platform tag to use the latest pyradiance
...
Apparently `pip download` is matching tag exactly, which was leading to Linux using pyradiance 0.5.3 instead of 1.1.5.
2026-01-30 16:05:27 +05:00
Andrej730
40e4894f8e
ci-bonsai-daily - exclude intel mac build for Python 3.13
...
Since Blender dropped support for it in Blender 5.0 and Python 3.13 is only needed for Blender 5.1.
2026-01-30 16:05:27 +05:00
Andrej730
91ee2b9222
bonsai Makefile - require Blender 5.1 for Python 3.13
2026-01-30 16:05:27 +05:00
Andrej730
ac4ffd91e7
Bonsai Makefile - drop wheel renaming workaround #5743
2026-01-30 16:05:27 +05:00
Andrej730
d74588246a
bonsai Makefile - workaround for pyradiance in Python 3.13
...
Until https://github.com/LBNL-ETA/pyradiance/issues/53 is resolved.
2026-01-30 16:05:26 +05:00
Andrej730
e8a4590d0a
Bonsai Makefile - error for missing PYVERSION
2026-01-30 16:05:26 +05:00
Andrej730
38f9f309e7
Bonsai Makefile - enable Python 3.13 build
2026-01-30 16:05:26 +05:00
Andrej730
47ac909a81
ruff - sort imports
2026-01-30 16:05:26 +05:00
Andrej730
6a63c651d3
black .
2026-01-30 16:05:26 +05:00
falken10vdl
2727bec929
Reorder representation_template to improve clarity and organization as per user feedback
2026-01-30 10:24:53 +01:00
dependabot[bot]
22f91e11b3
Bump tar from 7.5.6 to 7.5.7 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.6 to 7.5.7.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.6...v7.5.7 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.7
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-30 17:57:12 +11:00
Dion Moult
398cd7571e
Add array feature tests
...
I'm thinking of moving array into its own module. The "model" module is
getting a bit full and it'll only grow bigger in the future.
2026-01-30 17:32:30 +11:00
Dion Moult
83d97d7e95
Fix #7616 . Make regenerate array an operator instead of an array preference
...
Sync children was a bit odd because it's not actually an "array
parameter" per se, just a way to regenerate. It's now an operator.
There was a deeper issue I encountered where the way arrays work is that
they duplicate the parent element. (first encountered in e51d2d )
However, the duplication code has special array handling too. To avoid
issues with this cyclical coupling the previous solution was to
reimplement object duplication (with all sorts of pitfalls that has).
Now, I've tried to decouple it further by clearing all array psets prior
to any change, and readding the pset after everything has been
regenerated.
This can be improved upon but I don't feel confident until there is more
comprehensive test coverage for the duplicate operator.
2026-01-30 17:18:02 +11:00
falken10vdl
e47694458f
Add support for FLOW_SEGMENT_U_SHAPE in the AddElement operator
2026-01-29 23:21:14 +01:00
falken10vdl
98a3b2b132
Merge remote-tracking branch 'upstream/v0.8.0' into MEP-Segment-tool-add-rectangular-hollow-profile
2026-01-29 13:17:53 +01:00
falken10vdl
d06f5a6cb9
Add thickness dimension to profile name
2026-01-29 13:12:47 +01:00
falken10vdl
966751a928
Add support for FLOW_SEGMENT_RECTANGULAR_HOLLOW in profile creation in the MEP Segment Tool
2026-01-29 13:10:54 +01:00
Dion Moult
c1aa1dedba
Fix #7615 . Forgot a line when refactoring type geometry regeneration. Added test.
2026-01-29 19:33:44 +11:00
Dion Moult
cc995db98b
Minor fix to 46a6356 to use the collector tool
...
This has a few advantages:
- The collection logic is centralised
- The collection logic is configurable based on the collection mode
- The name is not hardcoded
2026-01-29 19:12:02 +11:00
Ryan Schultz
0e8c98a7bb
Fix: Handle emoji encoding error in dev_environment.py
...
Prevents UnicodeEncodeError on Windows when displaying success message.
2026-01-28 18:34:14 -06:00
Dion Moult
5ce6d927f3
Revert "fix #7537 - Layer thickness correct when slab is rotated and few other features... "
...
This reverts commit 7f87f1fb89 .
2026-01-28 23:39:45 +11:00
Dion Moult
34303c2cfe
Revert "fix to https://github.com/IfcOpenShell/IfcOpenShell/commit/7f87f1fb89fb001320223a4d85e6267f342bf13c : have rotation around the object's origin, not the world origin"
...
This reverts commit 249e68f163 .
2026-01-28 23:28:14 +11:00
Dion Moult
6cfb6d74fe
Revert "fix #7559 : DirectionSense works again."
...
This reverts commit d79524b087 .
2026-01-28 23:25:35 +11:00
Dion Moult
e76c2a70e6
Add tests for aggregate containment changing
2026-01-28 23:18:57 +11:00
Dion Moult
53e5f84730
Fix failing core unit tests
2026-01-28 21:49:25 +11:00
Dion Moult
bcff5c7449
Remove unused tool
2026-01-28 21:49:13 +11:00
Dion Moult
6f78d60c9f
Minor fix for tests to prevent ambiguous labeling
2026-01-28 21:22:19 +11:00
Dion Moult
ff35666ad9
Reimplement feature to reassign inherited containers if you select a child element
...
This reimplements @theoryshaw 's commit 9adbd4 but has a few upgrades:
- Considers all parent / child relationships, not just aggregates
- Puts business logic in core where it belongs and tool code in tool
- Uses existing utils where possible like get_decomposition
- Does not use name based collection checking which is fragile
- Reuses tool.Collector
- Makes container assignment handle the API's capability to do things
in bulk instead of one by one in a loop, so it's faster
- Tests
2026-01-28 18:00:04 +11:00
Dion Moult
79fa47fc2f
Allow specifying MODULE in make test-core for convenience
2026-01-28 17:49:31 +11:00
Dion Moult
35ae1e927d
Fix missing model prophet in core test bootstrap
2026-01-28 17:49:15 +11:00
Dion Moult
24a58cba40
Remove functionality to unlink from non-IFC collections
...
This is a cool idea, but users have all sorts of Blender collection
strategies and I think it's a good idea for Bonsai code to just touch
Bonsai's stuff and leave everything else. Separate functionality can be
built for non-Bonsai workflows and preferrably in a more discoverable
way than in individual Bonsai features.
2026-01-28 09:14:40 +11:00
falken10vdl
8a32d7bea0
Add EstablishPathDirection operator and update UI to integrate it
2026-01-27 18:05:19 +01:00
Dion Moult
bbf8fc2b64
Revert "feat: auto-assign containers to root aggregates and organize parts in outliner"
...
This reverts commit 9adbd47181 .
2026-01-27 19:27:34 +11:00
Dion Moult
2a60f46516
Refactor parse_distance_string into tool classmethod and add tests including e9eca5e behaviour
2026-01-27 19:13:43 +11:00
Dion Moult
6ad9949571
Update tests based on new simpler unit settings code
2026-01-27 19:12:43 +11:00
Dion Moult
e41df68124
Reintroduce public API for IfcTester after ruff purge 72f8218fcd
2026-01-27 15:57:47 +11:00
Ryan Schultz
de6f6cc8b2
Skip incompatible objects instead of failing IFC join operation
...
When joining objects with mismatched representation types, deselect and
skip incompatible objects rather than canceling the entire operation.
This allows users to join compatible objects even when the selection
includes incompatible ones.
2026-01-26 19:53:41 -06:00
falken10vdl
fed98451d4
connect the ports when creating several conected IfcFlowSegment with polyline
2026-01-27 01:32:06 +01:00
Dion Moult
44a52863a2
Fix #3764 . WARNING: Preserve material usage attributes when switching types and refactor type regeneration API listeners
...
This is a dangerous commit because the effect of refactoring of the listeners is hard to know.
2026-01-26 23:30:39 +11:00
Esteban Dugueperoux
f725e05655
Merge pull request #7486 from EstebanDugueperoux2/TestAllExamples
...
cmake: Try to build and run others examples
2026-01-26 13:20:21 +01:00
Andrej730
953c5fddc6
bonsai - sort imports
2026-01-26 17:13:18 +05:00
Andrej730
1319391a6b
ci-bonsai-daily - enable Python 3.13 build
...
Since it's coming in Blender 5.1 which is soon to go Beta (at 4 Feb).
2026-01-26 17:10:04 +05:00
Andrej730
bc675ef9b2
cmake_uninstall - fix always skipped if-block condition
2026-01-26 17:10:03 +05:00
Andrej730
c6766cefb7
cmake_uninstall - speed up the process and fix cmake warnings
2026-01-26 17:10:03 +05:00
Andrej730
c4c1e2ebf9
cmake_uninstall - simplify by using common variable
2026-01-26 17:10:03 +05:00
Andrej730
dbb4e91d55
apply cmake file formatting
2026-01-26 17:10:03 +05:00
Andrej730
44f0a4a39b
pyproject.toml - simplify cmake formatter command
...
Since the latest gersemi version, it now respects gitignore.
2026-01-26 17:10:03 +05:00
Andrej730
6d4eb06d89
black .
2026-01-26 17:10:03 +05:00
Andrej730
72f8218fcd
ruff - check for more unused imports
2026-01-26 17:10:02 +05:00
Andrej730
4edcad13b8
fix ruff
2026-01-26 17:10:02 +05:00
Andrej730
d4d10b2eb5
ifcsverchok - polyline node
...
Demo - https://files.catbox.moe/azv66e.mp4
2026-01-26 17:10:02 +05:00
Andrej730
523bcf3443
ifcsverchok - node to convert sverchok geometry to ifc
...
Example - https://files.catbox.moe/wecgw9.mp4
2026-01-26 17:10:02 +05:00
Andrej730
b96a21350c
ifcsverchok - document value types in doc-strings
2026-01-26 17:10:02 +05:00
Andrej730
2f5bcccd2c
bim.assign_class - don't flip normals for objects with negative scale in Blender 5.1+
...
The issue was fixed upstream - https://projects.blender.org/blender/blender/issues/102266
2026-01-26 16:10:02 +05:00
Dion Moult
d62a6186b5
Demo project preset shouldn't have mass or time by default
2026-01-26 00:01:43 +11:00
Dion Moult
a6394d8628
Revert "Closes #3764 : When switching an instance to a different beam type, preserve the CardinalPoint."
...
This reverts commit 4874f7770b .
2026-01-25 20:58:29 +11:00
Dion Moult
b4caf3b2dd
Fix #7153 . Fix regression in purging types in IFC2X3 from 56861b9
2026-01-25 15:27:23 +11:00
Dion Moult
0e4f2fada1
Fix #7519 . Do not import parametrically locked item attributes.
...
The previous fix by @theoryshaw had the correct conclusion but had some
issues:
1. Don't implement anything that fetches IFC data in the UI draw calls.
This historically has lead to race conditions and crashes. The data
classes are much preferred.
2. Rather than load the inapplicable attribute then selectively omit it
in the UI, it's preferred to just never load it in the first place.
2026-01-25 14:16:35 +11:00
Dion Moult
12f8863014
Revert "Fix #7519 : Hide depth attribute in Item Mode for elements with material layer sets"
...
This reverts commit 99b162f712 .
2026-01-25 14:12:16 +11:00
Dion Moult
884661a454
See #7537 . Quick fix for regression in editing slabs. Needs further investigation.
2026-01-25 10:43:27 +11:00
Dion Moult
0d8c4c7795
Fix #7587 . See #7550 . Bug where you couldn't load or edit arrayed voids.
...
Reuse tool.Geometry.duplicate_ifc_objects because that's where all
duplication logic should stay instead of half reimplementing it every
time which introduces subtle bugs.
2026-01-24 23:03:18 +11:00
Esteban DUGUEPEROUX
8f3715c0f1
review: Take into account remarks
2026-01-24 12:09:29 +01:00
Dion Moult
cf52607528
Fix #7591 . Save pset as template now considers all psets in the file, not just the active one.
2026-01-24 14:20:02 +11:00
dependabot[bot]
7636ff3fdb
Bump ruff from 0.14.13 to 0.14.14
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.14.13 to 0.14.14.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.13...0.14.14 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.14.14
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 13:47:32 +11:00
dependabot[bot]
0577dbe865
Bump black from 25.12 to 26.1.0
...
Bumps [black](https://github.com/psf/black ) from 25.12 to 26.1.0.
- [Release notes](https://github.com/psf/black/releases )
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md )
- [Commits](https://github.com/psf/black/compare/25.12.0...26.1.0 )
---
updated-dependencies:
- dependency-name: black
dependency-version: 26.1.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-24 13:45:01 +11:00
Esteban DUGUEPEROUX
a86c333a99
make: Try to build and run others examples
2026-01-23 20:49:16 +01:00
Thomas Krijnen
3983bfa467
Don't crash on passing indeterminate to instance expecting aggregates #7529
2026-01-23 14:36:06 +01:00
Thomas Krijnen
1137e7b77b
Fix rule compilation regarding indeterminate #7529
2026-01-23 14:36:06 +01:00
Dion Moult
cc542ad074
See #7503 . Add docs about geometry_library
2026-01-23 22:33:20 +11:00
Dion Moult
b41d3ae2b7
Bump IfcConvert documentation including .json and .rdb support
2026-01-23 22:32:48 +11:00
Dion Moult
5c31ae4c37
Remove preference to mass/time and make it default with simpler code
...
I generally like to minimise knobs and dials, so this is now part of the
wizard but now defaults to a "NONE" unit. You also now have the option
to choose "NONE" for area / volume units which makes things consistent.
Enum names also match the IFC lowercase convention for conversion based
units. This also simplifies the core logic and treats all units the same
way instead of special cases for each unit type. (length is still
special and required in Bonsai as we are inherently graphical)
2026-01-23 22:03:32 +11:00
Thomas Krijnen
92ad7d2ba2
Fix #7554
2026-01-23 11:54:04 +01:00
Thomas Krijnen
ad0c97a6bb
Fix #7561
2026-01-23 11:44:14 +01:00
Thomas Krijnen
3d530b1d39
No occt multi-threading since we have our own
2026-01-23 11:44:14 +01:00
Thomas Krijnen
f0308962aa
Clash: Increase robustness of processing triangulated elements - fully co-planar element #7467
2026-01-23 11:44:14 +01:00
Thomas Krijnen
9c6a8bdb90
Clash: Increase robustness of processing triangulated elements - skip empty #7467
2026-01-23 11:44:14 +01:00
Thomas Krijnen
a6a9f9d0a7
Only enable--fat on x86 in build-all.py #7458 #7556
2026-01-23 11:22:56 +01:00
Thomas Krijnen
ab3108ff59
Set GMP --enable-fat during build #7458 #7556
2026-01-23 11:16:06 +01:00
Esteban DUGUEPEROUX
128fdcb62e
fix: Add IfcGeom as a dependency of kernels target instead of the inverse
2026-01-23 10:22:16 +01:00
Esteban DUGUEPEROUX
a609bc61b9
fix: Define OPENCASCADE_LIBRARIES as expected by generic CMakeLists.txt for ifcgeom kernels
2026-01-23 10:22:16 +01:00
Esteban DUGUEPEROUX
c739b93389
fix: Have kernels targets built as library
2026-01-23 10:22:16 +01:00
Thomas Krijnen
6b7b834ac0
Don't try and solve 2d bools in cgal-simple #7503
2026-01-23 10:12:33 +01:00
Dion Moult
ac128e3395
Close #7601 . Clearer docs that there is a single mesh item.
2026-01-23 15:56:44 +11:00
Dion Moult
5dd771c5e5
Fix #7596 . Bug where IFC2X3's workspace didn't use IfcDoorStyle and IfcWindowStyle instead
2026-01-23 15:51:39 +11:00
Dion Moult
247f0c41d9
Increase default deflection tolerance to improve performance
...
This only results in a lower resolution for things like advanced brep
geometry which isn't a biggie (I'll eat my words later)
2026-01-23 15:32:04 +11:00
falken10vdl
bbda8d2aff
Merge pull request #7543 from falken10vdl/MEP-ports
...
Simplified handling of Ports in MEP
Addresses https://community.osarch.org/discussion/comment/27740#Comment_27740
2026-01-22 09:34:52 +01:00
Dion Moult
c2cc6f80be
IfcTester webapp now shows prohibited more clearly
...
- is_skipped is calculated upstream instead of reimplementing logic
- the viewer now shows cardinality (not just in edit mode) to make it
clear what the requirements are
- prohibited specs are not allowed to have any requirements, so that
section is hidden
- failed prohibited specs now shows list of failed (applicable)
entities
2026-01-22 14:36:46 +11:00
Dion Moult
4c47eb573a
Improve IDS static HTML reporter to report list of prohibited entities (they aren't passes or fails, just prohibited applicability)
2026-01-22 11:18:35 +11:00
falken10vdl
84d55d8969
cleanup
2026-01-21 20:54:20 -03:00
falken10vdl
587fc63843
Refactor PolylineDecorator to simplify label indexing and improve text spacing calculation
2026-01-21 20:54:20 -03:00
falken10vdl
3c3525f205
display angles and area/length values conditionally based on polyline points
2026-01-21 20:54:20 -03:00
falken10vdl
4da0b04162
add adjunt_overlapping_labels
2026-01-21 20:54:20 -03:00
Vincent Cadoret
a3801a0ce9
Fix UnboundLocalError in reporter.py cardinality assignment
...
The report_specification() method in the Json reporter class was raising
an UnboundLocalError when processing IDS specifications with certain
minOccurs/maxOccurs combinations that weren't explicitly handled.
Problem:
The cardinality variable was only assigned for three specific cases:
- minOccurs=1, maxOccurs="unbounded" → "required"
- minOccurs=0, maxOccurs="unbounded" → "optional"
- minOccurs=0, maxOccurs=0 → "prohibited"
However, the IDS schema allows other valid combinations such as:
- minOccurs=0, maxOccurs=1 (commonly used for optional specifications)
- minOccurs=1, maxOccurs=1 (exactly one occurrence required)
- Any other valid XML Schema cardinality values
When processing IDS files with these combinations, the cardinality
variable remained unassigned, causing an UnboundLocalError at line 382
when attempting to use it in ResultsSpecification().
Solution:
Added fallback logic to handle all valid IDS cardinality combinations:
- If minOccurs >= 1: cardinality = "required" (must occur at least once)
- Otherwise (minOccurs == 0): cardinality = "optional" (may occur)
This maintains semantic compatibility with the existing codebase, which
expects cardinality to be one of the semantic strings ("required",
"optional", "prohibited") rather than numeric ranges. This is critical
for:
- HTML template rendering (line 457: .capitalize())
- Conditional logic for skipped specs (line 454)
- UI rendering for prohibited specs (line 456)
Testing:
- Tested with IDS file containing minOccurs=0 without explicit maxOccurs
(defaults to 1 per XML Schema specification)
- Validation now completes successfully without UnboundLocalError
- HTML report generation works correctly with semantic cardinality labels
- Maintains backward compatibility with existing IDS files
Fixes: Validation failure when using valid IDS cardinality combinations
2026-01-22 10:21:45 +11:00
Christoph Mellüh
aafa1b95e8
bSDD Add new class properties and relations API Endpoints ( #7502 )
...
* black .
* add typing
* move function
* add get_class_relations
* add test for class relation
---------
Co-authored-by: Dion Moult <dionmoult@gmail.com >
2026-01-22 10:19:09 +11:00
falken10vdl
f89cf88bc0
Add use_factory_startup to src/bonsai/test/bim/test_feature.py def an_empty_blender_session()
...
This addresses https://github.com/IfcOpenShell/IfcOpenShell/issues/7590
Cheers!
2026-01-22 09:36:04 +11:00
dependabot[bot]
0cc3ce8709
Bump tar from 7.5.3 to 7.5.6 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.5.3 to 7.5.6.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.6 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-22 08:40:44 +11:00
Andrej730
421d454ce8
Fix missing Literal import
2026-01-21 17:39:41 +05:00
Andrej730
64865c58a5
remove debug print
2026-01-21 17:39:41 +05:00
Andrej730
784415e464
ifcsverchok bonsai integration - support editing parametric properties from UI
...
Demo - https://files.catbox.moe/extsxf.mp4
But now it requires ifcsverchok graph to be nested inside a subgroup because we need a way to indicate which graph parameters are important, so user can modify them from Parametric Geometry tab without actually explicitly opening sverchok graph.
2026-01-21 17:39:41 +05:00
Andrej730
c33969d589
ifcsverchok - correct socket type for position
2026-01-21 17:39:40 +05:00
Dion Moult
41c6eba193
IfcTester should not check requirements for prohibited specifications
2026-01-21 19:43:37 +11:00
Dion Moult
db52703ce3
Revert "Use hide_set() for IfcSpaces instead of hide_viewport"
...
This reverts commit 96fe9b5398 .
This commit contains a logical error where hide_viewport is checked in
the if statement but hide_set() is used as the effect. This causes a
regression in tests about project visibility. `hide_viewport` is the
correct hiding setting to use, because hide_set is more ephemeral and
affected by Shift-H, Alt-H etc.
2026-01-21 18:52:27 +11:00
Dion Moult
e55955b72a
See #7566 . Fix unusable lag due to dense meshes with product preview
...
Previously, when the add occurrence modal operator was executed, on
every modal loop (i.e. every mouse movement) it would fetch the mesh
geometry to be previewed, store the verts / edges / faces in mesh
collections, then the decorator would fetch that geometry, the clear the
collections, in a loop.
I've removed the Blender collections. Instead the same strategy is used
as in ItemDecorator i.e. the mesh and verts are fetched once during
decorator installation, then on each draw call only a single vertex loop
to multiply by the transformation matrix for snapping and mouse
position.
You can test with the LOD400 model in #7566 . On my machine it would
cause lag on anything with >500 faces. Now it seems to work without lag
on a 26k polygon mesh.
2026-01-21 18:11:20 +11:00
dependabot[bot]
4c1b3221ce
Bump gersemi from 0.24 to 0.25.1
...
Bumps [gersemi](https://github.com/BlankSpruce/gersemi ) from 0.24 to 0.25.1.
- [Release notes](https://github.com/BlankSpruce/gersemi/releases )
- [Changelog](https://github.com/BlankSpruce/gersemi/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BlankSpruce/gersemi/compare/0.24.0...0.25.1 )
---
updated-dependencies:
- dependency-name: gersemi
dependency-version: 0.25.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 12:40:44 +11:00
dependabot[bot]
9e2b7ba7c8
Bump tar from 7.4.3 to 7.5.3 in /src/ifctester/webapp
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.4.3 to 7.5.3.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.3 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 12:39:38 +11:00
falken10vdl
1576ade147
Merge pull request #7576 from falken10vdl/support-enum-for-search-suggestions
...
Enhance filter value suggestions to support enumerated properties in search
2026-01-18 00:13:44 +01:00
falken10vdl
db8a1b9262
Merge pull request #7575 from falken10vdl/simplify-new-filter-mode-with-just-chained-filters-with-set-operations
...
Refactor filter mode handling to simplify chained filters with set operations
2026-01-18 00:12:40 +01:00
falken10vdl
09d193045a
Enhance filter value suggestions to support enumerated properties in search
2026-01-18 00:05:07 +01:00
falken10vdl
f3295e2663
Refactor filter mode handling to simplify chained filters with set operations
2026-01-17 20:02:09 +01:00
Dion Moult
16a90cadb5
Cap product decorator at 500 triangles to prevent unresponsive UI during dense product placement
2026-01-17 17:57:07 +11:00
Dion Moult
2065d4ce78
Minor optimisation to prevent looping through all verts twice in decorator draw
2026-01-17 17:55:11 +11:00
dependabot[bot]
5cadfd693f
Bump ruff from 0.14.10 to 0.14.13
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.14.10 to 0.14.13.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.10...0.14.13 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.14.13
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-17 15:39:57 +11:00
Andrej730
9d1dcf9034
external parametric geometry - integrate with ifcsverchok
...
Still very experimental, but here's a short demo - https://files.catbox.moe/u6vnhj.mp4
Sverchok graph I've used - https://files.catbox.moe/1x7b7q.png
2026-01-16 17:16:29 +05:00
Andrej730
ed38d2347c
ifcsverchok - check for unused imports
2026-01-16 17:16:29 +05:00
Andrej730
47e259ff2f
ifcsverchok - operator to apply graph to Bonsai file
2026-01-16 17:16:29 +05:00
Andrej730
413530bb0a
ifcsverchok - shape output node
2026-01-16 17:16:29 +05:00
Andrej730
a3bcea008a
util.shape - move typing stuff to TYPE_CHECKING block
2026-01-16 17:16:29 +05:00
Andrej730
d93363b9bb
ifcsverchok - specify extrusion axis
2026-01-16 17:16:29 +05:00
Andrej730
77a912c756
shape_builder.rectangle - clarify 3d size use
2026-01-16 17:16:28 +05:00
Andrej730
668b63a323
shape_builder - clean up redundant default values from doc-strings
2026-01-16 17:16:28 +05:00
Andrej730
dbc0cca36e
ifcsverchok - experimenting with shape builder nodes
2026-01-16 17:16:28 +05:00
Andrej730
009652f97d
ifcsverchok - fix by query node
2026-01-16 17:16:28 +05:00
Andrej730
c77c4ce968
model.ui - more specific typing from props
2026-01-16 17:16:28 +05:00
Andrej730
a0b81e333e
black .
2026-01-16 17:16:25 +05:00
Andrej730
dfc91e6639
ifcopenshell-python - clean up unused imports
2026-01-16 17:16:24 +05:00
Dion Moult
233ad63bca
Remove document menu for UI consistency
...
Although it is a very cool trick, I feel this essentially duplicates the
UI in two spots, and is an outlier in UX. I'd prefer for all IFC data
and relationships to be in one location only (the panels). I think there
are a better unified solutions (e.g. favourite bookmark panels) for
quick access for things like this.
2026-01-16 20:11:43 +11:00
Dion Moult
242f1aab35
Fix #7563 . Regression in normalising document URIs.
2026-01-16 10:26:23 +11:00
Ryan Schultz
d79524b087
fix #7559 : DirectionSense works again.
2026-01-15 14:21:39 -06:00
Dion Moult
8060c790ed
Black
2026-01-15 22:00:51 +11:00
Dion Moult
47a2c1d21a
Refactor panel visibility to not use any helpers, operators, and shift config UI into add-on settings
...
To be consistent with all other settings, I've moved the visibility
config UI from inline into the add-on settings. This restores the
previous tab layout and no longer needs the "settings" icons to be
there. This also removes the need for a "enable UI config" checkbox.
Most of the code previously had dedicated operators to toggle booleans.
This has been removed. This new approach also means helpers aren't
needed.
2026-01-15 21:59:53 +11:00
Christoph Mellüh
ed81a0a4b3
update api to V5 ( #7409 )
2026-01-15 20:52:06 +11:00
Dion Moult
26fb6ebd3c
Refactor tab visibility to use data cache
...
Previously calculation of visibility was done on every draw (3x 10tabs x
10 collection items). The data class is intended to calculate UI data
once only which is more efficient. This also removes all helper calls
from the UI.
2026-01-15 11:30:28 +11:00
Dion Moult
bb50be389e
Refactor should_show_panel into tool.Blender (avoid helper.py) and merge into is_tab
...
This moves the logic from ui.py into tool.Blender. In general, helper.py
is a bit generic (and historic) and we should use tool instead.
2026-01-15 09:15:13 +11:00
Richard Brice
df7318973d
Adds support for IfcOpenCrossProfileDef and branching with IfcSectionedSurface
2026-01-14 13:28:07 -08:00
Ryan Schultz
46a6356f93
update the name of the blender collection, as well, when updating the name of the spatial container.
2026-01-13 12:33:54 -06:00
Ryan Schultz
9adbd47181
feat: auto-assign containers to root aggregates and organize parts in outliner
...
When assigning a container to an aggregated element, automatically promote
the operation to the root aggregate and move all nested parts to the
container's collection in the Blender outliner.
Changes:
- AssignContainer now traverses the aggregate hierarchy to find the root
aggregate when a user selects any nested part
- All parts and sub-aggregates are moved to the container's collection in
the outliner while preserving IFC aggregate relationships
- Parts remain aggregated in IFC (not directly contained), only their
Blender collection membership changes
- RefreshLinkedAggregate now also moves all parts to the correct container
collection when restoring original data
This provides a more intuitive UX - users can select any part and the entire
assembly moves together, properly organized under the spatial container.
Fixes the previous behavior where:
- Aggregated elements were skipped with a warning
- Parts weren't organized under the container in the outliner
- Aggregate nesting was broken after container assignment
2026-01-13 11:45:34 -06:00
falken10vdl
96a0e9f72d
Adapt tests for create_port_at_cursor method
2026-01-13 10:07:10 +01:00
falken10vdl
791a41d649
cleanup and black .
2026-01-13 08:49:57 +01:00
Ryan Schultz
249e68f163
fix to https://github.com/IfcOpenShell/IfcOpenShell/commit/7f87f1fb89fb001320223a4d85e6267f342bf13c : have rotation around the object's origin, not the world origin
2026-01-12 19:37:25 -06:00
Dion Moult
3c8ab26274
Do not scale georef WCS decorator if it is <1km (i.e. small site definition)
...
Previously it was scaled which misled users into thinking the point was
in the wrong location.
2026-01-13 09:30:31 +11:00
Andrej730
18a25ffb0e
Remove redundant label in project info UI
2026-01-12 18:20:11 +05:00
Andrej730
cc341b5ffd
Remove debugging print statements
2026-01-12 18:20:11 +05:00
Andrej730
c8ac61a9d0
CI - bump Blender we use for testing to 5.0
2026-01-12 18:20:11 +05:00
Andrej730
7d49113407
typing
2026-01-12 18:20:11 +05:00
Andrej730
153de70a71
black .
2026-01-12 18:20:10 +05:00
falken10vdl
1f845569a5
Merge pull request #7466 from DrInfiniteExplorer/vscode-debug-integration
...
vscode config for Bonsai debugging
2026-01-12 12:23:23 +01:00
falken10vdl
1eb2b65268
Add flow direction handling to port connection logic and UI updates
2026-01-12 12:19:13 +01:00
Pierre LeMoine
d7ad0a352e
vscode config for Bonsai debugging
2026-01-12 07:30:02 +01:00
Ryan Schultz
d29cecab30
Fix aggregate duplication to include parts and preserve hierarchy ( #7550 )
...
- Auto-include all parts when duplicating aggregates
- Preserve nested aggregate relationships during duplication
- Select all duplicated objects for immediate moving
2026-01-11 20:35:32 -06:00
Ryan Schultz
7f87f1fb89
fix #7537 - Layer thickness correct when slab is rotated and few other features...
...
- Add dual-rotation support for AXIS3 slabs (IFC angle + object rotation)
- Fix profile editing to display horizontal projection for tilted slabs
- Fix AXIS2 layer slicing to use local extrusion direction for walls
- Fix ChangeExtrusionDepth to refresh geometry after depth changes
- Remove rotation lock on slabs to allow free rotation
- Fix undefined variable bug in add_slab_representation.py
2026-01-11 18:43:07 -06:00
falken10vdl
e5ccd26762
Update port UI to indicate disconnection status more clearly
2026-01-11 14:46:17 +01:00
falken10vdl
0243519a68
Refactor port connection logic and UI integration for improved usability
2026-01-11 14:22:58 +01:00
Ryan Schultz
15bbdc8085
Fix #7539 : preserve nested aggregate structure when refreshing linked aggregates
2026-01-10 09:36:36 -06:00
falken10vdl
c2b72440a2
Use helper function for search suggestions in literal property drawing ( #7547 )
2026-01-10 08:30:43 -06:00
falken10vdl
8205408a66
Add filter_mode property to BIMFacet for selection management ( #7548 )
2026-01-10 08:24:04 -06:00
falken10vdl
b78db3cae0
Merge pull request #6825 from falken10vdl/UI_documents_tree
...
UI documents tree
2026-01-10 11:43:42 +01:00
falken10vdl
81fdf63bd0
adapted to get pytest -p no:pytest-blender test/core/test_document.py working. Black formating
2026-01-10 10:44:51 +01:00
falken10vdl
454ed2c5a1
updated to get make test-bim MODULE=document working
2026-01-10 10:44:51 +01:00
falken10vdl
df6592c7b9
updated to get make test-tool MODULE=document working
2026-01-10 10:44:51 +01:00
falken10vdl
e4ba633d94
cleanup nomenclature and some redundant code
2026-01-10 10:44:51 +01:00
falken10vdl
6f400c8e44
updates based on core developer's feedback
2026-01-10 10:44:51 +01:00
falken10
128fe66837
cleanup and formatting
2026-01-10 10:44:51 +01:00
falken10
9c8c40c0ff
nicer ui
2026-01-10 10:44:51 +01:00
falken10
ca8eb9b358
misc panel working
2026-01-10 10:44:51 +01:00
falken10
b6cfd165c2
updates based on developers feedback
2026-01-10 10:44:51 +01:00
falken10
aa8c146f9d
Refactoring based on developer's feedback
2026-01-10 10:44:51 +01:00
falken10
d2adfc8c5d
updated document ui
2026-01-10 10:44:51 +01:00
falken10
5ea66730d4
Implemented tree like structure for documents
2026-01-10 10:44:51 +01:00
falken10vdl
7ef11361b0
Update flow direction icons for ports in UI
2026-01-10 10:12:25 +01:00
Bruno Postle
0c3153ab7f
Docs, link fedora Bonsai/IfcOpenShell packages
2026-01-09 23:19:39 +00:00
falken10vdl
dfbaa6ac8e
Reset related_port_object to None after connecting ports
2026-01-09 17:39:42 +01:00
falken10vdl
c41496a9c3
import IfcDistributionPorts with assets when executing append_library_element and for type products, use the type product's collection, not the container
2026-01-09 17:11:02 +01:00
falken10vdl
ed7ae0da9c
Enhance show_ports (also shows ports of connected objects) and refine UI layout
2026-01-09 13:18:01 +01:00
falken10vdl
4463235728
Remove ShowPortFlowError operator and update flow direction handling for connected ports
2026-01-09 08:43:46 +01:00
falken10vdl
628a76e487
Simplified handling of Ports in MEP
2026-01-09 02:02:43 +01:00
Ryan Schultz
a460e29473
retain current selection in bim.select_similar_type
2026-01-08 09:41:29 -06:00
Ryan Schultz
e9eca5e3f2
If feet is negative, inches should also be negative (subtractive)
2026-01-07 09:08:12 -06:00
falken10vdl
c848462905
Merge pull request #7536 from falken10vdl/per-file-save-metadata
...
Add Ifc Document information element to decide if blend metadata info should be used in this project file
2026-01-07 15:46:42 +01:00
falken10vdl
321878e1bb
Add Ifc Document information element to decide if blend metadata info should be used in this project file
2026-01-06 22:14:08 +01:00
Ryan Schultz
831c3190cc
Fix #7531 : Add BBIM_MaterialLayer pset for custom offset persistence and UI improvements
...
This commit introduces a new BBIM_MaterialLayer property set to persist custom
material layer offset settings in IFC files, along with significant UI improvements
for material editing.
Features Added:
- New BBIM_MaterialLayer pset with properties:
- UseCustomOffset (bool): Toggle for custom offset
- CustomOffset (float): Offset value in SI units
- CustomWallReference (str): Wall reference point (EXTERIOR/CENTER/INTERIOR)
- CustomSlabReference (str): Slab reference point (TOP/MIDDLE/BOTTOM)
Tool Updates (tool.py):
- Added save_custom_offset_to_pset(): Saves custom offset from UI props to pset
- Added load_custom_offset_from_pset(): Loads custom offset from pset to UI props
- Updated get_material_layer_custom_offset(): Reads from pset when props unavailable
Operator Updates (operator.py):
- EnableEditingAssignedMaterial: Loads custom offset from pset on edit start
- EditAssignedMaterial: Saves custom offset to pset on edit completion
- Fixed KeyError for CardinalPoint in material constituent sets
Data Layer (data.py):
- Added bbim_material_layer_pset() to ObjectMaterialData for caching pset data
- Improves performance by avoiding repeated IFC queries during UI drawing
UI Improvements (ui.py):
- Added custom offset display in both editable and read-only material UIs
- Added OffsetFromReferenceLine display in read-only UI
- Implemented dynamic headers based on material type (Layers/Profiles/Constituents)
- Improved visual hierarchy with consistent boxing and indentation
- Aligned editable and read-only UI layouts for consistency
- Fixed layer set boundary labels (Top/Bottom for slabs, Interior/Exterior for walls)
- Reorganized "Add Material" section into material layers box
Bug Fixes:
- Fixed format_distance() to correctly handle negative imperial values
(e.g., -0.5' now displays as "-0' - 6"" instead of "0' - -6"")
This allows users to set custom material layer offsets that persist in the IFC
file and remain available across sessions, with clear visual feedback in both
editing and viewing modes.
2026-01-04 13:15:39 -06:00
Bruno Postle
a17b0604e1
api.project.append_asset deduplicate material sets
...
When appending a wall type and a slab type in turn, if their material
layer sets have the same name then the slab type would have a wall
construction. Now the material sets are compared before reusing an
existing material set.
2026-01-04 11:36:05 +00:00
Bruno Postle
db623f4e73
api.project.append_asset Material Layer orphan fix
...
Fixes typo introduced in b4740b6 where `element in MATERIAL_SETS` should
have been `element.is_a() in MATERIAL_SETS`. This resulted in
deduplication of layersets, but not of the layers themselves.
2026-01-04 10:12:16 +00:00
Ryan Schultz
cb08191083
close #3451 : support comma-separated stylesheet paths
...
Enable multiple CSS files in stylesheet_path using comma separation.
Files are loaded in order with natural CSS cascading behavior.
Example: "base.css, overrides.css"
2026-01-03 18:10:21 -06:00
Ryan Schultz
4874f7770b
Closes #3764 : When switching an instance to a different beam type, preserve the CardinalPoint.
2026-01-03 16:52:10 -06:00
Ryan Schultz
56861b9403
fix #7153 : Include IfcSpatialElementTypes in purge_unused_objects(object_type='TYPE')
2026-01-03 16:04:58 -06:00
Bruno Postle
c20ed44a0f
More python 3.14 fixes, see 9bac66a
2026-01-03 21:58:05 +00:00
Bruno Postle
9bac66a01b
Fix for python 3.14
...
"In some versions of Python, instances of classes may have an
__annotations__ attribute. However, this is not supported functionality.
If you need the annotations of an instance, you can use type() to access
its class" https://docs.python.org/3/howto/annotations.html
2026-01-03 17:53:59 +00:00
Ryan Schultz
93de429e03
Previous commit should only apply to LAYER3 objects, since extrusion depth still works for LAYER2 objects.
2025-12-31 07:52:19 -06:00
Ryan Schultz
99b162f712
Fix #7519 : Hide depth attribute in Item Mode for elements with material layer sets
...
When editing representation items for elements with IfcMaterialLayerSetUsage
(LAYER2/LAYER3), the depth attribute is now hidden from the UI as it should
not be modified at the item level for these parametric elements.
The check is performed by accessing the parent element through the
representation_obj property in geometry props and checking its material
usage type.
2025-12-31 07:43:34 -06:00
falken10vdl
22dddea0e0
Merge pull request #7521 from falken10vdl/fix-queries-with-backticks-in-annotations
...
Update formatting expression evaluation to include element context
2025-12-30 17:40:45 +01:00
falken10vdl
f83fd665da
Merge pull request #7518 from falken10vdl/fix-metadata-loading-with-styles
...
Fix: LoadBlendMetadataAndIFC by using load_handler
2025-12-30 05:58:04 +01:00
falken10vdl
c0f240379c
Update formatting expression evaluation to include element context
2025-12-29 19:17:30 +01:00
falken10vdl
1fd8878796
Merge pull request #7505 from falken10vdl/text-annotations-squash-merge
...
PR7500 squashed commit
2025-12-28 12:47:30 +01:00
falken10vdl
315b8b7112
Fix: LoadBlendMetadataAndIFC by using load_handler
2025-12-27 20:58:19 +01:00
Ryan Schultz
d69b4927a2
Fix: Add window to shader editor context override
...
The copy_node_graph() method checks for a "window" key in the context
override, but get_shader_editor_context() wasn't providing it. This
caused the function to return early, preventing external styles from
loading.
Updated get_shader_editor_context() to include the window when the
screen differs from the current context, following the same pattern
used in get_viewport_context().
2025-12-27 09:59:47 -06:00
Ryan Schultz
7fcdec0a4c
extending a2a5780d59: Reuse opening if mapped.
2025-12-27 09:23:33 -06:00
Ryan Schultz
bc6209ad91
Fix #7372 : Increase almost_zero tolerance to handle matrix transformation precision
...
Changed tolerance from 1e-5 to 1e-4 to account for floating-point errors
introduced by matrix transformations. Fixes section annotations being
incorrectly excluded from drawings when they should be visible.
2025-12-25 21:18:22 -06:00
Ryan Schultz
19534e225f
Fix #6661 : Have update_drawing_name function update the camera object's name in Blender, as well.
2025-12-25 19:29:57 -06:00
Ryan Schultz
96fe9b5398
Use hide_set() for IfcSpaces instead of hide_viewport
...
Moves IfcSpace hiding from collection assignment to after scene
addition, allowing hide_set() to work properly once objects are
in the view layer. Fixes RuntimeError during IFC import.
2025-12-25 19:05:30 -06:00
Ryan Schultz
05f7ffcbcc
fix #6682 : avoid applying styles directly to geometry when inherited from material
...
When duplicating elements, skip assign_body_styles if the element's
constituent materials already have style representations. This prevents
creating redundant IfcStyledItem entities on the geometry when styles
should be inherited from the material definition.
2025-12-25 18:32:03 -06:00
Andrej730
9f8a4d25b5
cmake export - fix issue finding zstd config on Windows
2025-12-25 19:09:22 +05:00
Thomas Krijnen
7fdf815d3c
Re-run express rule codegen #7501
2025-12-24 15:33:44 +01:00
Thomas Krijnen
35e2be955b
Test files #7501
2025-12-24 15:33:44 +01:00
Thomas Krijnen
8d3c610965
Map None -> Indeterminate to prevent iterating over none in non-shortcircuiting rule execution #7501
2025-12-24 15:33:44 +01:00
Andrej730
633c3bc7eb
build-deps - move some code to powershell
2025-12-24 19:20:00 +05:00
Andrej730
8e639b00e3
Skip freetype dependency as it's not required anymore
...
It's not required since OCCT 7.6.0 https://github.com/Open-Cascade-SAS/OCCT/commit/5c9493b34878267b65879270951026982507917b
2025-12-24 19:20:00 +05:00
Andrej730
c6220b79b6
build-deps - use cmake --build
2025-12-24 19:20:00 +05:00
Andrej730
5d8d6a0a4c
build-deps - use cpp files compilation multiprocessing
...
To speed up the process. Previously we were using `/m` which build different targets in parallel, but not .cpp files. So rocksdb could have been building for 30 mins because of this.
2025-12-24 19:20:00 +05:00
Andrej730
f3669db8e7
black .
2025-12-24 19:18:56 +05:00
falken10vdl
1a7947aa75
Merge pull request #7515 from falken10vdl/metadata-blend-file-suffix-configuration
...
Metadata-blend-file-suffix-configuration
2025-12-24 08:30:08 +01:00
falken10vdl
2403428d12
copy_node_graph handle missing temp_override keys
2025-12-23 07:12:19 +01:00
falken10vdl
48bb541f2f
add configurable suffix for metadata blend file
2025-12-23 06:54:43 +01:00
Andrej730
cc559212a3
cmake - fix regression with policy not taking effect after 3971408
2025-12-22 19:57:26 +05:00
Andrej730
a3fda66dec
black .
2025-12-22 19:57:26 +05:00
Andrej730
3a697e3062
dependabot - track Python tools versions
2025-12-22 18:44:42 +05:00
Andrej730
d41985f23a
format cmake files
2025-12-22 18:44:42 +05:00
Andrej730
b686c19a25
Create .gersemirc
2025-12-22 18:44:42 +05:00
falken10vdl
b0450597d0
Merge pull request #7513 from falken10vdl/fixes-ui-customization
...
SaveBlendMetadataFile to use IFC directory for temporary file path and fix panel visibility logic in UI
2025-12-21 13:57:28 +01:00
falken10vdl
2cac0bdca6
SaveBlendMetadataFile to use IFC directory for temporary file path and fix panel visibility logic in UI
2025-12-21 12:17:54 +01:00
Kristoffer Andersen
fb3e35c964
Fix macOS platform entries in CI workflow
2025-12-20 08:56:06 +01:00
falken10vdl
276a488c7e
Merge pull request #7509 from falken10vdl/Improve-saving-metadata.blend-file
...
Refactor SaveBlendMetadataFile to improve speed and IFC data cleanup
2025-12-20 04:16:55 +01:00
falken10vdl
9a1b0ce44c
Refactor SaveBlendMetadataFile to improve speed and IFC data cleanup
2025-12-20 04:10:26 +01:00
Ryan Schultz
45de750790
Fixes #7507 : Fix: Prevent spatial element placement corruption during drawing activation
...
sync_references was syncing spatial element placements FROM Blender TO IFC,
corrupting their correct positions. Spatial elements (storeys, spaces,
buildings) often have Blender objects at Z=0 for modeling convenience, but
their IFC placements store absolute positions.
Solution: Skip syncing placements for IfcSpatialElement and IfcGrid types,
as their IFC placement is the source of truth.
Fixes storey elevation corruption during SECTION_LEVEL annotation generation.
2025-12-19 12:44:23 -06:00
Andrej730
b1b67de420
cmake - move ccache usage to an option
2025-12-19 19:11:06 +05:00
Andrej730
13be6ccd45
Sort imports
2025-12-19 18:53:14 +05:00
Andrej730
29176330e8
Revert "Make dataclasses args optional to support Python 3.9 #6725 "
...
This reverts commit ad7473ff1f .
2025-12-19 18:43:17 +05:00
Andrej730
b784cb06ae
Revert "Make zip strict argument optional to support Python 3.9"
...
This reverts commit 3bdce4fbc3 .
2025-12-19 18:43:17 +05:00
Andrej730
5d42ded154
Fix unsorted __all__ ruff check
2025-12-19 18:43:17 +05:00
Andrej730
4db9d60a97
Drop Python 3.9 support as it reached EOL
2025-12-19 18:43:17 +05:00
falken10vdl
85aeb6e1cc
PR7500 squashed commit
2025-12-19 14:06:16 +01:00
dependabot[bot]
eba4405310
Bump actions/download-artifact from 6.0.0 to 7.0.0
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v6.0.0...v7.0.0 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-19 13:40:39 +01:00
dependabot[bot]
22c972d88a
Bump actions/upload-artifact from 5 to 6
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-19 13:40:27 +01:00
dependabot[bot]
abb19e0870
Bump actions/checkout from 5 to 6
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-19 13:39:50 +01:00
Andrej730
cc63e79186
simple_spf - bump #7363
2025-12-19 17:39:00 +05:00
Andrej730
a40e211f25
ci - add black formatter annotations
2025-12-19 17:34:57 +05:00
Andrej730
d8b8fb628b
ci - github summary for ruff
2025-12-19 17:34:57 +05:00
Andrej730
fda3bd319f
Use black formatter action for pretty summaries
2025-12-19 17:34:57 +05:00
Andrej730
2c3281917a
black .
2025-12-19 17:34:57 +05:00
falken10vdl
f2eb777b3b
Merge pull request #6638 from falken10vdl/USER_UI_CUSTOMIZATION
...
User UI customization
This can be enabled in Extras at user discretion.
2025-12-19 09:16:09 +01:00
falken10vdl
2264fbeb44
put settings at the end. black
2025-12-19 09:07:26 +01:00
falken10vdl
53115e0654
Improve command handling in drawing tool to skip None values
2025-12-19 08:56:19 +01:00
falken10vdl
5dab742623
Remove documentation files: restore original state
...
- Removed interface.rst (was added in this PR)
- Removed all PNG documentation images that were added in this PR:
- bonsai_customization1.png
- bonsai_customization2.png
- bonsai_interface.png
- bonsai_interface2.png
- bookmarks.png
- gear_tabs.png
These files were not present in the upstream v0.8.0 branch and have been removed to restore the original documentation state.
2025-12-19 08:56:19 +01:00
falken10vdl
70cc77df90
Enhance IFC collection removal
2025-12-19 08:56:19 +01:00
falken10vdl
633474b4f6
Refactor UI preferences to use 'save_metadata_blend_file' instead of 'user_ui_customization' for metadata handling
2025-12-19 08:56:19 +01:00
falken10vdl
08d9e31a3a
provide user feedback in IFC export
2025-12-19 08:54:01 +01:00
falken10vdl
e4e1364eaa
align underscore below the active tab icon
2025-12-19 08:54:00 +01:00
falken10vdl
76b6f6b16b
Implement user interface customization features and enhance metadata handling
2025-12-19 08:54:00 +01:00
falken10vdl
888ab85548
Refactor UI helpers into helper module for better organization
2025-12-19 08:51:07 +01:00
falken10vdl
34cf69e3fb
cleanup
2025-12-19 08:51:07 +01:00
falken10vdl
89973a7a76
Refactor to use blender properties so loading metadata preserves session settings
2025-12-19 08:51:07 +01:00
falken10vdl
ba3c96485a
major refactor using blender props which we cna now save teh belnd metadata
2025-12-19 08:51:07 +01:00
falken10vdl
3d18aca2f2
Add operators for saving and loading blend metadata files
2025-12-19 08:51:07 +01:00
falken10
71538455b4
black executed in root directory
2025-12-19 08:51:06 +01:00
falken10vdl
7a90388f54
documentation
2025-12-19 08:51:06 +01:00
falken10
403d761e14
remove comments
2025-12-19 08:51:06 +01:00
falken10
7852102b33
load and save json settings
2025-12-19 08:51:06 +01:00
falken10
9aea302d92
added reset option
2025-12-19 08:51:06 +01:00
falken10
1fd3e2791f
added TAB visibility
2025-12-19 08:51:06 +01:00
falken10
4a71ea1fd6
code simplification
2025-12-19 08:51:06 +01:00
falken10
d0dbdbc205
added lb_labels
2025-12-19 08:51:06 +01:00
falken10
c8306d44b9
First version complete
2025-12-19 08:51:06 +01:00
falken10
0c428c54ad
eye icon to show or hide panel
2025-12-19 08:51:06 +01:00
falken10
50fa245a56
added uilist for subpanels
2025-12-19 08:51:06 +01:00
falken10
6ba738fcaa
Added bookmarks TAB
2025-12-19 08:51:06 +01:00
Ryan Schultz
2ed991ebce
Filter drawing search to only match DRAWING annotations
2025-12-18 12:37:31 -06:00
Ryan Schultz
30dbf48f6d
Extending https://github.com/IfcOpenShell/IfcOpenShell/commit/3ebb046619e43a1f42087e95fb9be1959cbfe0a4 :
...
Force UI redraw to flush pending Blender operations, as Blender was crashing during bulk printing. Not 100% this fixed everything, as there are a few crashes that spring up still, but is better.
2025-12-18 10:28:58 -06:00
falken10vdl
ba142d3b16
Merge pull request #7498 from falken10vdl/New-search-tool
...
New search tool interface. This one supersedes #7315 .
Cheers!
2025-12-18 15:41:54 +01:00
Andrej730
2581c36a5f
black .
2025-12-18 18:47:13 +05:00
Andrej730
4d52480cbe
cmake - find dependencies from exported config file
2025-12-18 18:46:04 +05:00
Andrej730
f8144cdbad
ci.yml - color cmake output
2025-12-18 18:46:04 +05:00
falken10vdl
59c9b16276
Migrate old filter prefixes to new filter_mode system and enhance filter handling based on user preferences
2025-12-18 10:56:18 +01:00
falken10vdl
affaa859ef
Enhance filter operation modes with new preferences for chaining and default behaviors
2025-12-18 10:20:28 +01:00
falken10vdl
738a068474
Refactor filter suggestion handling to streamline preference access and improve code clarity
2025-12-18 09:12:42 +01:00
Ryan Schultz
bc5e4d7935
removed debugging print statements from previous commit.
2025-12-17 21:30:09 -06:00
Ryan Schultz
3ebb046619
Fix #7138 : rasterized background from wrong drawing when printing all
...
Force viewport to use scene camera before rendering underlay. When
print_all was used, viewport remained locked to local camera from
previous drawing, causing OpenGL render to capture wrong view.
2025-12-17 21:19:39 -06:00
Ryan Schultz
3f7eba2467
Include 'Commercial Kitchen Hood' in IFC suggestions
...
Added new suggestion for 'Commercial Kitchen Hood' under IfcAirTerminal and IfcAirTerminalType.
2025-12-17 12:48:48 -06:00
falken10vdl
1477d650a4
Rename to chain_filter_with_set_operations for clarity and update related preferences
2025-12-17 19:28:00 +01:00
falken10vdl
8912cca652
Increase dialog width for filter value suggestions to improve usability
2025-12-17 11:13:17 +01:00
Esteban DUGUEPEROUX
9d14369656
cmake: Add missing WITH_OPENCOLLADA definition
2025-12-17 11:09:05 +01:00
falken10vdl
d6e9d7d339
use edit_filter_query to edit json configuration
2025-12-17 10:55:14 +01:00
falken10vdl
965a303b4b
Add edit filter query option for backward compatibility in draw_filter function
2025-12-17 00:25:57 +01:00
falken10vdl
bf75509fdf
Enhance filtering capabilities with JSON support for include/exclude operations
2025-12-16 19:47:41 +01:00
falken10vdl
ce35903459
First commit for a simplified searching operation with suggestions
2025-12-16 17:13:07 +01:00
Ryan Schultz
21c4382b71
Small UI tweaks
2025-12-16 06:56:00 -06:00
falken10vdl
33ba7c45b9
Merge pull request #7316 from falken10vdl/Show-attributes-for-relating-type
...
Add attribute info for relating type
2025-12-16 09:48:50 +01:00
falken10vdl
76f4f4e212
Merge pull request #7207 from falken10vdl/unwrap-ifcreferenceimage
...
Add unwrapping of UV for IfcReferenceImage
2025-12-16 09:45:09 +01:00
falken10vdl
fdf741b209
Add description to Image Scaling Tool operator for clarity + black
2025-12-16 09:26:28 +01:00
falken10vdl
5a108b1c0e
Merge pull request #7077 from falken10vdl/Add-Mass-and-Time-Unit-to-New-Project-Wizard-panel
...
Add mass and time unit to new project wizard panel
2025-12-16 08:46:46 +01:00
falken10vdl
6135d07b67
Merge pull request #7072 from falken10vdl/Enhanced-Classification-Display-in-Object-Information
...
Add classification system to the Object Information, Classification References Subpanel
2025-12-16 08:43:42 +01:00
Ryan Schultz
cf5ffad9af
feat(drawing): support multiple file selection in Add Reference
...
Enable importing multiple .svg reference files at once using
standard Blender multi-select (Shift/Ctrl+click).
Includes backward compatibility and test coverage.
2025-12-15 13:18:29 -06:00
Andrej730
b42581b223
cmake - fix WSOCK32 lib required for OCCT on Unix ( ce7fdcc)
2025-12-15 19:02:06 +05:00
Andrej730
bf2c27528c
cmake - fix issue with using cmake occt packages <7.7.0
2025-12-15 19:02:06 +05:00
Andrej730
deb6243ce5
cmake - use INCLUDES DESTINATION for includes paths export
...
As it's more idiomatic.
2025-12-15 19:02:06 +05:00
Andrej730
621cc4f039
build scripts - don't provide ccache explicitly
...
as it's autodetected
2025-12-15 19:02:05 +05:00
Andrej730
cd87217f4e
build scripts - don't provide cxx-std-17
...
As it's automatically set by the cmake script.
2025-12-15 19:02:05 +05:00
Andrej730
87e4846f71
ci.yml - use ccache for examples too
2025-12-15 19:02:05 +05:00
Andrej730
4138d9f464
ci.yml - drop OCCT cmake variables preferring cmake config
...
Just found that it's available from `occt-misc` package.
2025-12-15 19:02:05 +05:00
Andrej730
c7b75d2863
ci.yml - add packages to use occt cmake config
2025-12-15 19:02:05 +05:00
Andrej730
57197dd439
cmake export - export OpenCASCADE_INTERFACE target
...
To avoid issues if user provided OCC_INCLUDE_DIR and OCC_LIBRARY_DIR.
2025-12-15 19:02:05 +05:00
Andrej730
46dc6cf08b
ci.yml - use depth 1 for swig
2025-12-15 19:02:04 +05:00
Andrej730
4a2058ebc6
build-all - remove debug print
2025-12-15 19:02:04 +05:00
falken10vdl
5294fa1cbe
Add preference for mass and time units visibility in project wizard
2025-12-15 13:39:46 +01:00
falken10vdl
a98cad161e
Refactor mass and time units panel into collapsible section using .panel method in project wizard UI
2025-12-15 13:27:20 +01:00
falken10vdl
f222a8ba4f
Add mass and time units as a panel to project wizard UI
2025-12-15 13:27:20 +01:00
falken10vdl
f902c7a50a
ui change to add or not add mass and time units
2025-12-15 13:27:20 +01:00
falken10vdl
b1c4822315
black formatting
2025-12-15 13:27:20 +01:00
falken10vdl
93579b8f66
Cleanup based on core developer's feedback
2025-12-15 13:27:20 +01:00
falken10vdl
169ca806c0
Updated with core developer feedback
2025-12-15 13:27:20 +01:00
falken10vdl
a4e76ed6ee
Updated with core developer feedback: fixed for Tonne and added tests
2025-12-15 13:27:20 +01:00
falken10vdl
146301b0c0
use kilogram as default for SI and Seconds for Imperial
2025-12-15 13:27:20 +01:00
falken10vdl
487a2014f5
proposal to add massunit and timeunit in project creation wizard
2025-12-15 13:27:19 +01:00
falken10vdl
cb89fbfd86
Add attribute info for relating type
2025-12-15 12:23:30 +01:00
Ryan Schultz
6ab7acfa57
closes #3340 : right click on section/elevation tag to open corresponding drawing.
...
video: https://github.com/IfcOpenShell/IfcOpenShell/issues/3340#issuecomment-3650097896
2025-12-13 20:45:48 -06:00
Ryan Schultz
a2a5780d59
Fix #6392 : when duplicating a window/door/etc, the associated IfcOpenElement duplicates as well.
...
Also when `bim.append_library_element` it copies the IfcOpenElement, as well.
2025-12-13 09:37:56 -06:00
Andrej730
276c9c9833
ci - also temp disable ifcopenhouse executables execution
2025-12-12 20:54:39 +05:00
Andrej730
31740784de
examples - disable ifcopenhouse build temporarily to fix CI
2025-12-12 20:41:22 +05:00
Andrej730
dd683d1115
examples - further simplify linking
2025-12-12 20:19:42 +05:00
Andrej730
b237fac4b8
examples - don't provide cxx_std_17 to targets explicitly
...
As it's already defined for the entire project.
2025-12-12 20:19:42 +05:00
Andrej730
20812ecd80
examples - don't provide boost components explicitly
...
Since they're already included to `IfcParse`.
2025-12-12 20:19:42 +05:00
Andrej730
1d7d0f6d05
cmake export - export some variables to inspect installation
2025-12-12 20:16:14 +05:00
Andrej730
d5210e0d75
cmake export - propagate HAS_SCHEMA definitions to exported IfcParse target
2025-12-12 20:16:14 +05:00
Andrej730
d303acd660
cmake export - propagate IFOPSH_WITH_ROCKSDB to cmake config
...
Apparently, cmake isn't exporting definitions defined globally `add_definitions`, so creating interface target to combine rocksdb and our definitions.
2025-12-12 20:16:13 +05:00
Andrej730
8f44f60546
cmake - remove unused FOPSH_WITH_ROCKSDB_ZSTD definition
2025-12-12 19:30:23 +05:00
Andrej730
01f97a5860
IfcParse - export include path
2025-12-12 19:30:23 +05:00
Andrej730
4d34e4296c
examples - build IfcAlignment using cmake package
2025-12-12 19:30:22 +05:00
Andrej730
43533706a4
examples - build IfcOpenHouse/IfcAdvancedHouse using cmake package
2025-12-12 19:30:22 +05:00
Andrej730
61269136cd
cmake - clean up a bit in non-advanced variables
2025-12-12 19:30:22 +05:00
Andrej730
5a0f8d30cf
cmake - install headers using PUBLIC_HEADER, deprecate INCLUDEDIR
2025-12-12 19:30:21 +05:00
Andrej730
99835fcab3
IfcParseExamples not to rely on includes
2025-12-12 19:30:21 +05:00
Andrej730
92964fb5ef
cmake - option to build only common schemas
2025-12-12 19:30:21 +05:00
Andrej730
159538e2bb
cmake - add _d debug postfix for libraries on Windows
2025-12-12 18:33:48 +05:00
Andrej730
a62a4bb158
cmake - install examples too
2025-12-12 18:33:48 +05:00
Andrej730
084992ddcc
Make IfcParseExamples buildable outside of the main build tree
...
It's a very verbose version of consuming IfcOpenShell cmake package, but we'll be able to use it as a start point to build upon.
2025-12-12 18:33:48 +05:00
Andrej730
39dd08c84e
cmake - keep VERSION_OVERRIDE option description ( 3971408a0)
2025-12-12 18:12:43 +05:00
Ryan Schultz
37f3199749
When selected, preserve text decorations for IfcAnnotation in local view
2025-12-11 13:38:53 -06:00
Andrej730
2627052b55
cmake - export IfcOpenShellConfig.cmake
2025-12-11 19:55:41 +05:00
Andrej730
f5b1d7695a
build-deps - remove unused gmp and mpfr paths
...
Since it's header-only it doesn't need them
2025-12-11 18:03:44 +05:00
Andrej730
d876c001e2
Remove deprecated BOOST_LIBRARYDIR var
2025-12-11 18:03:44 +05:00
Andrej730
20d6547e54
run-cmake.bat - use cgal config instead of explicit paths
2025-12-11 18:03:44 +05:00
Andrej730
71a36147a6
FindCGAL - another fix for 6591a6981
2025-12-11 18:03:44 +05:00
Andrej730
f708594853
svgfill cmake - drop special cmake_minimum_required
2025-12-11 18:03:44 +05:00
Ryan Schultz
01b2124102
small tweak to previous commit
2025-12-11 07:02:39 -06:00
Ryan Schultz
592ac168c5
add "Fire Extinguisher" to Ifc_classes_suggestions
2025-12-10 21:09:05 -06:00
Esteban DUGUEPEROUX
4b56cc7916
cmake: Add HDF5 to IFCOPENSHELL_LIBRARIES
2025-12-10 18:25:33 +01:00
falken10vdl
d91d7257c8
Merge pull request #7308 from falken10vdl/Extras-subpanel-in-addon-settings
...
Add Extras in addon preferences to conditionally add functionality. One extra added from commit from sjb007 to allow for container hide/show/isolate
2025-12-10 16:44:16 +01:00
Andrej730
dbe23ca809
FindPROJ - fix outputs description
2025-12-10 20:04:02 +05:00
Andrej730
9880ee79b2
FindPROJ - restore CMAKE_MODULE_PATH after module is executed
2025-12-10 20:04:02 +05:00
Andrej730
6591a69816
FindCGAL - keep CGAL::CGAL target name
2025-12-10 20:04:02 +05:00
Andrej730
c475a377b7
build-deps - use precompiled headers to speed up OCCT building process
2025-12-10 19:52:42 +05:00
Andrej730
ce7fdcc191
build-deps - use OCC_INSTALL_DIR instead of includes/libs path
2025-12-10 19:52:42 +05:00
Andrej730
e503dad510
build-deps - fix typo
2025-12-10 19:52:42 +05:00
Andrej730
517ba237f9
build-deps - coexisting Release and Debug installations
2025-12-10 19:52:41 +05:00
Andrej730
994a364474
build-deps - simplify build/install commands
2025-12-10 19:52:41 +05:00
Andrej730
9d828852c0
Use cmake configs to find USD
...
Also renamed `USD::` namespace to `pxr::` to match packaage name.
2025-12-10 19:52:41 +05:00
Ary Obenholzner
7a62f65af0
Fix large BCF file creation by allowing Zip64
2025-12-10 15:21:11 +01:00
Esteban DUGUEPEROUX
d566ba6e1f
cmake: Use correct proj target
...
See-Also: https://proj.org/en/stable/development/cmake.html
2025-12-10 15:20:02 +01:00
Esteban DUGUEPEROUX
c32a6dc0ca
cmake: Support shared build for rocksdb
2025-12-10 15:19:33 +01:00
Esteban DUGUEPEROUX
3971408a07
cmake: Add project() command before options to be able to toggle them
2025-12-10 15:16:13 +01:00
Esteban DUGUEPEROUX
13ed0c3096
Take into account remarks
2025-12-10 15:07:56 +01:00
Esteban DUGUEPEROUX
02233f86cf
cmake: Add install command for qtViewer
2025-12-10 15:07:56 +01:00
falken10vdl
75881aab24
place new code after the current preferences one to follow the order. Added to type checking
2025-12-08 09:35:08 +01:00
falken10vdl
c4da1dda4d
Refactor addon preferences to make it cleaner as per developer's feedback
2025-12-08 09:25:49 +01:00
falken10vdl
9f6e92eefd
black
2025-12-07 23:11:29 +01:00
falken10vdl
db2234acef
Add Extras in addon preferences to conditionally add functionality. One extra added form commit from sjb007
2025-12-07 23:09:18 +01:00
sboddy
b4135194ca
Merge pull request #7431 to hide the clash decorator in the 3D view.
2025-12-07 18:07:29 +00:00
Andrej730
d174ecf760
cmake - make USD_SUPPORT build succeed
2025-12-05 20:24:01 +05:00
Andrej730
2213c3773d
UNIFY_ENVVARS_AND_CACHE - check if var is defined to fix some warnings
2025-12-05 20:24:01 +05:00
Andrej730
1ad1883f0e
Findnlohmann_json.cmake
2025-12-05 20:24:01 +05:00
Andrej730
c2a03eb658
cmake - fix uninitialized vars
2025-12-05 20:24:00 +05:00
Andrej730
225039aa96
cmake - remove unused LIBXML2_INCLUDE_DIR after 6a0caa798
2025-12-05 20:24:00 +05:00
Andrej730
3cc8477a01
cmake - move ifcgeom installs to ifcgeom cmake
...
we don't install kernel libraries as they now have `OBJECT` type
IFCGEOM_SCHEMA_LIBRARIES and headers were handled in b7a9199 30184a3 9d28628
2025-12-05 20:24:00 +05:00
Andrej730
40cffe2dd1
cmake - remove unused installs after 8fb10d2
2025-12-05 20:24:00 +05:00
Andrej730
0d651e377a
run-cmake.bat - add usage
2025-12-05 20:24:00 +05:00
Andrej730
8ea4b9e38c
Remove redundant links in 0555523c9
2025-12-05 20:24:00 +05:00
Andrej730
0555523c98
cmake - move all cgal related stuff to CGAL::CGAL target
2025-12-04 19:59:07 +05:00
Andrej730
db09744428
Temporarily disable setting point3 tag to fix build ( 4fc2f623c)
...
Since `point3` don't currently have `tag` member.
Ping @aothms
2025-12-04 19:59:07 +05:00
Andrej730
91f19f7a54
cmake - remove unused CMP0074 policy
...
it's automatically applied since cmake 3.12
2025-12-04 17:44:13 +05:00
Andrej730
6a0caa7989
cmake - fix missing xml.lib in debug builds #7413
...
After 5d56025 we were using `LibXml2::LibXml2` instead of `LIBXML2_LIBRARIES` for linking, but this target was missing debug variants leading to issues during linking.
2025-12-04 17:44:13 +05:00
Andrej730
9820adb337
svgfill - use standard cmake installation (same as 083fab525)
2025-12-04 17:44:13 +05:00
Andrej730
a588d15438
run-cmake.bat - option to use ninja generator for debugging
2025-12-04 17:44:13 +05:00
Andrej730
bf308995fb
install-ifcopenshell.bat - add usage example
2025-12-04 17:44:12 +05:00
Andrej730
172d840a77
cmake - remove unused WITH_RELATIONSHIP_VALIDATION compilation definition
2025-12-04 17:44:12 +05:00
Andrej730
16336766da
build-all - remove WASM_TOOLCHAIN_FILE doc deprecated after 89a6eac
2025-12-04 17:44:12 +05:00
Andrej730
549b2e6ff8
black .
2025-12-04 17:44:12 +05:00
Ryan Schultz
30e750d770
some old vestige of a bygone era.
2025-12-02 11:13:47 -06:00
Ryan Schultz
f50bbe83a3
extend https://github.com/IfcOpenShell/IfcOpenShell/commit/a038fa62baadff8793f8a17e9367b9be03d283a4 : Use spacebar to edit IfcAnnotations, as well.
2025-12-02 10:00:57 -06:00
Thomas Krijnen
4fc2f623cf
Count number of emitted normals in OBJ serializer, which might be less than verts when writing line geometries
2025-12-02 16:32:37 +01:00
Andrej730
1468bf3c97
parse_ifcxml - remove redundant ifdef WITH_IFCXML
...
The entire file is already wrapped in `WITH_IFCXML`, so no need to do it again for some block.
2025-12-02 19:55:56 +05:00
Andrej730
c7df59e961
cmake - indicate that OpenCascade is only used by IfcGeom
2025-12-02 19:55:56 +05:00
Andrej730
6cbd3ed014
cmake - drop OPENCASCADE_LIBRARIES variable #7388
2025-12-02 19:55:56 +05:00
Andrej730
a5d0187343
ifcparse cmake - fix missing ifcxml symbols in python wrapper #7406
2025-12-02 19:55:56 +05:00
Andrej730
67421c533c
ifcparse cmake - make compile definition more explicit #7406
2025-12-02 19:55:56 +05:00
Esteban DUGUEPEROUX
2e5d87b5d7
cmake: Link Eigen3 only against targets needing it
2025-12-02 14:53:44 +01:00
Andrej730
9807c2bedf
Fix possible crash on bim.split_along_edge #7394
2025-12-02 16:11:39 +05:00
Andrej730
52baba0fe0
cmake - don't use debug Python by default, move it to USE_DEBUG_PYTHON option
2025-12-02 16:11:38 +05:00
Andrej730
e304154037
Fix deprecated typing symbols
2025-12-02 16:11:38 +05:00
Andrej730
dfb8298ecf
black .
2025-12-02 16:11:38 +05:00
Ryan Schultz
0ee084b5d9
Support IfcAnnotation to IfcAnnotation assignment in AssignSelectedObjectAsProduct
2025-12-01 17:34:37 -06:00
Gorgious
c769c9e67c
Update to gizmos system
...
Added more gizmos for multi-panel windows and for the door transom.
Support negative dimension values (lining offset for door and window)
Fix railing, stair, and roof being regenerated during UI panel draw instead of on property change
Various code quality changes and DRY improvements
2025-12-01 23:13:34 +01:00
Ryan Schultz
349cbf27b9
updated comment for previous commit.
2025-12-01 11:06:09 -06:00
Ryan Schultz
f083425656
Fix #7438 - increase tolerance in making Shapely fills
2025-12-01 11:01:52 -06:00
Ryan Schultz
ad812bda47
fix #3238 : Auto-switch representation to match active drawing on type assign
2025-11-30 21:01:41 -06:00
Ryan Schultz
5b7888984e
Fix #6495 : when Shift+G is run to regenerate a wall, it refreshes the cut decorator as well.
2025-11-30 20:02:57 -06:00
Ryan Schultz
e3d254d3e5
fix #6250 : have name of duplicated type show in outliner, as well.
2025-11-30 19:07:14 -06:00
Ryan Schultz
3b83f978ab
Fix #6334 : Preserve annotation vertex order during subdivision to prevent arrow/text flip ( #7437 )
2025-11-30 15:54:57 -06:00
Gorgious
5b1e599b5f
Fix bug when snapping to mesh with the parametric gizmos
2025-11-30 21:57:54 +01:00
Gorgious
ad4fc76546
Major refactor of parametric gizmo system: dimension lines and code consolidation
...
Major changes:
- Relocate gizmo infrastructure from bim/gizmo.py to module/drawing/gizmos.py
- Replace arrow-based property gizmos with dimension line gizmos throughout
- Add view-dependent positioning: gizmos automatically reposition based on camera angle to stay visible and avoid overlapping geometry
- Add special icons for stair to deal with edge cases
Code quality:
- Add DRY helper methods for gizmo positioning across stair, door, and window
- Remove redundant visibility logic
- Extract integer input handling to dedicated module for reuse
- Add comprehensive documentation for gizmo architecture
2025-11-30 21:55:36 +01:00
Esteban DUGUEPEROUX
b7a9199253
cmake: Externalize geometry mapping target cmake config
2025-11-30 15:29:21 +01:00
Esteban DUGUEPEROUX
986cb905b2
cmake: Externalize geometry_serializer cmake config files to their own directory
2025-11-30 15:29:21 +01:00
Esteban DUGUEPEROUX
30184a3f6d
cmake: Externalize geometry_serializer cmake config files to their own directory
2025-11-30 12:29:26 +01:00
Gorgious
8f7cf76d98
Fix wrong stair length calculation when having no custom first or last tread run
2025-11-30 11:28:40 +01:00
Esteban DUGUEPEROUX
083fab5255
cmake: Use standard install way
...
For specific install customization, use CMAKE_INSTALL_BINDIR, CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR variables.
See-Also: https://cmake.org/cmake/help/latest/guide/tutorial/Installation%20Commands%20and%20Concepts.html
2025-11-30 11:11:51 +01:00
Esteban DUGUEPEROUX
0724fac698
cmake: Enable svgfill only for Python wrapper
2025-11-30 11:10:03 +01:00
Esteban DUGUEPEROUX
9775dfc2c1
Add svgfill directly in IfcOpenShell git repo
2025-11-30 11:09:36 +01:00
Esteban DUGUEPEROUX
658713f142
Remove svgfill as git module to add it directly in next commit
2025-11-30 11:09:36 +01:00
Esteban DUGUEPEROUX
81bf187ee6
cmake: put IFCXML_SUPPORT related config in IfcParse cmake config file
2025-11-30 11:05:46 +01:00
Gorgious
8f3e67b747
Prevent user from setting parametric stair properties to a value that can't generate valid geometry
2025-11-30 10:36:24 +01:00
Thomas Krijnen
bd57cc8735
Move sweep directrix closer to origin #7408
2025-11-30 09:56:27 +01:00
Ryan Schultz
8d617c87c8
Extend github.com/IfcOpenShell/IfcOpenShell/commit/1b2ad6c93f633df46d55f65bf97e730461fd7e6c - apply new type to all the selected objects.
2025-11-29 15:53:08 -06:00
Ryan Schultz
1b2ad6c93f
Add interactive dialog for type duplication with assignment option
...
Add dialog to DuplicateType operator allowing users to set name, description,
and optionally assign the active object to the duplicated type. Add duplicate
button to product UI in type panel with auto-assignment enabled by default.
2025-11-29 15:13:38 -06:00
Gorgious
ffe9f65b3c
Refactor and improve parametric gizmo system
...
- You can now input values using the keyboard once you clicked on a gizmo
- Gizmos now support click > move > click in addition to drag and drop (yay carpal tunnel !)
- Optimize snapping performance
- Consolidate door and window type in model.py
- You can now cycle through window and door types using the cycle gizmo
- Pen, validate, cancel, lock, and cycle gizmos are now billboards and follow view direction
- Draggable gizmos are now billboard 2D arrows instead of 3D cones
2025-11-28 23:22:42 +01:00
Stephen Boddy
1e212f7b23
black
2025-11-28 18:44:06 +00:00
Stephen Boddy
121acfe6b3
Minor Feature: Add ability to hide the clash decorator in the 3D view.
2025-11-28 18:37:10 +00:00
Ryan Schultz
5a8f557e7f
Fix #7398 : move purge funtions with other purge functions
2025-11-28 10:41:34 -06:00
Andrej730
5b56093147
black .
2025-11-28 21:03:50 +05:00
Andrej730
bcb63f450b
build-deps - make rocksdb installation minimal
2025-11-28 21:03:50 +05:00
Andrej730
e4c82e2c92
FindOpenCASCADE - log found config
2025-11-28 21:03:50 +05:00
Esteban DUGUEPEROUX
8fb10d2ff3
cmake: Use OBJECT target instead of STATIC one to avoid mix static and shared targets in a same build
2025-11-28 17:03:25 +01:00
Esteban DUGUEPEROUX
37d29e5d47
cmake: Use same PRIVATE scope for Serializers target
2025-11-28 16:17:41 +01:00
Diego Mateos
7221e72cfa
fix some target folders to respect parent cmake
2025-11-28 14:11:57 +01:00
Gorgious
c828c1b08d
Refactor parametric element gizmos
...
- Add gizmos for windows and stairs
- Add BaseParametricGizmoGroup mixin for doors, windows, and stairs
- Improve snapping with screen-space distance calculation
- Add GizmoPlus, GizmoMinus, GizmoCycle icon gizmos
- Add GizmoPropConfig dataclass for cleaner gizmo configuration
2025-11-27 22:56:27 +01:00
Ryan Schultz
fcf5614004
Is user saving .blend file?
2025-11-27 09:50:31 -06:00
myoualid
5a4d60e08c
util functions to retrieve material profiles and material layers for an element
2025-11-27 13:30:38 +01:00
Bruno Postle
a675365dfd
Correct fix for OCC built with VTK support
2025-11-26 22:53:38 +00:00
Bruno Postle
5ab6deb121
Revert cbd2689 Propagate CMP0167 policy
2025-11-25 23:08:52 +00:00
Bruno Postle
cbd26896ba
Propagate CMP0167 policy to fix cmake warnings
2025-11-25 18:45:59 +00:00
Bruno Postle
ceeca752ea
Fix build error from OCC with VTK support
...
OpenCASCADE may be built with VTK support. Try to find VTK first to avoid
CMake errors when OpenCASCADE's config references VTK targets.
2025-11-25 18:44:32 +00:00
Thomas Krijnen
9d437b5bc3
Mark simple type instance file ownership #7226
2025-11-25 09:19:28 +01:00
Andrej730
1d0b4675c0
Ruff - fix usage of deprecated Tuple, List
2025-11-24 11:01:26 +05:00
Andrej730
497ebc55e7
black .
2025-11-24 11:01:26 +05:00
Ryan Schultz
97a501036b
Have dimensions like 4' - 1/2" read like 4' - 0 1/2", as is more the convention.
2025-11-23 18:22:40 -06:00
Gorgious
592c51b526
Add interactive gizmo system for editing parmeterized door
...
Implement visual parameter manipulation in 3D viewport with reusable
gizmo components. Features snap-to-mesh (Ctrl), precision mode (Shift),
and real-time feedback. Includes cone gizmos for dimensions,
arc gizmo for swing direction, and icon gizmos for edit controls. Gizmos are globally are individually toggleable in the addon preferences.
May be expanded upon later to add gizmos to other paramaterized elements (window, railing, roof, stairs, array, ...).
Unfortunately gizmos can't tap into the builtin snap system or bonsai snap system which is built for modal operators so gizmos implement yet another custom rather naive snap system.
2025-11-23 20:16:27 +01:00
Gorgious
3dd7290ee1
Display default parameters for parametric elements under "Model" in the preferences
2025-11-23 15:43:59 +01:00
Ryan Schultz
d7ac5f2441
Fix #7397 - don't delete aggregate if relatingobject is a IfcSpatialElement
2025-11-23 08:09:13 -06:00
Thomas Krijnen
461404cd45
Don't terminate parsing on invalid entity names
2025-11-23 11:16:47 +01:00
Ryan Schultz
bfd5b1bede
add to https://github.com/IfcOpenShell/IfcOpenShell/commit/57bc709b6fef6381bbb2810da15e568290c4a77a : Fix elevation display by converting from project units to meters on import
...
When importing spatial decomposition, get_storey_elevation() returns values in the project's unit system (e.g., feet), but format_distance() expects values in meters. Added unit_scale conversion (elevation * unit_scale) before formatting to ensure elevations display correctly regardless of project units.
2025-11-22 16:53:28 -06:00
Ryan Schultz
0d0b6cc6b2
Additional fixes to https://github.com/IfcOpenShell/IfcOpenShell/commit/57bc709b6fef6381bbb2810da15e568290c4a77a
2025-11-22 15:40:47 -06:00
falken10vdl
d2dfeb79a3
Refactor AddReferenceImage to use public property for dimensions dialog
2025-11-22 22:26:44 +01:00
falken10vdl
43b12d55d4
Add dimensions dialog for reference image and update scaling logic
2025-11-22 22:26:44 +01:00
falken10vdl
834634aedb
Properly AddReferenceImage operator initialization (ready for IFC edit mode)
2025-11-22 22:26:44 +01:00
falken10vdl
069873053a
Add Image Scaling Tool and integrate with workspace hotkeys
2025-11-22 22:26:44 +01:00
falken10vdl
ec51c67373
For ifcReferenceImage by default set color type to "Texture" and warn user
2025-11-22 22:26:44 +01:00
falken10vdl
d8263349cd
Add UV mapping for IfcAnnotation images in IfcImporter
2025-11-22 22:26:44 +01:00
falken10vdl
2be142eff2
Add unwrapping of UV for IfcReferenceImage
2025-11-22 22:26:44 +01:00
Ryan Schultz
57bc709b6f
Fix imperial unit conversion for plan and section level decorators
...
Level annotations were incorrectly converting feet to meters and back,
causing values like 3ft to display as 9'10". Updated format_value() to
accept in_unit_length parameter and pass it to format_distance(), since
Blender's Z coordinates are already in project units.
- Add in_unit_length parameter to BaseDecorator.format_value()
- Set in_unit_length=True in PlanLevelDecorator.draw_labels()
- Set in_unit_length=True in SectionLevelDecorator.draw_labels()
2025-11-22 14:39:13 -06:00
Ryan Schultz
b7b6e4aadf
Consolidate format_distance functions and fix imperial unit formatting
...
Replaced duplicate format_distance in unit.py with comprehensive MeasureIt-ARCH version from helper.py. Fixed critical floating point errors by changing inPerFoot from 11.9999 to 12.0, eliminating spurious fractions on whole numbers. Implemented auto-precision detection to simplify fractions (64/256 → 1/4) while preserving precise values like 3/256 when needed. Enhanced imperial parsing to support flexible input formats (optional symbols, mixed fractions, leading decimals) and fixed suppress_zero_inches functionality in dimension annotations.
2025-11-22 13:49:30 -06:00
falken10vdl
19b9a55404
Add posibility to edit classification system name in menu after invoking enable_editing_classification_reference
2025-11-22 20:12:49 +01:00
Gorgious
9c39ac0a48
You can now edit default parameters when generating a new parametric geometry for Door, Window, Railing, Roof and Stair types.
...
UI is in the addon preferences.
2025-11-22 18:12:50 +01:00
Gorgious
a77f1b9fd1
Fix bug where one could setup negative lengths in the parametric door properties that whould throw an error when validating the geometry
2025-11-22 15:28:51 +01:00
Gorgious
63921e3fd8
Improve formatting for imperial units for the elevation of spatial elements elevation in the spatial decomposition panel (Re #7373 )
2025-11-22 13:32:19 +01:00
falken10vdl
ffc538da87
cleanup consistent calling
2025-11-22 09:56:00 +01:00
falken10vdl
c3c63370ba
sort rows black formatting
2025-11-22 09:56:00 +01:00
falken10vdl
a4743b5e04
refactor using row in uy and util.classification.get_classifiation(reference)
2025-11-22 09:56:00 +01:00
falken10vdl
1cdd44996b
Add classification system to the Object Information, Clasifiction References Subpanel
2025-11-22 09:56:00 +01:00
Massimo Fabbro
27d0b04db5
black
2025-11-22 09:02:53 +01:00
Massimo Fabbro
87283874a1
Add simple examples for ifc5d import from csv
2025-11-22 09:02:53 +01:00
Gorgious
584d37de50
Fix #6048 (and #7373 ?) Adding a distance with a unit for an IfcSpatialElement in the Spatial Decomposition list doesn't save value
...
Support imperial units
Spatial element empty is moved in the 3d viewport accordingly
2025-11-22 01:16:39 +01:00
Gorgious
ca2058d56b
Fix #4974 - remap parent relationships when duplicating objects
2025-11-22 00:30:01 +01:00
Gorgious
481676e51b
fix - recalculate normals for wall-mounted handrail railings
...
Fixes inverted normals on SweptDiskSolid end caps by recalculating
face normals after IFC geometry is loaded into Blender.
Fixes #6483
2025-11-22 00:04:57 +01:00
Gorgious56
fe502577c9
Merge pull request #7400 from IfcOpenShell/0.8.0
...
fix - apply object scale before using it to void an element #6378
2025-11-21 23:56:10 +01:00
Gorgious
65e8ca17d2
fix - apply object scale before using it to void an element #6378
2025-11-21 23:54:20 +01:00
Gorgious56
6bd7f02208
Merge pull request #7399 from IfcOpenShell/main
...
fix - handle float64 checksums from files saved in previous Blender v…
2025-11-21 23:28:28 +01:00
Gorgious
452d0f6023
fix - handle float64 checksums from files saved in previous Blender versions
...
Files saved in previous Blender versions stored position checksums as float64
(24 bytes for location, 72 bytes for rotation), but the current code only
expected float32 format. This caused a shape mismatch error (6,) vs (3,) when
comparing checksums during save operations.
Added byte size detection in is_moved() methods to automatically handle both
old float64 and new float32 checksum formats, ensuring backward compatibility
with files from previous versions.
Fixes ValueError when saving IFC files loaded from older Blender versions.
2025-11-21 23:23:57 +01:00
Andrej730
07005a9d3b
build-deps - switch to freetype github archives for stability #7390
2025-11-22 01:02:41 +05:00
Andrej730
450ce689ba
build-deps - fix set resetting ERRORLEVEL in commands logged in 52d3bae54 #7390
2025-11-22 01:02:41 +05:00
Andrej730
7c210721e6
build-deps - add pushd/popd for consistency
2025-11-22 01:02:16 +05:00
Andrej730
7e48d712a2
cmake - fix error building with GLTF_SUPPORT=OFF ( 487a4f3, #7390 )
2025-11-21 18:28:06 +05:00
Andrej730
9eedbc6f72
FindOpenCASCADE - fix linking issue with non-configs #7390
...
Unexpected consequence of #7365 - previously `OPENCASCADE_LIBRARIES` supposed to be a list of libraries filepaths, but after refactor `OpenCASCADE_LIBRARIES` end up being both list of library names and list of filepaths.
And since link directories for the names was not provided, it failed to find the libraries to link.
If using OpenCASCADEconfig it wouldn't fail as cmake would evaluate library names as imported target names.
To fix it and simplify it even further, in case of manually provided paths, it now creates `OpenCASCADE_INTERFACE` target and stores it in `OpenCASCADE_LIBRARIES` - target will automatically have all the includes, library names and library dirs.
2025-11-21 18:28:06 +05:00
Andrej730
68b021b0e6
build-deps - fix hdf5 warnings in logs (similar to 890665b77)
2025-11-21 18:28:06 +05:00
Andrej730
a559b72e18
build-deps - fix boost project cache reset targeting wrong path
...
Noticed by another "The system cannot find the path specified." in logs 😅
2025-11-21 18:28:06 +05:00
Andrej730
32496c40b3
build-deps - fix missing popd for mpfr dir leading to issues installing hdf5 #7390
2025-11-21 18:28:05 +05:00
Andrej730
1b249b1013
build-deps - fix very very old bug with GitCloneAndCheckoutRevision not always checking out revision
...
Since this if-block happens in parentheses, then all `%VAR%` are expanded at the start and then `%ERRORLEVEL%` and `%RET%` values have no relation to the actual result of `git clone`. So if user were (un)lucky, then `%RET%` would be not yet set to "0" (by the previous function call), then it would skip checking out revision.
`GitCloneOrPullRepository` had similar issue, but it was never used anywhere.
2025-11-21 18:28:05 +05:00
Andrej730
d3fcf39c76
Windows build scripts - ECHO_ON env variable for debugging
2025-11-21 18:28:05 +05:00
Andrej730
692ef5ecea
cmake - fix error finding Eigen::Eigen target #7390
...
`EIgen::Eigen` target used in #7340 for linking exists only if there's a cmake config, while there are cases when there's just include directory. Added same name interface target to mimic config.
2025-11-20 20:12:48 +05:00
Andrej730
f56a97512a
Rename IFC_GEOM_EXPORTS replaced in #7340
2025-11-20 20:12:48 +05:00
Andrej730
4f5ebef5da
cmake - use HDF5_INCLUDE_DIR instead HDF5_INCLUDE_DIRS
...
As this is the variable defined by `FindHDF5`.
2025-11-20 20:12:48 +05:00
Andrej730
57a724e80f
FindCGAL.cmake
2025-11-20 20:12:48 +05:00
Andrej730
1b8652a789
FindOpenCOLLADA.cmake
2025-11-20 20:12:48 +05:00
Andrej730
c1aa702896
FindHDF5 - describe used variables, initialize from env
2025-11-20 20:12:47 +05:00
Andrej730
5b43d2b75e
HDF5Config -> FindHDF5
...
See the reasoning in https://github.com/IfcOpenShell/IfcOpenShell/pull/7193#issuecomment-3552830928
2025-11-20 20:12:47 +05:00
Andrej730
3330e79556
FindLibXml2 - initialize from env variables
2025-11-20 20:12:47 +05:00
Andrej730
88d09c83b7
FindLibXml2 - add_debug_variants
2025-11-20 20:12:47 +05:00
Andrej730
5e6b96ee99
cmake - remove wasm_sysroot as superseded by e833d0c
2025-11-20 20:12:47 +05:00
Thomas Krijnen
bd07078def
Remove spurious cd
2025-11-20 16:12:26 +01:00
Andrej730
1d01d1f184
build-all.py - postpone 4396126
2025-11-20 16:58:04 +05:00
Dion Moult
3cee0811d4
Update VERSION
2025-11-20 22:06:24 +11:00
Dion Moult
a46228a57e
Hotfix to generate IOS docs until we properly package bsdd
2025-11-20 21:16:57 +11:00
Andrej730
158fe92644
HDF5Config.cmake - use CMAKE_SOURCE_DIR instead PROJECT_SOURCE_DIR
...
It doesn't really matter in this case - it matters really only for FindLibXml2, because `PROJECT_SOURCE_DIR` point to svgfill, when it's config executed, instead of `CMAKE_SOURCE_DIR` - so `CMAKE_SOURCE_DIR ` is never removed from the path, leading to cyclic calls. Adding for HDF5 too just for consistency.
2025-11-19 19:41:30 +05:00
Andrej730
12166ddbba
HDF5Config.cmake - restore patched module path at the end
2025-11-19 19:41:30 +05:00
Andrej730
36a0c22217
FindUSD.cmake (untested)
2025-11-19 19:41:30 +05:00
Andrej730
59cc9d4a23
FindLibXml2.cmake
2025-11-19 19:41:29 +05:00
Andrej730
f3d918f76c
FindOpenCASCADE - describe used variables at the top, move env vars
2025-11-19 19:41:29 +05:00
Esteban Dugueperoux
613015e37e
cmake: Externalize OpenCascade config ( #7365 )
...
Co-authored-by: Andrej <azhilenkov@gmail.com >
2025-11-19 18:02:07 +05:00
Esteban DUGUEPEROUX
be0eea1bed
cmake: Have a dedicated CMakeLists.txt for IfcConvert & co
2025-11-19 13:28:45 +01:00
dependabot[bot]
37bbc0b693
Bump actions/upload-artifact from 4 to 5
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:11:39 +01:00
dependabot[bot]
30093499fa
Bump aws-actions/configure-aws-credentials from 4 to 5
...
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials ) from 4 to 5.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases )
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md )
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:08:39 +01:00
dependabot[bot]
8e95bf73f1
Bump actions/upload-pages-artifact from 3 to 4
...
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact ) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases )
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:08:09 +01:00
dependabot[bot]
05f7aac853
Bump docker/setup-buildx-action from 1 to 3
...
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) from 1 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v3 )
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:08:02 +01:00
dependabot[bot]
b135dd6994
Bump actions/setup-python from 2 to 6
...
Bumps [actions/setup-python](https://github.com/actions/setup-python ) from 2 to 6.
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/v2...v6 )
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:07:34 +01:00
dependabot[bot]
a5e7d7c4cc
Bump docker/login-action from 1 to 3
...
Bumps [docker/login-action](https://github.com/docker/login-action ) from 1 to 3.
- [Release notes](https://github.com/docker/login-action/releases )
- [Commits](https://github.com/docker/login-action/compare/v1...v3 )
---
updated-dependencies:
- dependency-name: docker/login-action
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:07:26 +01:00
dependabot[bot]
9680f6b29c
Bump docker/build-push-action from 2 to 6
...
Bumps [docker/build-push-action](https://github.com/docker/build-push-action ) from 2 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases )
- [Commits](https://github.com/docker/build-push-action/compare/v2...v6 )
---
updated-dependencies:
- dependency-name: docker/build-push-action
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:05:03 +01:00
dependabot[bot]
bc8dd3a3ab
Bump mamba-org/setup-micromamba from 1 to 2
...
Bumps [mamba-org/setup-micromamba](https://github.com/mamba-org/setup-micromamba ) from 1 to 2.
- [Release notes](https://github.com/mamba-org/setup-micromamba/releases )
- [Commits](https://github.com/mamba-org/setup-micromamba/compare/v1...v2 )
---
updated-dependencies:
- dependency-name: mamba-org/setup-micromamba
dependency-version: '2'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:04:39 +01:00
dependabot[bot]
9caf47b41f
Bump docker/setup-qemu-action from 1 to 3
...
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action ) from 1 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases )
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v3 )
---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:04:14 +01:00
dependabot[bot]
5e1787b146
Bump actions/download-artifact from 4.1.7 to 6.0.0
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 4.1.7 to 6.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.7...v6.0.0 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:03:52 +01:00
dependabot[bot]
07147f4b7f
Bump actions/checkout from 2 to 5
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 2 to 5.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v2...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-19 13:02:55 +01:00
dependabot[bot]
4dfe15bd88
Merge pull request #7270 from IfcOpenShell/dependabot/npm_and_yarn/src/ifctester/webapp/vite-6.4.1
2025-11-19 17:00:32 +05:00
Andrej730
5896630630
Add dependabot to track github actions versions
2025-11-19 16:58:22 +05:00
Andrej730
48b1493c5c
build_win - use official ccache-action as PR got merged
2025-11-19 16:58:22 +05:00
Andrej730
ee75ea1182
black .
2025-11-19 16:58:22 +05:00
Esteban DUGUEPEROUX
1876a788a9
cmake: Externalize cmake config for Serializers
2025-11-19 11:24:15 +01:00
Esteban DUGUEPEROUX
9d28628157
cmake: Have a dedicated CMakeLists.txt for kernels
2025-11-19 11:23:04 +01:00
Esteban DUGUEPEROUX
9b257b0a10
Remove support of cityjson for ifcconvert binary
2025-11-19 11:19:58 +01:00
Thomas Krijnen
db7900027e
fix stub
2025-11-19 10:43:52 +01:00
Andrej730
2af7470950
run-cmake.bat - use boost installation path
...
Now there's no need for BOOST_ROOT and BOOST_LIBRARYDIR anymore.
2025-11-18 19:59:34 +05:00
Andrej730
e1c3c44fb3
IfcGeomServer cmake - remove headers from source files
2025-11-18 19:59:34 +05:00
Andrej730
e7c422469a
IfcGeomServer cmake - remove not required chrono component #7337
...
Noticed Linux build failing now
2025-11-18 19:59:34 +05:00
Andrej730
52d3bae543
build-deps - add some logs to make errors easier to narrow donw
2025-11-18 19:59:34 +05:00
Andrej730
b130925c5f
build-deps - fix missing cd before trying to extract boost archive
...
Not sure when it was introduced, but it was still using previous dependency path and leading to confusing error:
```
Boost 1.86.0 already downloaded. Skipping.
Extracting Boost 1.86.0 into L:\Projects\Github\IfcOpenShell\_deps from boost-1.86.0-b2-nodocs.7z
An error occurred
```
2025-11-18 19:59:34 +05:00
Andrej730
890665b77b
build-deps - fix reappearing "The system cannot find the file specified." error in logs
...
because of the failing rename
2025-11-18 19:59:34 +05:00
Andrej730
99c95bc92d
black .
2025-11-18 19:59:34 +05:00
Bruno Perdigão
8647f9c357
Polyline tool - avoids rounding angle when distance is too big.
2025-11-17 20:38:34 -03:00
Bruno Perdigão
300855276f
See #7046 . Add Numpy version of a few Blender fuctions to improve precision. The snapping system was having a poor precision with large numbers. Some functions were rewritten to use Numpy instead of Mathutils. This seems to solve the issue, but further adjustments might be necessary
...
Note: rv3d.perspective_matrix should be avoided in these context. Use a numpy version of np.array(window_matrix) @ np.array(view_matrix). See https://github.com/IfcOpenShell/IfcOpenShell/issues/7046
Note2: region_2d_to_origin_3d_np clamp should be used for the snap to work in orthographic view.
2025-11-17 20:38:34 -03:00
Bruno Perdigão
1a8831012b
Fix snapping for blender curve objects
2025-11-17 20:38:34 -03:00
Thomas Krijnen
1bc4e82b7d
reorder
2025-11-17 19:15:20 +01:00
Thomas Krijnen
fc197c1d32
anon namespace
2025-11-17 19:09:31 +01:00
Thomas Krijnen
33cfa9e2b1
function3
2025-11-17 18:57:22 +01:00
Thomas Krijnen
9e9d664511
.glb --separate-z-up-node option
2025-11-17 18:26:00 +01:00
Ryan Schultz
1b9acadd81
Disable text decorations when not in camera view
2025-11-17 09:01:19 -06:00
Andrej730
c5f6d47c44
build-deps - include swig version to dependency name
2025-11-17 19:29:07 +05:00
Andrej730
d19b6d72ef
build-all.py - include swig-version to dependency name
...
Otherwise it doesn't update and keeps using older cached version.
2025-11-17 19:28:10 +05:00
Andrej730
919231b096
build-all.py - remove outdated comment
2025-11-17 19:28:10 +05:00
Andrej730
cead5cc75d
ci - add swig build to fix failing stub test
...
Older swig versions have some redundant symbols, using the one we use in other build scripts.
2025-11-17 19:28:09 +05:00
Andrej730
9396cb226f
ci - add opencollada to fix failing stub test
2025-11-17 19:28:09 +05:00
Andrej730
56a63cab6e
build-deps - sync swig version with build-all.py
2025-11-17 19:28:09 +05:00
Andrej730
449d13bd5f
Fix stub missing construct_iterator
2025-11-17 19:26:14 +05:00
Thomas Krijnen
487a4f345d
Creoox json serializer
2025-11-17 14:06:39 +01:00
Thomas Krijnen
d6daa64c48
Support --element-hierarchy in .glb output
2025-11-17 14:05:59 +01:00
Thomas Krijnen
bf0aa247a0
IfcConvert: only conditionally bypass properties
2025-11-17 13:50:50 +01:00
Andrej730
a7c8c908fe
Fix left out invalid mesh data blocks and fix failing geom core test (after fcee54c)
2025-11-17 16:30:28 +05:00
Andrej730
64686dde5c
Remove redundant :type from doc-strings
...
Args types already covered by annotations
2025-11-17 16:30:27 +05:00
Andrej730
29ab446f8c
use common rst syntax in doc-strings
2025-11-17 16:30:27 +05:00
Andrej730
51e2e7cd82
Fix boundary bim test after 6c31d43
2025-11-17 16:30:27 +05:00
Andrej730
e879dac4bd
Remove obsolete tests after e662308
2025-11-17 16:30:26 +05:00
Andrej730
145c629d92
Fix core geometry tests after e662308 c4d54f7
2025-11-17 16:30:26 +05:00
Andrej730
3fe9279bb4
pyproject - fix typo
2025-11-17 16:30:26 +05:00
Andrej730
428d88f01c
Fix missing bsdd pydantic dependency in #7145
2025-11-17 16:30:26 +05:00
Andrej730
3986d4e85b
Remove unused tool.sequence methods
2025-11-17 16:30:26 +05:00
Andrej730
02d35b6047
Fix missing ifc_file definition in 471bd34
2025-11-17 16:30:25 +05:00
Andrej730
3cc5931eae
Fix missing imports and don't use api.run
2025-11-17 16:30:25 +05:00
Andrej730
db5ec77730
black format src/pyodide
2025-11-17 16:30:25 +05:00
Andrej730
bec46562f5
gitignore running_pid.json
2025-11-17 16:30:25 +05:00
Andrej730
1508c4ab05
test_feature - restore EPset_Drawing.ifc
2025-11-17 16:30:24 +05:00
Andrej730
99ae768ddf
test_feature - clean up .ifc.cache. files after test was executed
2025-11-17 16:30:24 +05:00
Andrej730
fb902a04f5
test_feature - use common prompts for loading/saving temp projects
2025-11-17 16:30:24 +05:00
Andrej730
e46a99870b
typing
2025-11-17 16:30:24 +05:00
Andrej
3fbba405d4
Merge pull request #7362 from sboddy/fix_7348_ci_test_normalize_path
2025-11-17 07:12:11 +01:00
Andrej730
989415f423
setup_pytest - use check_call and less repetition
2025-11-17 11:09:15 +05:00
Andrej730
7a3c7704b5
preferences descriptions - document autoreplaced strings in commands
2025-11-17 11:09:14 +05:00
Andrej730
5d7407e2b9
preferences descriptions - adjust line length
2025-11-17 11:09:08 +05:00
Andrej730
4a5f1b01a1
black .
2025-11-17 11:09:08 +05:00
Ryan Schultz
a038fa62ba
Use spacebar to toggle on/off direct profile edit mode. Works on IfcExtrudedSolids, LAYER2 objects(slabs), and axis-based geometry.
2025-11-16 15:00:10 -06:00
Ryan Schultz
bb1127d815
prompt for Blender version
2025-11-15 19:10:15 -06:00
Ryan Schultz
40cf322fb4
fall back to a Windows system font if the font isn’t found in addon folder
2025-11-15 09:58:37 -06:00
Ryan Schultz
f32ccec154
Fix #7364 : If you change the width/height of a drawing camera it doesn't scale the text decoration.
2025-11-15 08:25:27 -06:00
Ryan Schultz
dc0b73f46f
Ensure annotation is in front of a RCP camera.
2025-11-15 08:06:06 -06:00
Ryan Schultz
36cb625c4e
Fix #7353 : Fix section annotations squashed in section views
...
Add target view detection to generate_section_reference_points() to create
appropriate geometry for each view type. Plan views get horizontal lines
(clip_segment), section/elevation views get vertical lines (elevate_segment).
2025-11-15 07:52:07 -06:00
Stephen Boddy
89314733ff
blackwq
2025-11-14 15:47:50 +00:00
Stephen Boddy
d4e945222d
Fix #7348 : test_normalize_path failure on CI/Linux.
2025-11-14 15:41:13 +00:00
Andrej730
fe80620a5d
Add basic parametric objects tests #7355
2025-11-13 19:13:28 +05:00
Andrej730
166ddb4799
Fix parametric stair editing after 3617d11 #7355
2025-11-13 19:13:28 +05:00
Andrej730
8e2a310f92
stair generation - remove debug prints ( b46136e)
2025-11-13 19:13:28 +05:00
Andrej730
339a0606c0
Fix failing product assignment test after 5a511ee
...
Moved code from `core`, added a warning so we could possibly narrow down #4014 in the future.
2025-11-13 19:13:27 +05:00
Andrej730
b6f1119eaa
Fix failing product assignment test after 555621c
2025-11-13 19:13:27 +05:00
Andrej730
139a024d5f
dev_environment.py - bump Blender version to 5.0
2025-11-13 19:13:27 +05:00
Andrej730
9491096485
black .
2025-11-13 19:13:27 +05:00
Thomas Krijnen
a34e42a519
Handle infra sweeps of open loops #7338
2025-11-13 12:43:41 +01:00
Esteban DUGUEPEROUX
6a7ecf7f58
cmake: Have a dedicated CMakeLists.txt for IfcGeomServer
2025-11-13 10:14:59 +01:00
Richard Brice
96da78c670
Updates IfcSectionedSurface so it works with taxonomy::function_item
2025-11-12 11:37:07 -08:00
Andrej730
9adc8e484a
Bonsai - bump ifcopenshell build #7330
2025-11-12 22:34:42 +05:00
kaplus
e8eb5e4d0a
Add continue statement to skip duplicate calculations
...
Skip general path to avoid duplicate calculations.
2025-11-12 13:14:38 +01:00
Andrej730
080222ffe6
black .
2025-11-12 12:56:35 +05:00
Ryan Schultz
abef655482
Fix #6938 - Have parent facet select the parent aggregate as well.
2025-11-11 20:19:38 -06:00
Ryan Schultz
85b3f831dc
copy query for aggregates into clipboard, to align with common UI pattern.
2025-11-11 20:17:37 -06:00
falken10vdl
d8ece32d62
Add markdown-it-py and mdurl dependencies for drawing module annotations ( #7346 )
2025-11-11 16:33:19 -06:00
Ryan Schultz
0df7117d37
Sort annotations to ensure FILLAREA types are drawn first (at the bottom)
2025-11-11 14:26:55 -06:00
sboddy
91d67e6371
Improve Merge/Mirror error messages to reduce confusion. ( #6911 )
2025-11-11 13:57:52 -06:00
Ryan Schultz
87d1b0637a
Close #7294 : Add target-view and scale classes to SVG parent group from IFC data
...
Reads from EPset_Drawing.TargetView and EPset_Drawing.Scale to add
CSS classes to the linework parent group for view-specific styling.
2025-11-11 12:47:58 -06:00
Esteban Dugueperoux
b8adddc648
fix test_number_formatting tests and add cases ( #7332 )
2025-11-11 11:25:00 -06:00
Andrej730
25d3edc537
Avoid producing test artifacts in src/bonsai
2025-11-11 19:56:57 +05:00
Andrej730
7f8cb80281
Fix TestDrawingStyles after 44cc127
2025-11-11 19:56:57 +05:00
Andrej730
a2ce2ea23a
Fix TestDisableEditingText crash after 679fa6d
2025-11-11 19:56:56 +05:00
Andrej730
7f7aef0e6e
Fix duplicate drawing core test ( 8ffa6fc)
2025-11-11 19:56:56 +05:00
Andrej730
821b5380ea
Fix copy to container test ( ddbe627)
2025-11-11 19:56:56 +05:00
Andrej730
e8bcbc83a4
Update operator.py
2025-11-11 19:56:56 +05:00
Andrej730
091af3c1c9
Add todo for unused expression ( 17d6b8a)
2025-11-11 19:56:55 +05:00
Andrej730
4cc50301dd
Remove unused variable ( 17d6b8a)
2025-11-11 19:56:55 +05:00
Andrej730
f643a1615e
Fix failing aggregate duplication test after 17d6b8a
2025-11-11 19:56:55 +05:00
Andrej730
71e78c67f8
Add visibility and lock steps to geometry.feature
...
Added steps to set 'is_visible' to TRUE and 'is_locked' to FALSE in the 'Spatial Decomposition' panel for the 'Override paste buffer - with active IFC data' scenario. This ensures the test covers visibility and lock state handling for IFC objects.
2025-11-11 19:56:55 +05:00
Andrej730
e7c4a19d9e
bim.override_object_duplicate_move - sync poll with object.duplicate_move
2025-11-11 19:56:54 +05:00
Andrej730
6c31d43e72
Fix feature tests after a11f81f
2025-11-11 19:56:54 +05:00
Andrej730
83b56d591b
Fix error activating drawing style
...
Example error:
```
TypeError: bpy_struct: item.attr = val: enum "Default" not found in ('city.exr', 'courtyard.exr', 'forest.exr', 'interior.exr', 'night.exr', 'studio.exr', 'sunrise.exr', 'sunset.exr')
```
There was a bug in shading_styles.json where we were using `Default` for `studio_light`, which is only available for `SOLID` shading type. Changed value to `forest.exr`, added code to handle old bugged value since users already copied and possibly modified shading_styles.json
2025-11-11 19:56:54 +05:00
Andrej730
e5b26067ab
typing
2025-11-11 19:56:54 +05:00
Andrej730
a4fae94be8
test_feature - add separate non-debug option to save ifc project
...
Also clean up temp folder before save (met issues when tests were using not updated shading_styles.json)
2025-11-11 19:56:53 +05:00
Andrej730
af4851f03a
Fixing bsdd feature tests ( a929ab0)
2025-11-10 18:58:02 +05:00
Andrej730
155d4c44ae
PanelSpy - fix error handling methods that have a return value
...
E.g. `ReferenceUI` has `self.get_object_name(context)` - since value wasn't returned, it was returning `None`, breaking the tests.
2025-11-10 18:58:02 +05:00
Andrej730
48119baf97
test_feature - non-background mode for debugging
2025-11-10 18:58:02 +05:00
Andrej730
dd1989aebb
test_feature - use pformat to print props for readibility
2025-11-10 18:58:01 +05:00
Andrej730
0806430700
TemplateListSpy - add repr
2025-11-10 18:58:01 +05:00
Andrej730
2d97f6638b
test_feature - add debugpy option
2025-11-10 18:58:01 +05:00
Andrej730
b10e5ad4d6
PanelSpy - target not all callables
...
Because sometimes we have `Data` classes as panel attributes and they're also callable.
2025-11-10 18:58:01 +05:00
Andrej730
24f991ceb1
Fix feature tests after a11f81f
2025-11-10 18:58:01 +05:00
Andrej730
ac11baa0c4
Fix the_object_name_does_not_exist not checking for errors
...
`assert True` was introduced in 1c1035e and original implementation with `assert False` was removed in b0d8101
2025-11-10 18:58:01 +05:00
Andrej730
1609a77b77
typing for PanelSpy related options
2025-11-10 18:58:00 +05:00
Andrej730
dd2f091a52
object.delete and outliner.delete overrides to reuse original poll methods for consistency
2025-11-10 18:58:00 +05:00
Andrej730
a7bf0e7d5e
Fix remove drawing feature test ( f11d79f)
2025-11-10 18:58:00 +05:00
Andrej730
19bdd3e622
i_set_the_prop_property_to_value - don't fail silently on incorrect bool values
2025-11-10 18:58:00 +05:00
Andrej730
e1bf891ec6
PanelSpy - also support draw_header for panels
2025-11-10 18:58:00 +05:00
Andrej730
4009834b97
PanelSpy - rename panel attr to blender_panel to avoid conflicts with panel method
...
Also added support for `panel` method.
2025-11-10 18:57:59 +05:00
Andrej730
77f5e1fbad
PanelSpy - add typing
2025-11-10 18:57:59 +05:00
Andrej730
c4eb77d544
Blender 5.0 - update shadint_styles eevee name
2025-11-10 18:57:59 +05:00
Andrej730
8a4ea43239
Blender 5.0 - fix error activating drawing styles
...
Some props were removed in Blender 5.0
2025-11-10 18:57:59 +05:00
Thomas Krijnen
f056e22f60
ruff
2025-11-10 11:59:10 +01:00
Thomas Krijnen
05e81040ce
black
2025-11-10 11:53:33 +01:00
Thomas Krijnen
8d8133e780
submodule
2025-11-10 11:45:05 +01:00
Thomas Krijnen
dceb35782e
Add platform tag for linuxarm64 in Makefile #7325
2025-11-10 11:17:24 +01:00
Thomas Krijnen
2c5f0c6cf2
Add Linux ARM 64bit to CI workflow #7325
2025-11-10 11:16:27 +01:00
Thomas Krijnen
abd667684d
Supply CGAL_WITH_GMPXX to ifcopenshell configure #7330
2025-11-10 10:48:24 +01:00
Thomas Krijnen
31b5f88497
Rename WITH_GMPXX to CGAL_WITH_GMPXX in build script #7330
2025-11-10 10:33:48 +01:00
Thomas Krijnen
77a7026d33
Disable GMPXX in CGAL build #733
2025-11-10 10:15:14 +01:00
Thomas Krijnen
9c5f3f9754
Disable GMPXX in CGAL build #7330
2025-11-10 09:51:38 +01:00
Esteban DUGUEPEROUX
5d56025014
cmake: Separate ifcparse build in its own CMakeLists.txt file
2025-11-10 09:42:51 +01:00
Bruno Postle
ad62c75f4f
ifcclash ifccsv ifcdiff ifcpatch: README.md stubs
...
The pyproject.toml files were referencing these missing files
2025-11-09 20:52:12 +00:00
Ryan Schultz
7a5bd03216
Close #7220 : Duplicate multiple selected Linked Aggregates at one time
2025-11-09 13:45:09 -06:00
Ryan Schultz
593e0e28a9
fix #4189 : local_view turns off/on text decorations, as well as cut decorator.
2025-11-08 16:35:46 -06:00
Massimo Fabbro
ed2b2de79a
Add profiler in ifcopenshell util and ifc5d quantify function time
...
Useful for quantify function optimization
2025-11-08 20:00:35 +01:00
Ryan Schultz
5a511eecc1
Fix #4014 : Unassign annotation from all products before reassignment
...
The edit_assigned_product() function now removes the annotation from all
existing IfcRelAssignsToProduct relationships instead of just one, preventing
annotations from being incorrectly assigned to multiple products simultaneously.
This fixes issues where leader lines wouldn't update correctly because the
annotation retained old product assignments.
2025-11-08 12:46:33 -06:00
Bruno Postle
83e0fa1287
Bump python bindings maximum python version
...
Python 3.14 is now a thing and the build seems ok
2025-11-08 17:38:56 +00:00
Ryan Schultz
a2dbdbf8cc
Fix #7274 : Add unique CSS class suffix to all selectors in sheet drawings
...
Previously, when multiple CSS selectors were comma-separated in a rule,
only the last selector received the unique drawing ID suffix. This caused
style conflicts when multiple drawings were placed on the same sheet.
Now all selectors in comma-separated lists receive the unique suffix,
ensuring proper style isolation between drawings.
Example:
Before: .cut.Status-DEMOLISH, .cut.Option-D.d2156 { ... }
After: .cut.Status-DEMOLISH.d2156, .cut.Option-D.d2156 { ... }
2025-11-08 10:41:43 -06:00
Ryan Schultz
3d68bbc0ca
Fix #7287 : to correctly position IfcAnnotation on RCP's.
2025-11-08 09:11:38 -06:00
Thomas Krijnen
40f9f261ae
submodule
2025-11-07 16:22:51 +01:00
Andrej730
c08cc58904
Blender 5.0 - fix opening Web UI
...
In Blender 5.0 some theme attributes were removed and moved to other places and code broke.
In the commit I've also switched the code to less dynamic approach, so static type checker could caught potential errors.
2025-11-07 19:13:44 +05:00
Andrej730
ebdb122a22
Fix error removing systems 6469f79
2025-11-07 19:13:44 +05:00
Andrej730
5de2752685
light ui - use calendar for simplicity
2025-11-07 19:13:44 +05:00
Andrej730
d2245a95c7
Blender 5.0 - fix issues related to EEVEE renamed again
...
Ahh, it was a mistake warning about non-`_NEXT` values previously - didn't realized that this name was temporary for Blender.
2025-11-07 19:13:43 +05:00
Andrej730
47075e95bd
Blender 5.0 - fix error enabling Rendered mode in Solar Analysis
2025-11-07 19:13:43 +05:00
Thomas Krijnen
9d4c980e02
black
2025-11-07 11:50:33 +01:00
Thomas Krijnen
53c1a1537d
ruff
2025-11-07 11:50:18 +01:00
Thomas Krijnen
7db2f66685
WKT footprint massaging
2025-11-07 10:59:33 +01:00
Thomas Krijnen
6dd34b1fa4
Fix failing test by bumping commit ref #7193
2025-11-07 10:59:10 +01:00
Ryan Schultz
862713cda4
related to #7298 - skip material, as well.
2025-11-06 20:56:56 -06:00
Ryan Schultz
06c1668e42
Closes #7298 - skips count on csv import.
2025-11-06 13:20:55 -06:00
Thomas Krijnen
5f9f0f26eb
submodule
2025-11-06 19:06:51 +01:00
Andrej730
8db22cdaf7
test_model - fix incorrect stair profile values in generation tests
2025-11-06 18:46:28 +05:00
Andrej730
3bed9262e5
Fix miscalculated stair lengths in some cases ( f52aafd)
...
`get_active_stair_calculated_params` wasn't updated when zero tread runs support was added and it's still was relying on a convention that `0.0` custom tread run = no custom tread run.
2025-11-06 18:46:06 +05:00
Andrej730
0c171a457b
stair generation - fix bug with extended top nib with zero first tread run
...
`s0 = V_(custom_first_last_tread_run[0] or tread_run, tread_rise) + td_vector` was assuming `0` means "no custom first tread run", not it means actually "zero first tread run", so could should be adjusted
before - https://files.catbox.moe/5ovqnh.mp4
after - https://files.catbox.moe/srorl2.mp4
2025-11-06 18:44:49 +05:00
Andrej730
b5e8dfd863
generate_stair_2d_profile - add typing
2025-11-06 18:44:49 +05:00
Thomas Krijnen
c9df87fc25
submodule
2025-11-06 10:48:12 +01:00
Esteban DUGUEPEROUX
30925a4b3c
fix format
2025-11-05 19:26:22 +01:00
Esteban DUGUEPEROUX
ccf0efffce
cmake: Simplify hdf5 linkage
2025-11-05 19:26:22 +01:00
Andrej730
169c4392a9
test_model - simplify stair generation kwargs
2025-11-05 19:30:36 +05:00
Andrej730
e543785959
Fix breaking tests for stair length calculations with custom zero tread run ( f52aafd)
...
In both cases it was providing arguments `(0,0)`, but was assuming only one tread will be zeroed.
2025-11-05 19:30:36 +05:00
Andrej730
3617d119cb
Fix breaking old stair generation tests after f52aafd
...
Before f52aafd default `(0,0)` meant that there are no custom tread runs, but after the change it actually means that runs for first and last treads are 0. So default value should be adjusted.
Added explicit `None` value for clarity.
2025-11-05 19:30:36 +05:00
Andrej730
5d1f28c3cb
validate_object_selection - don't invalidate active objects when they're not in view layer
...
Since it's not illegal in Blender and can be helpful - e.g. when you were assigning class to ifc space, you would lose selection completely and would need to reselect object to continue working on it.
2025-11-05 19:19:49 +05:00
Andrej730
6f04eb12d0
black .
2025-11-05 19:18:11 +05:00
Ryan Schultz
b46136e9f8
For stairs, Lock total length now takes first and last tread widths into account as well.
2025-11-05 06:55:03 -06:00
Andrej730
c3fe2d0ee3
build_win - revert schema versions limit
...
Committed by accident when debugging 🥲
2025-11-05 14:05:00 +05:00
Andrej730
aeed371888
ifcopenshell.file - add todo notes for temp workarounds, make workaround more explicit
2025-11-04 19:24:22 +05:00
Andrej730
a50c8869a5
bonsai - fix ifcsqlite import ( 546a042)
2025-11-04 19:24:21 +05:00
Andrej730
04d1fe4052
sql, stream - more clear error message when accessing wrapped_data
2025-11-04 19:24:21 +05:00
Andrej730
4e1d0bcf22
Fix failing selecting products tests ( 3aa5ddb07)
...
After 3aa5ddb07 `select_products` adds to current selection, instead of resetting it.
So couple tests started to fail since they create new objects and `view_layer` is not yet updated (previously `bpy.ops.object.select_all(action="DESELECT")` was also implicitly updating view layer).
```
FAILED test/tool/test_spatial.py::TestSelectProducts::test_select_products - AssertionError: assert bpy.data.objects['Object'] in []
FAILED test/tool/test_system.py::TestSelectSystemProducts::test_run - AssertionError: assert bpy.data.objects['Object'] in []
```
2025-11-04 19:24:21 +05:00
Andrej730
d2126e5929
Blender 5.0 - avoid using deprecated use_nodes
2025-11-04 19:24:20 +05:00
Andrej730
3bdfbebc02
Blender 5.0 - accomodate new mathutils buffer protocol type
...
Long story short - since 5.0 `np.array(Vector())` is now producing `np.float32` instead of `np.float64`. So we have to provide `dtype` explicitly to support both <5.0 and >= 5.0.
See https://projects.blender.org/blender/blender/issues/149283
2025-11-03 19:32:59 +05:00
Andrej730
1a9bd1891e
blender 5.0 - fix moved bl_ui_utils module (bonsai is now launchable in 5.0)
2025-11-03 18:33:34 +05:00
Andrej730
1599bc14b3
Fix core/test_system.py ( 5de96c9)
2025-11-03 18:33:34 +05:00
Andrej730
30b74ab09c
blender 5.0 - ensure the latest module is used for type checking
2025-11-03 18:33:34 +05:00
Andrej730
24bee01f01
black .
2025-11-03 18:33:34 +05:00
Ryan Schultz
7329c485ea
Fix quantify() regression where by_type queries and grouped iteration could apply QTOs to all entities in the model instead of the intended element subset.
2025-10-31 10:03:52 -05:00
Andrej730
9c93b12084
Blender 5.0 - fix bpy_restrict_state error
...
It's probably will be very popular bug, when someone would try to migrate to Blender 5.0 using old Bonsai.
Example traceback:
```
File "Blender\5.0\extensions\.local\lib\python3.11\site-packages\bonsai\bim\prop.py", line 34, in <module>
import bonsai.bim.schema
File "Blender\5.0\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 23, in <module>
import bpy_restrict_state
ModuleNotFoundError: No module named 'bpy_restrict_state'
```
2025-10-31 18:50:53 +05:00
Andrej730
b97c7d39ad
dev_environment.py - small error message tweak
2025-10-31 18:50:52 +05:00
Andrej730
fa0c1c5d2a
dev_environment.py - fix typo
2025-10-31 18:50:52 +05:00
Andrej730
e4c49ce57b
Fix missing Serializers target when building just IfcGeomServer
...
Noticed testing command from #7277 . I believe Serializers it not actually needed to build IfcGeomServer.
Example error:
```
/usr/bin/ld: cannot find -lSerializers: No such file or directory
```
2025-10-31 18:50:52 +05:00
Andrej730
3ae77c68e8
build-all.py - add VERBOSE=1 for building executables
2025-10-31 18:50:52 +05:00
Andrej730
8b1cb8e7ae
black .
2025-10-31 18:50:52 +05:00
Andrej730
ce0348518d
cmake - note future cmake bug fixes
2025-10-31 18:50:52 +05:00
Andrej730
a660027b93
test_package - ensure wasm package is present for active build commit
2025-10-31 16:09:22 +05:00
Thomas Krijnen
44ef409335
Don't check for drawing semantics on qto or predefpset #7304
2025-10-31 09:56:54 +01:00
Ryan Schultz
089edff1db
fix for #7296 : handle openings without Blender representation in get_gross_top_area ( #7297 )
2025-10-30 20:40:06 -05:00
Thomas Krijnen
bd5a1b5bda
Account 2x3/4 differences in Shading/Rendering::Transparency()
2025-10-30 18:35:20 +01:00
Andrej730
ba3517f3aa
build-all.py - switch to dynamic_lookup for macos builds
...
1) `-undefined,suppress` is deprecated, linker is sending warnings about it and it seems to be superseded by `dynamic_lookup`
2) `-flat_namespace` is not compatible with GMP when building for intel, for some reason and results in horrible errors during linking:
Example error:
```
ld: branch8 out of range 366651 in ___gmpn_add_nc
final section layout:
__TEXT addr=0x00000000, size=0x02d09000, fileOffset=0x00000000
__text addr=0x00001400, size=0x0264a5e4, fileOffset=0x00001400
__stubs addr=0x0264b9e4, size=0x0000423c, fileOffset=0x0264b9e4
__stub_helper addr=0x0264fc20, size=0x00006c58, fileOffset=0x0264fc20
__gcc_except_tab addr=0x02656878, size=0x002efc04, fileOffset=0x02656878
__const addr=0x02946480, size=0x001cdc18, fileOffset=0x02946480
__cstring addr=0x02b140a0, size=0x0014324b, fileOffset=0x02b140a0
__unwind_info addr=0x02c572ec, size=0x0008d2d0, fileOffset=0x02c572ec
__eh_frame addr=0x02ce45c0, size=0x00024a30, fileOffset=0x02ce45c0
__DATA_CONST addr=0x02d09000, size=0x0022b000, fileOffset=0x02d09000
__got addr=0x02d09000, size=0x00001dc8, fileOffset=0x02d09000
__mod_init_func addr=0x02d0adc8, size=0x00000690, fileOffset=0x02d0adc8
__const addr=0x02d0b460, size=0x00227fd0, fileOffset=0x02d0b460
__DATA addr=0x02f34000, size=0x000c3000, fileOffset=0x02f34000
__la_symbol_ptr addr=0x02f34000, size=0x000056a0, fileOffset=0x02f34000
__data addr=0x02f396a0, size=0x0005f7b8, fileOffset=0x02f396a0
__thread_vars addr=0x02f98e58, size=0x000006d8, fileOffset=0x02f98e58
__thread_ptrs addr=0x02f99530, size=0x00000178, fileOffset=0x02f99530
__thread_data addr=0x02f996b0, size=0x000000d8, fileOffset=0x02f996b0
__thread_bss addr=0x02f99790, size=0x00018850, fileOffset=0x02f99790
__bss addr=0x02fb1fe0, size=0x0003b0c0, fileOffset=0x00000000
__common addr=0x02fed0a0, size=0x00009098, fileOffset=0x00000000
__LINKEDIT addr=0x02ff7000, size=0x0148e000, fileOffset=0x02fb2000
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
2025-10-30 19:45:24 +05:00
Andrej730
7f144b7b95
build-all.py - remove unused wasm flags
...
`-Wl,-undefined,suppress` have no meaning in emscripten and they are just ignored. And emscripten is ignoring undefined symbols by default without any flags.
2025-10-30 19:45:24 +05:00
Andrej730
19ac0b6c38
build-all.py - add VERBOSE=1 to the wrapper make command
2025-10-30 19:45:24 +05:00
Andrej730
3562437293
build-all.py - fix missing mac cross compilation host args in gmp
...
I guess something has changed in gmp 6.3.0 and this issue become more apparent.
Example error:
```
tmp-cnd_sub_n.s:133:14: error: tmp-cnd_add_n.sbrackets expression not supported on this target:
130 stp x8, x9, [x1,#16]
^
:2tmp-cnd_sub_n.s: :error: 134invalid instruction mnemonic 'bic':
6 bic x7, x13, x0:
error: invalid instruction mnemonic 'cset'^
~Lrt: cset x0, cc~
^~~tmp-cnd_add_n.s~:
131:2: error: invalid instruction mnemonic 'adcs'
adcs x8, x10, x6
^~~~
tmp-cnd_add_n.s:132:2: error: invalid instruction mnemonic 'adcs'
adcs x9, x11, x7
^~~~
tmp-cnd_add_n.s:133:14: error: brackets expression not supported on this target
stp x8, x9, [x1,#16]
^
tmp-cnd_add_n.s:134:6: error: invalid instruction mnemonic 'cset'
Lrt: cset x0, cs
^~~~
```
2025-10-30 19:45:24 +05:00
Andrej730
e8ece71d22
black .
2025-10-30 19:45:24 +05:00
Ryan Schultz
3f2cad0490
Add suppress_zero_inches parameter to imperial_length formatting function
2025-10-28 22:24:40 -05:00
Andrej730
5ec974ff94
Exclude build-all.py from main ruff check
2025-10-28 18:20:43 +05:00
Andrej730
2c585b649a
Fix RUFF037 (redundant quotes)
2025-10-28 18:20:14 +05:00
Andrej730
36c28f3953
Mention in docs wasm-wheels as the main wheels source for pyodide builds
2025-10-28 18:20:13 +05:00
Andrej730
d1763237d2
ifcopenshell docs make - add server target
2025-10-28 18:20:13 +05:00
Andrej730
e8544d78ee
ci.yml - note on rtti in rocksdb
2025-10-28 17:17:20 +05:00
Andrej730
e715a9467d
ci.yml - exclude PYTHON_LIBRARY as redundant
2025-10-28 17:17:20 +05:00
Andrej730
1f8c12a4c8
build_pyodide - test wasm wheel working
2025-10-28 17:17:20 +05:00
Andrej730
89a6eac535
build-all.py - access pyodide for necessary variables, simplify debug build env
2025-10-28 17:17:20 +05:00
Andrej730
d1ffb329c8
pyodide/setup.py - fix missing ifcopenshell subpackages
2025-10-28 17:17:20 +05:00
Andrej730
4396126a43
build-all.py - fix for upcoming pyodide changes (cmake INIT flags)
2025-10-28 17:17:20 +05:00
Andrej730
7448feed44
build-all.py - reinitialize wasm cxx flags from cflags to accomodate issue upstream
2025-10-28 17:17:19 +05:00
Andrej730
6bc4046b17
ifcwrap cmake - fix issue with debug build after migration to FindPython
...
In FindPython variable was renamed to Python_LIBRARY_DEBUG
2025-10-28 17:17:19 +05:00
Andrej730
1a83e52935
ifcwrap cmake - avoid using deprecated swig_link_libraries
2025-10-28 17:17:19 +05:00
Andrej730
f16d42ba14
ifcwrap cmake - use usual name for wrapper target
2025-10-28 17:17:19 +05:00
Andrej730
75135fe45d
cache_dependencies.py - fix tarfile deprecation warnings in 3.12-3.13
2025-10-28 17:17:19 +05:00
Andrej730
de89ab31cf
ifcwrap cmake - move DEBUG_POSTFIX logic to one place
2025-10-28 17:17:19 +05:00
Andrej730
c8a4f1bbd2
cmake - build without Python libraries on Unix
2025-10-28 17:17:19 +05:00
Andrej730
5be1858767
ifcwrap cmake - accomodate bug in cmake makefiles generator
2025-10-28 17:17:19 +05:00
Andrej730
ace1db739f
build-all - use shutil.which instead of custom function
...
To make it more idiomatic and custom function also was misinterpreting folders with the same name as existing executables.
2025-10-28 17:17:19 +05:00
Andrej730
80504310b6
build_pyodide - use ccache
2025-10-28 17:17:19 +05:00
Andrej730
a4dae9650f
build_rocky - switch to main branch ccache
2025-10-28 17:17:18 +05:00
Andrej730
c27a995480
build_pyodide - use prebuilt pyodide build env
2025-10-28 17:17:18 +05:00
Andrej730
5b4c54abd2
build-all.py - switch to gmp ftpmirror
...
previous url is inaccessible
2025-10-28 17:17:18 +05:00
Andrej730
57d0beedee
build_pyodide - display logs in github action output
2025-10-28 17:17:18 +05:00
Andrej730
d0ba675b1b
build_pyodide - upload build logs for debugging
2025-10-28 17:17:18 +05:00
Andrej730
f4f2fa9535
build_pyodide - pack cached dependencies
2025-10-28 17:17:18 +05:00
Andrej730
67707914b9
build_osx - remove setup-python
...
as it's already preinstalled on the image
2025-10-28 17:17:18 +05:00
Andrej730
12766d61d4
build-all.py - print BUILD_DIR
2025-10-28 17:17:18 +05:00
Andrej730
34374cba41
build_pyodide - no need to adjust version
...
since it's now inferred automatically
2025-10-28 17:17:18 +05:00
Andrej730
f8bb04eae3
build-all.py - accomodate pyodide build system automatically
...
as it's the main way to build the wasm package
2025-10-28 17:17:18 +05:00
Andrej730
aee8cbe479
build_pyodide.yaml - move build_pyodide to a separate script
2025-10-28 17:17:18 +05:00
Andrej730
cb36e10279
Add notes for pyodide building process
2025-10-28 17:17:18 +05:00
Andrej730
7ca44b5677
build-all.py wasm - move SIDE_MODULE=2 to cmake
...
Next to `EXPORTED_FUNCTIONS` and avoid possible issues with pyodide in the future (pyodide is using `SIDE_MODULE=1`, but currently not providing it libraries of type `MODULE`, only for shared ones).
2025-10-28 17:17:17 +05:00
Andrej730
a6921b83a1
ifcwrap cmake - provide correct suffix for wasm python extension
2025-10-28 17:17:17 +05:00
Andrej730
c3c94b9c59
pyodide setup.py - add dependencies
...
so micropip would be able to gather them automatically
2025-10-28 17:17:17 +05:00
Andrej730
576ef336fc
pyodide setup.py - add a note on not switching to pyproject.toml
2025-10-28 17:17:17 +05:00
Andrej730
b1fb541912
pyodide setup.py - ensure we have correct pyodide_2025_0_wasm32 suffix
...
Adding extension, but avoiding adding sources as we're not actually building.
As a result build will have a correct suffix `pyodide_2025_0_wasm32.whl` that's pyodide is currently using and this is pyodide is plan to use when it's going to release to PyPI, see https://peps.python.org/pep-0783/
2025-10-28 17:17:17 +05:00
Andrej730
6345b052da
build-all.py - add a note about alternative gmp mirror
2025-10-28 17:17:17 +05:00
Andrej730
061554d921
cmake - deduplicate ccache set_property code
2025-10-28 17:17:17 +05:00
Andrej730
bcaa412f4b
build-all.py - don't pass side module flags as usual flags
...
As they're parsed by emcmake automatically https://github.com/pyodide/pyodide-build/blob/bdd0b1422064de6d92264a08c599e85001a28567/pyodide_build/tools/cmake/Modules/Platform/Emscripten.cmake#L105-L107
2025-10-28 17:17:17 +05:00
Andrej730
9f6536b263
build-all.py - option to build wasm outside pyodide for debugging
2025-10-28 17:17:17 +05:00
Andrej730
226581f76e
build-all.py - provide exported functions to target explicitly
...
Otherwise it broke compilation in some cases when cmake would try to test that linker is working.
2025-10-28 17:17:17 +05:00
Andrej730
e833d0cd13
build-all - wasm to use packages instead of providing includes/libs paths explicitly
...
More complicated than I anticipated😅
Details
https://discourse.cmake.org/t/provide-absolute-paths-to-dependencies-with-cmake-find-root-path-search-during-cross-compilation-wasm/15241
2025-10-28 17:17:16 +05:00
Andrej730
ed3c95d9d7
build-all.py - move unsupported dependencies to script
2025-10-28 17:17:16 +05:00
Andrej730
7a4823a1bc
build-deps - use nuget to download ccache
2025-10-28 17:17:16 +05:00
Andrej730
80c0932174
build-all.py - print IFCOS_SCHEMAS
2025-10-28 17:17:16 +05:00
Andrej730
73a238e7b0
build-all.py - document required wasm variables
2025-10-28 17:17:16 +05:00
Andrej730
b95900f154
build-all.py - fix issue building wasm on apple device
2025-10-28 17:17:16 +05:00
Andrej730
da66e3c908
build-all.py - remove --host none from wasm args
...
As it's now obsolete and producing warnings `configure: WARNING: the "none" host is obsolete, use --disable-assembly`.
2025-10-28 17:17:16 +05:00
Andrej730
e04cc47022
build-all.py - bump freetype to avoid issues on cmake 4+
2025-10-28 17:17:16 +05:00
Andrej730
ce427698d9
build-all.py - add note on --without-xxx option
2025-10-28 17:17:16 +05:00
Andrej730
d3beae1374
Add Python 3.14 builds
2025-10-28 17:17:16 +05:00
Andrej730
389d481364
build-deps - set NUGET_EXE from PATH if it's available
2025-10-28 17:17:15 +05:00
Andrej730
3efd88b0d6
build-all - deduce python components from python path
2025-10-28 17:17:15 +05:00
Andrej730
0a5388f386
ifcwrap cmake - migrate to FindPython
...
Also simplify run-cmake to just prefix the path, instead of providing 3 paths explicitly.
2025-10-28 17:17:15 +05:00
Andrej730
71fa002707
build-deps - support overriding PYTHON_VERSION
2025-10-28 17:17:15 +05:00
Andrej730
dd80115aa2
build-deps - download Python using nuget
2025-10-28 17:17:15 +05:00
Andrej730
bc66710fec
build-deps - download nuget
...
to later download python using it
2025-10-28 17:17:15 +05:00
Andrej730
921241fbdd
build-deps - include ccache for convenience
2025-10-28 17:17:15 +05:00
Andrej730
44b9dd64f6
build_win - extend cache size
2025-10-28 17:17:15 +05:00
Andrej730
bfa77255a5
build_win - use fork to resolve cache misses and duplicated cache
2025-10-28 17:17:14 +05:00
Andrej730
b125c651a8
build_win - test ccache
2025-10-28 17:17:14 +05:00
Thomas Krijnen
eb1c81514b
Check for attribute nil #7276 #7291
2025-10-28 10:51:31 +01:00
Thomas Krijnen
6df5632f91
black
2025-10-26 13:33:10 +01:00
Thomas Krijnen
391a412e65
test cases #7291
2025-10-26 13:31:31 +01:00
Thomas Krijnen
b10415b1b3
Rework iterator constructor #7291
2025-10-26 13:31:31 +01:00
Thomas Krijnen
b1c44d42e3
Reset logger product to none
2025-10-26 13:31:31 +01:00
Dion Moult
5f65e21878
Fix bug where you couldn't get elements using a predefined property set.
2025-10-26 23:05:05 +11:00
Dion Moult
0d3be9d101
Fix #5108 . Selector now supports both GlobalId and Name as filter values.
2025-10-26 22:52:31 +11:00
Dion Moult
eea585a3cd
Fix #6258 . Fix #5727 properly. Only assume layerset axis on "standard case" elements, nothing else.
2025-10-26 22:33:39 +11:00
Thomas Krijnen
1789406299
Ruff
2025-10-26 12:04:22 +01:00
Dion Moult
b503061dc0
Fix #3868 . Automatic annotation references are now auto deleted if their reference is also gone.
2025-10-26 20:58:15 +11:00
Dion Moult
90ccaf4aab
Let users manually create automatic references too.
2025-10-26 20:46:32 +11:00
Dion Moult
05ff47fcff
Remap deprecated entities in Brick 1.4 to new RealEstateCore URIs.
2025-10-26 20:38:58 +11:00
Louis Casteleyn
c40ecdd550
deleted deprecated entities for v1.4 ( #6511 )
2025-10-26 20:32:28 +11:00
daniel-augusto
3a0622e9df
Update introduction with hyperlinks for tools ( #7290 )
2025-10-26 20:29:30 +11:00
Dion Moult
0bb03750dc
Fix #4914 . Write docs for syntax and schema validation and schema querying
2025-10-26 20:27:07 +11:00
Thomas Krijnen
89defa9b6b
build-all.py ruff: noqa: UP035
2025-10-26 10:20:13 +01:00
Thomas Krijnen
459aad54aa
Black
2025-10-26 10:17:49 +01:00
Thomas Krijnen
6f3065f6ce
ci.yml USE_MMAP=On
2025-10-26 10:15:52 +01:00
Thomas Krijnen
69863ce4a9
Try and fix stub test
2025-10-26 10:03:43 +01:00
Dion Moult
e5ae19fd34
See #7291 . Temporary workaround whilst segfaults are sorted.
2025-10-26 19:36:41 +11:00
Dion Moult
afe617fb93
Revert "Bump IOS - necessary as last bunch of commits are incompatible with previous binaries"
...
This reverts commit d922f0b9ad .
2025-10-26 19:32:35 +11:00
Dion Moult
d922f0b9ad
Bump IOS - necessary as last bunch of commits are incompatible with previous binaries
2025-10-26 19:12:22 +11:00
Dion Moult
f9d2d494b1
Fix #4275 . Using psets_only kwarg in get_pset utility now includes predefined psets.
2025-10-26 18:21:06 +11:00
Thomas Krijnen
806aa14bd0
Compatibility for older builds
2025-10-25 21:55:06 +02:00
Thomas Krijnen
80066ba9e7
Different hack for allowing f.header.file_description.file.header.file_description.file
2025-10-25 21:54:42 +02:00
Thomas Krijnen
7cb1f07a0b
hacky way to retain attribute too many messages on header entities in validate.py
2025-10-25 21:12:12 +02:00
Thomas Krijnen
bdb52dcffd
Pass header entity types during pass to resolve empty list type
2025-10-25 20:29:41 +02:00
Thomas Krijnen
933ad6c801
Fix header and schema validation errors in pass-rigid-op-IfcPlaneAngleMeasure-IfcPlaneAngleMeasure-ifc4x3_add2.ifc
2025-10-25 20:29:19 +02:00
Thomas Krijnen
1594b9505c
Don't emit Parsing terminated on benign files by not reading past stream in skipComment()
2025-10-25 20:14:02 +02:00
Thomas Krijnen
325745a822
Test IfcConvert only on single file
2025-10-25 15:54:15 +02:00
Thomas Krijnen
74f8b047fb
osx compat
2025-10-25 15:40:08 +02:00
Thomas Krijnen
0f8c6ffe9e
Run the bulk of pytest in parallel
2025-10-25 15:38:25 +02:00
Thomas Krijnen
fa46fe0cf0
Typos
2025-10-25 15:30:36 +02:00
Thomas Krijnen
f0a1efa1f2
ruff --fix
2025-10-25 15:27:46 +02:00
Thomas Krijnen
71c1058e9e
.gitignore for .exp files
2025-10-25 15:27:38 +02:00
Thomas Krijnen
7575bd4dfb
Commit some files because I do not want them cleaned
2025-10-25 15:25:56 +02:00
Thomas Krijnen
d697ed3384
Commit some files because I do not want them cleaned
2025-10-25 15:25:10 +02:00
Thomas Krijnen
aed70c8a02
Run black
2025-10-25 15:20:36 +02:00
Thomas Krijnen
e82ca0e932
Less back and forths by returning semi count in page
2025-10-25 15:08:21 +02:00
Thomas Krijnen
5910b39766
geom.stats module for preemptive scanning through file
2025-10-25 13:58:32 +02:00
Thomas Krijnen
ea9e0c9ab4
readInstancePy() option to obtain type decls instead of strings
2025-10-25 13:55:55 +02:00
Thomas Krijnen
2e951eb952
Whitespace handling now that token strings are built on the fly
2025-10-25 13:55:15 +02:00
Thomas Krijnen
2497611abd
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into v0.8.0
2025-10-25 13:54:52 +02:00
Bruno Postle
90bf56d9ba
Fix ifc5d documentation
...
Documentation claimed that ODS/XLSX output was to a given filename, but
the code actually writes files with generated names in a folder.
(also create the folder if necessary for convenience)
2025-10-24 22:19:01 +01:00
Bruno Postle
e1b73ef0ef
Fix build broken by a6d20c0 - link iostreams
...
FileReader.cpp now uses boost::iostreams::mapped_file regardless of
USE_MMAP setting
2025-10-24 15:35:19 +01:00
Thomas Krijnen
bcb5fd7810
Missing return type
2025-10-24 13:32:18 +02:00
Thomas Krijnen
40c5145a13
Address some omissions in the FileReader rewrite regarding unicode paths on windows
2025-10-24 13:26:27 +02:00
Thomas Krijnen
e304c3ad31
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into v0.8.0
2025-10-24 13:25:05 +02:00
Thomas Krijnen
0494bd9677
Option to bypass storing types when opening model
2025-10-24 12:06:59 +02:00
Dion Moult
fc0cdfabb9
Fix #7255 . Bug where you couldn't edit header data.
2025-10-24 19:11:29 +11:00
nameloCmaS
2dac137801
Limit clipping plane euler rotation angles to <= 360 degrees ( #6877 )
...
The "Flip Clipping Plane" operator adds 180 degrees to the angle's value, meaning the angle will keep increasing with each press.
2025-10-24 14:10:38 +11:00
Dion Moult
8ffa6fcf47
Fix #7267 . Bug where duplicating a drawing would cause annotation references to be associated with both the original and duplicate.
2025-10-24 14:09:00 +11:00
Dion Moult
8824e6e2c2
Fix #7268 . Automatic annotation references (sections, elevations, etc) are now intelligently regenerated
2025-10-24 12:47:58 +11:00
Ryan Schultz
5dbfe539ac
Need a little more freedom to rotate a RCP
2025-10-23 08:31:31 -05:00
Dion Moult
d1453e1139
Fix bug where panels for psets/qtos/classifications/types were showing up on irrelevant objects (e.g. grid axes)
2025-10-23 08:59:15 +11:00
Dion Moult
5b5dcb3c6d
Fix #7257 . Always quote psets and props in our colour by property dropdown to account for spaces and characters.
2025-10-23 08:58:23 +11:00
Dion Moult
4f467d199e
See #7253 . See #7268 . Rewrite grid generation to use IFC data, not rely on Blender object.
...
This also deprecates one more instance of the add_representation API
call. As this is slowly cleaned up we can move towards "regenerating"
annotations, not just generating from scratch.
2025-10-23 08:39:25 +11:00
Thomas Krijnen
a6d20c0cc4
Follow up after 4d688170e0
2025-10-22 21:42:37 +02:00
Ryan Schultz
d5d942bb2e
Adds a TargetView CSS class to the drawings.
2025-10-22 10:06:43 -05:00
Thomas Krijnen
9e2c7e653f
Commit suggestion in #7276
2025-10-22 14:37:10 +02:00
Thomas Krijnen
200c0bf773
Commit suggestion in #7276
2025-10-22 13:23:34 +02:00
Dion Moult
381b0d379a
Optimise operators when a drawing is active by not needlessly regenerating the cut after each operation.
2025-10-22 18:03:40 +11:00
Dion Moult
f48b5b9d92
Fix #7273 . See #7253 . Auto annotation references now cannot be deleted, but can be excluded.
2025-10-22 18:03:40 +11:00
Massimo Fabbro
1f47aadc94
Fix #7227 . Sync cost item assigned resources also for SOR
2025-10-22 07:14:01 +02:00
falken10vdl
bb3cd7e49c
Annotation rotation when doing bulk tags ( #7049 )
...
* first attempt to do annotation rotation when dong bulk tags
* Enhance annotation rotation handling based on camera orientation
* handle properly S_G
* black .
* reorder property in UI
* cleanup imports
2025-10-22 15:07:52 +11:00
daniel-augusto
edd01d44de
Include direct links to tools ( #7128 )
2025-10-22 15:06:56 +11:00
Michael Godsven
52b899d070
Add icons ( #7256 )
2025-10-22 11:30:54 +11:00
Dion Moult
008292df0f
Revert "Always show edit UI even if you don't have a BIM Tool activated."
...
This reverts commit 87bfd182d7 .
2025-10-22 11:08:55 +11:00
Dion Moult
87bfd182d7
Always show edit UI even if you don't have a BIM Tool activated.
2025-10-22 11:07:18 +11:00
Dion Moult
8fcc622b8a
Optimisation to only recalculate all drawing cuts if the camera is moved, not just selected.
2025-10-22 10:12:24 +11:00
Thomas Krijnen
9415878f57
Remove warning about combination of RefDirection as Axis #7251
2025-10-21 13:33:32 +02:00
Thomas Krijnen
919ac41a74
Consider case of only RefDirection in sectioned shapes #7251
2025-10-21 13:32:51 +02:00
Thomas Krijnen
80093f3777
Loft all wires not only the outer one #7251
2025-10-21 13:09:10 +02:00
Thomas Krijnen
28f5d6e91c
Copy internal status on interpolated loops #7251
2025-10-21 13:08:29 +02:00
Thomas Krijnen
550779deee
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into v0.8.0
2025-10-21 13:06:05 +02:00
Thomas Krijnen
e2cf60f0c1
Update to gmp 6.3.0 #7200
2025-10-21 12:18:48 +02:00
Dion Moult
546a042d40
Explicitly disable any voids, openings, and booleans in IFC4 Reference View MVD
...
It turns out vendors are still exporting them and creating a mess.
2025-10-21 10:49:17 +11:00
Thomas Krijnen
86b89f2153
Comment behaviour #7264
2025-10-20 10:37:35 +02:00
Thomas Krijnen
34f4aa430a
Keep file_ as nullptr to not bypass addEntity() #7264
2025-10-20 10:33:09 +02:00
Thomas Krijnen
67678cb7f1
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into v0.8.0
2025-10-20 10:27:50 +02:00
Thomas Krijnen
f05b0d946d
if -> ifdef #7174
2025-10-19 13:20:58 +02:00
Ryan Schultz
486651e0b7
additional tweak to the preceding commit.
2025-10-18 13:43:34 -05:00
Ryan Schultz
5885924bb7
Fix #5709 : The RCP will not be denied! :)
2025-10-18 12:47:35 -05:00
Ryan Schultz
ead849625d
Automatically select annotations after creation to make it easier to move them in bulk.
2025-10-16 21:10:43 -05:00
Ryan Schultz
f52aafdd6a
closes #7249 : for stairs, change the first/last tread lengths to less than the typical tread run. And even go to zero, whereby removing the tread altogether.
2025-10-14 21:53:22 -05:00
Ryan Schultz
b0ae0a2c82
extend https://github.com/IfcOpenShell/IfcOpenShell/commit/322a2179e51a9ec4802fe9e35039c7e3e29f9678 : Merges names with number suffix, as well (ex: foo, foo.001, foo.002)
2025-10-14 11:29:44 -05:00
Thomas Krijnen
4d688170e0
Storage rework WIP
2025-10-13 20:47:43 +02:00
Ryan Schultz
322a2179e5
Merge entities, if match on name or identification attribute only.
2025-10-13 11:25:36 -05:00
Dion Moult
8014980b88
Fix #7076 . Lock representation items scale to prevent user confusion.
2025-10-13 08:52:59 +11:00
Dion Moult
65237cab65
Fix #7080 . Potential bug with merging styles that didn't replace elements of the same class.
2025-10-13 08:44:47 +11:00
Dion Moult
155827528a
Visibility during collector assignment now depends on the visibility mode set in the UI.
2025-10-13 08:08:35 +11:00
Dion Moult
fb15435296
See #7229 . Simpler solution to ensure representation isn't affected by visibility until assign class can be cleaned up more.
2025-10-13 08:08:10 +11:00
Dion Moult
6bba3ebeeb
See #7159 . Make polls consistent in add foo to sheet operators.
2025-10-13 08:02:06 +11:00
Dion Moult
3343f3fb35
Revert "Closes #7229 : Unhide object before mesh tessellation export to prevent "Cannot edit hidden object" error when collector.assign() hides the object."
...
This reverts commit 96d05300bb .
2025-10-13 07:49:07 +11:00
Ryan Schultz
1b451d45cf
Closes #7159 : Fix AddReferenceToSheet operator poll checking wrong data_dir property (bim_props instead of prefs)
2025-10-12 13:51:14 -05:00
Ryan Schultz
f5f676cf51
black .
2025-10-12 12:46:49 -05:00
Ryan Schultz
1dd477d382
Delete aggregate if all its parts are deleted. Prevents having orphaned aggregates, if you do a bulk delete with empties turned off.
2025-10-12 12:17:57 -05:00
Ryan Schultz
96d05300bb
Closes #7229 : Unhide object before mesh tessellation export to prevent "Cannot edit hidden object" error when collector.assign() hides the object.
2025-10-12 09:57:27 -05:00
Dion Moult
0073a4c0a2
Fix #7205 . Regression when switching from drawing mode to model mode didn't hide drawings.
2025-10-12 21:21:27 +11:00
Dion Moult
d3a5071d9d
Fix #7211 . Explain to user why they can't remove the last grid axis.
2025-10-12 21:07:13 +11:00
Dion Moult
471bd34fc6
Fix #7206 . For convenience, deleted annotation references are marked as excluded and not regenerated.
2025-10-12 21:00:55 +11:00
Ryan Schultz
44cc12763b
Allows the ability to activate an attached drawing_style regardless of whether a drawing has a underlay, or not.
2025-10-11 17:47:37 -05:00
Ryan Schultz
b68aca04ae
added EPset_Status.UserDefinedStatus to default join_criteria
2025-10-11 17:41:41 -05:00
Bruno Postle
dd22264877
Fix sheet regeneration regression from d4f3280
...
Remove validate_sheet_files() check in regenerate_sheet() that prevented
regenerating missing LAYOUT files. The validation was blocking the
exact scenario that regeneration was designed to handle.
This allows users to open a bare IFC file with configured drawings and
sheets and have the SVG layouts automatically recreated with drawings
placed at default positions.
2025-10-11 20:25:13 +01:00
Ryan Schultz
cc6ef0268f
Introduces a toggle to turn on/off material layers in printed svg.
2025-10-11 09:52:55 -05:00
Dion Moult
feecb89c8e
Fix #7212 . IfcTester now supports IFC2X3 type element mapping.
2025-10-11 21:30:49 +11:00
Dion Moult
cb5c488cfd
Fix #7213 . IfcTester now supports checking for USERDEFINED predefined types
...
Can I just take this moment to complain about the overengineered
complexity of how predefined types work in IFC.
2025-10-11 21:09:41 +11:00
Dion Moult
b68e8dedd2
Fix #5675 . Bug where separate islands of polygons still merged CSS classes incorrectly.
2025-10-11 20:39:48 +11:00
Dion Moult
0975eb455e
All default drawing patterns now have a white background, not transparent.
2025-10-11 20:37:28 +11:00
Dion Moult
df0e8bba8c
Fix #7225 . Handle freestyle linework regardless of generated SVG filename.
2025-10-11 19:15:50 +11:00
Dion Moult
71d5239823
Revert "Closes ##7225 - Improve generate_freestyle_linework to robustly handle SVG output by falling back to the first generated linework file if the expected file is missing."
...
This reverts commit 89c039252b .
2025-10-11 19:02:04 +11:00
Dion Moult
92ae79f64e
See #7133 . Sync viewport visibility with render visibility when generating underlays.
2025-10-11 18:48:46 +11:00
Dion Moult
9c1f636cd4
Revert "Reintroduce https://github.com/IfcOpenShell/IfcOpenShell/issues/7133 : Add hide_render synchronization to isolate_objects so hidden viewport objects are also hidden from render"
...
This reverts commit 23c60b38fd .
2025-10-11 18:09:52 +11:00
Ryan Schultz
23c60b38fd
Reintroduce https://github.com/IfcOpenShell/IfcOpenShell/issues/7133 : Add hide_render synchronization to isolate_objects so hidden viewport objects are also hidden from render
2025-10-10 22:24:57 -05:00
Ryan Schultz
89c039252b
Closes ##7225 - Improve generate_freestyle_linework to robustly handle SVG output by falling back to the first generated linework file if the expected file is missing.
2025-10-10 17:28:15 -05:00
Thomas Krijnen
60d85b4259
Skip ifcxml writing tests
2025-10-09 14:03:35 +02:00
Thomas Krijnen
e8a382b02a
Only use cyclic dependencies when amongst static libs #7180
2025-10-09 13:24:31 +02:00
Thomas Krijnen
2b3ec66017
mark failed_on_purpose on IfcBoundingBox without --keep-bounding-boxes #7215
2025-10-09 08:45:25 +02:00
Thomas Krijnen
97dd37b345
Fix circular definition issue in cmake #7180
2025-10-08 15:25:38 +02:00
Thomas Krijnen
e4877e8246
Ignore steal_instances() in python
2025-10-08 14:55:28 +02:00
Thomas Krijnen
e216d345c1
Reimplement cecho.cmd to not depend on starting powershell.exe for speed boost
2025-10-08 14:18:52 +02:00
Thomas Krijnen
14c1b70768
Address some compiler warnings
2025-10-08 14:18:17 +02:00
Thomas Krijnen
e15f222a19
Address segfault #7215 #7185
2025-10-08 14:17:47 +02:00
Ryan Schultz
4ab2664529
closes #7134 - Wall layer cuts exported out to a SVG during Freestyle linework mode.
2025-10-07 14:43:11 -05:00
Dion Moult
bd0cfa5366
Fix bug where grid decorator only considered hide states, not hide viewport state or local isolation, etc
2025-10-07 14:44:57 +11:00
Dion Moult
2e4b0e83a2
Add feature to have work schedule columns for total inputs, outputs, and elements (inputs + outputs)
2025-10-07 13:34:07 +11:00
Dion Moult
cf61111386
Fix bug where nested elements didn't show elements of the active task (only children)
2025-10-07 13:06:26 +11:00
Dion Moult
3aa5ddb070
Implement auto element selection for tasks in work schedule. Also add manual selection (instead of going into ICOM panel for speed)
2025-10-07 12:27:38 +11:00
Dion Moult
25dacc8fed
Fix #7208 . Merge duplicates patch recipe can now control merging by empty attributes.
2025-10-06 23:18:32 +11:00
Dion Moult
7cba63af9c
Add IfcTester webapp workflow ( #7209 )
2025-10-06 23:15:16 +11:00
Dion Moult
3c1d6abc7e
Update ci-ifctester-org.yml attempt 2
2025-10-06 17:51:50 +11:00
Dion Moult
8da4b9f23f
Create ci-ifctester-org.yml
...
This definitely won't work the first time
2025-10-06 17:41:21 +11:00
Dion Moult
99fa77edee
Fix #6873 . Bug where geometry created through sync_references didn't have item editing metadata.
2025-10-06 17:23:29 +11:00
Andrej730
839c5ad932
black .
2025-10-06 11:02:33 +05:00
Dion Moult
b68ce08811
Deprecate should_reload and is_global in switch representation as they don't do anything now.
...
Superseded by item editing mode, so always reload, and always global.
2025-10-06 16:57:54 +11:00
Dion Moult
e662308665
Deprecate should_sync_changes_first for switching representation, since it is no longer relevant in item editing.
2025-10-06 16:19:39 +11:00
Andrea Ghensi
a2ccff67ca
fix(bcf): Create directory entries in the zip file's central directory ( #7175 )
...
This is done to comply with the Implementation Agreements
https://github.com/buildingSMART/BCF-XML/tree/release_3_0/Documentation#create-directory-folder-entries-in-the-zip-files-central-directory
2025-10-06 15:50:03 +11:00
Christoph Mellüh
8e045d772c
Add "hide empty Specifications" to Bonsai IFCTester ( #7190 )
...
* add filter
* apply filter property
* allow name filter
* black .
* add hide-skipped to html
* rename prop
* only hide optional specifications
2025-10-06 15:49:35 +11:00
Christoph Mellüh
16fd614886
Add instructions to IFCTester in Blender ( #7195 )
...
* add instructions to blender ui
* add requirement instructions to html
* black .
2025-10-06 15:48:45 +11:00
Dion Moult
f31df307c6
Fix #6674 . Bug where newly created annotation types didn't have the necessary metadata for item editing.
2025-10-06 15:46:16 +11:00
Dion Moult
11873a7c51
Fix #7203 . Help indicate that author should be an email. Add error styling.
2025-10-06 14:48:22 +11:00
Dion Moult
ccccbe23f4
Fix #6709 . Support same spatial element type even if not explicit in concept template.
2025-10-06 14:32:53 +11:00
Dion Moult
2173a562be
Fix #7157 . Don't fail if the bin dir isn't where we expect it (maybe it's packaged differently)
...
Honestly someone with motivation and coffee needs to take a long hard
look at our packaging and see if we can do a better job.
2025-10-06 14:14:49 +11:00
Dion Moult
a11f81f2ce
Fix #5701 . Spaces are now invisible by default and use viewport hiding.
2025-10-06 14:07:20 +11:00
Dion Moult
d3b553c4fb
Blender tools for hiding and showing objects
2025-10-06 14:05:57 +11:00
Dion Moult
5eb11c3516
Remove "make spatial elements unselectable" setting because it's superseded by spatial locking.
2025-10-06 14:05:31 +11:00
Dion Moult
c195799801
See #7202 . Revert to safer way to control visibility.
...
Pity can't control hide_viewport in bulk, but this is perhaps the next
best thing.
2025-10-06 12:19:03 +11:00
Massimo Fabbro
ac5a44a962
See #6570 . Now it's possible to specify Description in csv import
...
Now it is possible to specify the column Description in the csv file in order to specify also the cost item description
2025-10-05 17:49:23 +02:00
Dion Moult
86880e9e62
See #4481 . Optimise object visibility even further by using foreach_set.
...
Note: now we are using hide_viewport not hide_set anymore. There might
be pending issues from this. Also, now because we use foreach_set, we
can quickly also apply hide_render, which saves time during underlay
generation.
2025-10-05 23:20:32 +11:00
Dion Moult
f8ccdf1170
See #4481 . Optimise first load of drawing by lazy loading annotations.
2025-10-05 23:17:42 +11:00
Dion Moult
e3d8473d47
Fix #7166 . Don't create glazing constituent for doors without transoms. Clarify framing name.
2025-10-05 20:24:13 +11:00
Dion Moult
bd5d4cecbf
See #7166 . Only show total thickness for layer sets.
2025-10-05 20:13:40 +11:00
Dion Moult
2ede8a2206
Fix #7158 . UI didn't expect to find a material constituent set with no constituents.
...
It's technically valid but makes no sense.
2025-10-05 19:41:52 +11:00
Dion Moult
cb77f9bd26
Fix #7179 . Allow drawing polylines with segments as short as 1mm (previously 100mm which was too high)
2025-10-05 19:30:48 +11:00
Dion Moult
0bb21fedae
Fix #7169 . Bug where unit scale wasn't set for geometric operations on new projects.
2025-10-05 19:09:47 +11:00
Dion Moult
478f90c2d4
Update IfcTester webapp to use IfcTester logo
2025-10-05 18:46:05 +11:00
Dion Moult
a016f6e5c8
Fix #7186 . Support upgrading IFC2X3 IfcExtendedMaterialProperties to IFC4
2025-10-05 18:44:14 +11:00
Dion Moult
1b2fa4f994
Fix #7113 . IfcTester webapp should use uppercase entity names
2025-10-05 15:32:55 +11:00
Christoph Mellüh
2d8383efc6
Fix MASSUNIT bug ( #7173 )
...
* add exception
* black
2025-10-05 15:31:06 +11:00
Dion Moult
add5132dec
Fix launching of IfcTester webapp with Bonsai
2025-10-05 15:11:18 +11:00
Andrej730
fe333051df
build-deps - note on cloning opencollada
2025-10-04 21:40:07 +05:00
Andrej730
8d1b533f91
run-cmake.bat - echo SWIG_INSTALL_DIR
...
as `SWIG_DIR` is no longer used
2025-10-04 21:40:07 +05:00
Andrej730
fb304e141a
build-all.py - note on doubled compilation times
2025-10-04 21:40:07 +05:00
Andrej730
bd094f930e
build_rocky - support ccache
2025-10-04 21:40:07 +05:00
Andrej730
b61000d2fe
ci.yml - bump ccache action version
2025-10-04 21:40:07 +05:00
Andrej730
c72cadb234
build_rocky_arm - use ccache
2025-10-04 21:40:06 +05:00
Andrej730
10642177a9
build_osx - bump ccache workflow version
2025-10-04 21:40:06 +05:00
Andrej730
0b8ea28463
aud - use main repo
...
As PR with a fix was merged
2025-10-04 21:40:06 +05:00
Andrej730
9b24f54f0d
cmake - override CGAL_Boost_USE_STATIC_LIBS
...
The issue was with ci.yml - it was using system boost shared libraries (since Boost_USE_STATIC_LIBS by default is OFF), but CGALConfig was overriding leading to compilation issues.
2025-10-04 21:40:06 +05:00
Andrej730
289645dacc
ci.yml - let cmake figure out system dependencies automatically
2025-10-04 21:40:06 +05:00
Andrej730
c365acb517
ci.yml - don't provide ccache explicitly
...
as it's covered automatically by cmake
2025-10-04 21:40:06 +05:00
Andrej730
785cf56621
cmake - specify cxx component for hdf5 package
...
by default it's targeting `C` and this was part of the issue why ci.yml was failing
2025-10-04 21:40:06 +05:00
Andrej730
60617eecce
ci.yml - add ccache for rocksdb
...
Revert "ci.yml - add ccache for rocksdb"
This reverts commit 71178d4bbc023c793b0800f5987a979fdddc1c30.
Update ci.yml
2025-10-04 21:40:06 +05:00
Andrej730
26c68c00b7
cmake - proceed to package search if HDF5_LIBRARY_DIR not provided
...
Fixes issue with ci.yml
2025-10-04 21:40:05 +05:00
Esteban Dugueperoux
ab0a602f9f
black: Format incorrectly formated files ( #7194 )
2025-10-04 18:59:42 +05:00
Osyotr
066326ab3b
Fix warning C4275
...
It's not enough to disable this warning by adding /wd4257 at build time because it's triggered when the library is consumed.
2025-10-03 18:12:56 +02:00
Thomas Krijnen
02713dbd39
nix build script add occt 7.9.1 patch
2025-10-03 18:08:37 +02:00
Thomas Krijnen
d58dae5d2f
nix build script add occt 7.9.1 patch
2025-10-03 18:05:39 +02:00
Thomas Krijnen
ca3685900f
Update clear_schemas() which is now handled by unique_ptr
2025-10-03 14:18:50 +02:00
Thomas Krijnen
5e10e61aca
Clean-up parsed simple types #7185
2025-10-03 14:18:07 +02:00
Osyotr
92e25ce3cb
Fix warning C4702: unreachable code
2025-10-03 13:56:10 +02:00
Thomas Krijnen
804a670454
Revert revert
2025-10-03 09:04:43 +02:00
Thomas Krijnen
efa8382fc5
ifcopenshell.draw --arange-zones see http://blog.ifcopenshell.org/2025/10/bim-legal-2d-notorial-drawings-directly.html
2025-10-02 21:44:52 +02:00
Thomas Krijnen
92f9d5f506
Writing .ifcxml is not supported #7181
2025-10-02 20:28:17 +02:00
Ryan Schultz
8800c14105
extended previous commit to add functionality to printed svg, as well.
2025-10-01 23:21:14 -05:00
Ryan Schultz
ec2d0bfa4a
Add support for reversing and customizing separators in text annotation lists
...
Text annotations can now reverse the order of list values (e.g., materials) and use custom separators instead of the default comma-space. Two new properties have been added to EPset_Annotation: Reverse_List (boolean) and List_Separator (string). When text literals contain IFC list/tuple values, they are now detected during variable replacement and can be reversed and joined with the specified separator. The list separator supports escape sequences like \n for newlines, enabling multi-line list displays. These properties are exposed in the text editing UI and properly persist to the IFC file through the new update_text_annotation_properties method, which consolidates all annotation property updates into a single efficient operation.
2025-10-01 22:44:34 -05:00
Thomas Krijnen
d684d47dc8
Make sure compound structure is retained as SvgSerializer depends on it
2025-10-01 15:01:50 +02:00
Andrej730
babf95785c
Move IFCOPENSHELL_VERSION definition from IfcParse.h
...
To prevent recompiling all files that have IfcParse.h include and improve caching.
2025-09-30 19:17:46 +05:00
Andrej730
f6ebf80fab
ifcopenshell-python/scripts/dev_environment.py
2025-09-30 17:47:30 +05:00
Andrej730
ea2cff3311
typing
2025-09-30 17:47:30 +05:00
Andrej730
bf4aa8cbb1
cmake - link mappings against IfcGeom
...
Not sure why it occurred only now, maybe after recent changes with shared libraries this problem just got more apparent and previously it was masked by some other library after mappings also using IfcGeom.
But the issue was that mapping were not linked against IfcGeom, though it's symbols were used in them. E.g. IfcSectionedSurface.cpp was using `has_loft` from `infra_sweep_helper`.
Issue occurred only on Linux - msvc and clang are less strict and probably do multiple passes to fetch symbols.
Example errors:
```
libgeometry_mapping_ifc4x3.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3::map_impl(Ifc4x3::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry14mapping_Ifc4x38map_implEPKN6Ifc4x327IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3.a(IfcSectionedSurface.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3::map_impl(Ifc4x3::IfcSectionedSurface const*)':
IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry14mapping_Ifc4x38map_implEPKN6Ifc4x319IfcSectionedSurfaceE+0x19c4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_tc1.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_tc1::map_impl(Ifc4x3_tc1::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry18mapping_Ifc4x3_tc18map_implEPKN10Ifc4x3_tc127IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_tc1.a(IfcSectionedSurface.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_tc1::map_impl(Ifc4x3_tc1::IfcSectionedSurface const*)':
IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry18mapping_Ifc4x3_tc18map_implEPKN10Ifc4x3_tc119IfcSectionedSurfaceE+0x19c4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_add1.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_add1::map_impl(Ifc4x3_add1::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry19mapping_Ifc4x3_add18map_implEPKN11Ifc4x3_add127IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_add1.a(IfcSectionedSurface.cpp.o):IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry19mapping_Ifc4x3_add18map_implEPKN11Ifc4x3_add119IfcSectionedSurfaceE+0x19c4): more undefined references to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)' follow
collect2: error: ld returned 1 exit status
```
2025-09-30 13:10:59 +05:00
Andrej730
8b751577f4
Fix Ruff UP037 (unnecessary quotes in annotations)
2025-09-30 13:04:48 +05:00
Andrej730
6fbe982623
Fix Ruff UP006 (List -> list)
2025-09-30 13:04:48 +05:00
Andrej730
0b93694097
black .
2025-09-30 13:04:48 +05:00
Dion Moult
2027c71d99
Fix #7164 . Property facets with a restriction in the baseName would incorrectly test null values.
...
Our tests missed this detail. The previous test also did
should_purge=True by default which doesn't property test for nullness.
2025-09-30 00:07:14 +10:00
Dion Moult
6da51c2a6e
Update IfcTester to support changed upstream spec where prohibited specs cannot have requirements.
2025-09-30 00:05:57 +10:00
Fernando Gussão Bellon
53def55dc9
Added the file extension to the viewpoint guid comparison
2025-09-29 23:41:37 +10:00
Robin Quint
8722350c0b
Plan view fixes ( #7022 )
2025-09-29 23:40:35 +10:00
Andrea Ghensi
34c92d4d9c
fix(bcf): viewport creation functions result in malformed XML
...
fixes #6244
2025-09-29 23:33:15 +10:00
daniel-augusto
725cb40ef2
Update highlight from block code
2025-09-29 23:30:39 +10:00
daniel-augusto
0c81b41ac7
Update highlight of block code
2025-09-29 23:30:39 +10:00
Yan Peng
a8a82450a5
Update documentation of bsdd based on the updated info of uri and bsdd functions.
2025-09-29 23:29:57 +10:00
Andrea Ghensi
1b5b9fdcf6
fix: use numpy 2d indexing, avoid np.matrix
...
fixes #7141
2025-09-29 23:29:08 +10:00
c-mellueh
af1e542064
black
2025-09-29 23:28:20 +10:00
c-mellueh
78154d17bf
add button
2025-09-29 23:28:20 +10:00
c-mellueh
9bc8012aa4
remove old function
2025-09-29 23:27:04 +10:00
c-mellueh
407962ec93
black
2025-09-29 23:27:04 +10:00
c-mellueh
21fd09b424
add bsdd_json
2025-09-29 23:27:04 +10:00
Andrej730
2264e69a1e
cmake - remove redundant msvc check for ccache ( e02d6c3f)
2025-09-29 17:39:43 +05:00
Andrej730
e02d6c3f4b
cmake - support ccache for msvc (required cmake 3.25+)
...
As described in https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage-with-cmake
2025-09-29 16:43:29 +05:00
Andrej730
ec0abb7b37
cmake - fix missing installation for ifcgeom/serialization headers
...
Was trying to reproduce IfcOpenHouse example outside of IfcOpenShell project and noticed that it's referring to a header not present in installation.
2025-09-29 16:43:29 +05:00
Andrej730
477becab0b
ruff - use preview behaviour
...
No particular preview rules we need, just to possibly early adapt new behavior.
2025-09-29 16:43:28 +05:00
Andrej730
60bf424461
ruff - remove from config a rule removed from ruff
2025-09-29 16:43:28 +05:00
Andrej730
923e8423f9
black .
2025-09-29 16:43:28 +05:00
Thomas Krijnen
e228095391
Fix geomserver compile
2025-09-29 13:19:46 +02:00
myoualid
1492a660c8
adding paths to include schema files for wasm build ( #7168 )
2025-09-29 11:55:42 +01:00
Thomas Krijnen
7a931ea6f2
Submodule
2025-09-29 12:07:49 +02:00
Thomas Krijnen
2d59bb9cb8
Remove dependency on stdc++fs lib in cmake #7131
2025-09-29 11:30:40 +02:00
Thomas Krijnen
06f5ded038
Don't crash on missing schema when loading rdb
2025-09-29 11:29:52 +02:00
Thomas Krijnen
91f371a46e
Be sure to init header_section_schema when obtaining schemas in python #7131
2025-09-29 11:29:35 +02:00
Thomas Krijnen
573e53ebfd
Ugly workarounds to not depend on std::filesystem #7131
2025-09-29 11:29:07 +02:00
myoualid
a492be5971
include schema files for Pyodide build via MANIFEST.in
2025-09-29 09:41:09 +01:00
Dion Moult
ceac85ca02
Temporarily revert to old build behaviour since new builds are failing.
2025-09-29 11:00:59 +10:00
Dion Moult
bfa981709a
Fix regression. Schema should not be a Python package.
2025-09-29 10:43:14 +10:00
myoualid
c64b477e53
last attempt to fix WASM build: libxml2 without threads and use explicit libxml2 paths
2025-09-29 00:49:12 +01:00
myoualid
4f7501e1e8
set Eigen3 path for WASM build to avoid find_package issues following commit 235eb3c83c
2025-09-28 21:56:27 +01:00
myoualid
a1f20ec7bb
add explicit OCCT paths for WASM builds
2025-09-28 20:20:43 +01:00
myoualid
e2ee6c6e56
Fix WASM build by reverting CGAL handling to explicit paths from commit 3ec7b71565
2025-09-28 16:43:58 +01:00
myoualid
6940a05f2b
remove yacc dependency for wasm build
2025-09-28 13:51:38 +01:00
myoualid
ff8f4ecd3c
Revert "add bison dependency for pyodide wasm build"
...
This reverts commit cfa21b3cbf .
2025-09-28 13:37:30 +01:00
Dion Moult
de2bd3ff1a
Fix #6914 . Bug where HTML IDS report did not visually indicate prohibited results correctly.
2025-09-28 22:26:39 +10:00
myoualid
cfa21b3cbf
add bison dependency for pyodide wasm build
2025-09-28 12:21:50 +01:00
Dion Moult
db7c3e3b01
Fix #6960 . String reporting of cardinality did not match upstream docs.
...
The meaning of the upstream docs changed subtly a year ago and I never
caught up. There is still work to do.
2025-09-28 20:35:55 +10:00
myoualid
0532ceb029
Fix missing files in WASM build ( #7168 )
2025-09-28 11:30:23 +01:00
Dion Moult
0fe869c169
See #7131 . Rollback to prevent instant segfaults on Linux.
2025-09-28 18:15:13 +10:00
myoualid
bcde68d851
reproduce WASM missing schema files bug ( #7168 )
2025-09-27 20:54:23 +01:00
Bruno Perdigão
960a90e36c
See commit 17d6b8a. Add a patch to update linked aggregates psets.
...
https://github.com/IfcOpenShell/IfcOpenShell/commit/17d6b8af61c8dd7cd82f6e72b2fb3831d851a33d#commitcomment-163151609
2025-09-26 22:57:18 -03:00
Bruno Perdigão
aea0395fd6
See #7046 . Remove snapping points that are not visible with clipping
...
planes.
2025-09-26 21:59:18 -03:00
Bruno Perdigão
416d51f7c7
Fix small issue with None value in polyline increment snap
2025-09-26 21:59:18 -03:00
Bruno Perdigão
a9b13fd056
See #7046 . Adapt snapping system to focal length value.
2025-09-26 21:59:17 -03:00
Andrej730
080056806e
build_osx - separate arm64 ccache to avoid override
2025-09-26 21:53:33 +05:00
Andrej730
7a33a9eb02
build_osx - fix issue building arm64
2025-09-26 21:53:33 +05:00
Andrej730
07ba483a13
build-all - bump Python version to fix issue cross compiling
...
Not sure which patch version exactly fixed it, but 3.13.6 works.
2025-09-26 21:53:33 +05:00
Andrej730
4925741060
build_osx - add deps for cross compilation
2025-09-26 21:53:33 +05:00
Andrej730
7c4505b2fd
build_osx - exclude arm64 gmp dependency to avoid cross compilation issues
2025-09-26 21:53:33 +05:00
Andrej730
f9ee838cd2
build-all - cross compile dependencies
2025-09-26 21:53:32 +05:00
Andrej730
cce0c39ab2
build-all.py - provide with-openssl for python on Mac
2025-09-26 21:53:32 +05:00
Andrej730
cd57fd4b1d
build_osx - note on preinstalled dependencies
2025-09-26 21:53:32 +05:00
Andrej730
6b705f0448
build-all.py - document ADD_COMMIT_SHA env var
2025-09-26 21:53:32 +05:00
Andrej730
9cff6c87f0
cmake - don't fail silently with ADD_COMMIT_SHA and missing git
2025-09-26 21:53:32 +05:00
Andrej730
cac41064e0
build_osx - attempt to cross-compile intel binaries
...
ccache step broke (https://github.com/hendrikmuhs/ccache-action/issues/374 ) and macos-13 is now deprecated in general -
https://github.blog/changelog/2025-09-19-github-actions-macos-13-runner-image-is-closing-down/
2025-09-26 21:53:32 +05:00
Andrej730
350cf0406d
build-all.py - override minimum cmake version for OpenCOLLADA
2025-09-26 21:53:32 +05:00
Andrej730
47fd52b7c1
build-all.py - bump eigen package to avoid issues on cmake 4
2025-09-26 21:53:32 +05:00
Andrej730
8a33e2fea1
workflows - unify ccache names
2025-09-26 21:53:31 +05:00
Andrej730
d4c02a312a
build-all.py - bump json package to avoid issues on cmake 4
2025-09-26 21:53:31 +05:00
Andrej730
c20294b993
build_osx - upload logs artifacts to help debugging
2025-09-26 21:53:31 +05:00
Andrej730
7500631b81
build-rocky - upload logs artifacts to help debugging
2025-09-26 21:53:31 +05:00
Andrej730
7cc1a849a6
build-all.py - opencollada patch to support config package on Unix
2025-09-26 21:53:31 +05:00
Andrej730
4df93af1fd
build-all.py - add OpenCOLLADA to IfcGeom dependencies
...
Otherwise it can be overlooked if you build IfcOpenShell-Python or any other target specifically, it was only built if you run build-all.py without any target arguments.
2025-09-26 21:53:31 +05:00
Andrej730
fc1c8f2071
build-all.py - CGAL to use v5.6.3
...
5.6.x-branch was removed, see https://github.com/CGAL/cgal/issues/9079
2025-09-26 21:53:31 +05:00
Andrej730
deedffa84e
build-all.py - alter rocksdb's deps search only on Windows ( da4508e)
2025-09-26 21:53:31 +05:00
Andrej730
e8d924426f
build-all.py - add a note about xz requirement
2025-09-26 21:53:30 +05:00
Andrej730
5a3f809d03
build-all.py - fix Python 3.6 support for rocky ( 566c9af)
2025-09-26 21:53:30 +05:00
Andrej730
58ffd8bf62
ruff ci - check python 3.7 compatibility for build-all.py
2025-09-26 21:53:30 +05:00
Andrej730
b22452aaac
build-all.py - print all missing commands simultaneoously
2025-09-26 21:53:30 +05:00
Andrej730
6c05e2ea8c
Fix missing yacc in linux builds
2025-09-26 21:53:30 +05:00
Andrej730
a1773b6f46
black .
2025-09-26 21:53:30 +05:00
Andrej730
b3583d4191
typing
2025-09-26 21:52:35 +05:00
Thomas Krijnen
50e8d9f67e
submodule
2025-09-26 14:32:34 +02:00
Thomas Krijnen
0d4819d6e7
dllimport/export #6926
2025-09-26 14:30:52 +02:00
Thomas Krijnen
ce91d296b6
dllimport/export #6926
2025-09-26 14:24:49 +02:00
Ryan Schultz
21137b9268
closes:#6821 - This modification checks if the layer's material has a Category attribute and if it's not empty, then adds it as a CSS class with the format layer-material-category-{category_name}.
...
This will give you additional styling granularity when working with material layers, allowing you to target elements not just by their material name but also by their material category in your SVG styling.
2025-09-25 14:57:41 -05:00
Thomas Krijnen
0dc319e510
Fix compilation on older gcc versions required pod type for __thread
2025-09-25 13:17:12 +02:00
Bruno Perdigão
798beb0030
See #7046 . Improve snapping inaccuracies in orthographic view
2025-09-24 17:46:55 -03:00
falken10vdl
a717b348e0
Fix bounding box best origin default value
...
Initialize best_origin to 0 for the case no better origin is found.
Cheers!
2025-09-24 14:42:31 -03:00
falken10vdl
14ed4d1d08
feat: add comparison property to ifc_filter in draw_filter and update search query logic
2025-09-24 12:28:20 -03:00
Bruno Perdigão
bd3250aff6
See #6883 . Keeps each linked aggregate in their original container after refreshing.
2025-09-24 09:46:02 -03:00
Bruno Perdigão
1ee5bb73fa
Fix RefreshLinkedAggregates renaming of aggregates
2025-09-24 09:46:02 -03:00
Thomas Krijnen
9a6dc54f6c
Thread local current_product_ #7155
2025-09-24 13:56:35 +02:00
Thomas Krijnen
ab59173135
Add a stream2_from_string() (mostly for wasm)
2025-09-23 11:32:52 +02:00
Thomas Krijnen
b6abb24858
Support single circ/elip compcurves #7149
2025-09-23 11:11:42 +02:00
Thomas Krijnen
2b24d5ebe5
Initialize header schema in constructor and not statically #7131
2025-09-23 10:26:01 +02:00
Ryan Schultz
10a99fff05
Closes #7133 : when activating a drawing, Bonsai will turn on/off 'Display in Render' when it turns on/off 'Hide in Viewport'.
2025-09-22 20:12:24 -05:00
Ryan Schultz
64aa1d07fb
extend #6777 to have elevation print out as well.
2025-09-21 16:26:36 -05:00
Bruno Perdigão
730eafa74f
IfcMaterialLayerSetUsage - Disable custom offset properties when the checkbox is unchecked
2025-09-19 17:41:03 -03:00
Andrej730
c077727374
Fix header data attr to match Blender prop names ( 559636e)
2025-09-19 19:07:44 +05:00
Andrej730
2e4241e435
typing
2025-09-19 19:04:53 +05:00
Andrej730
8a03a1379e
cmake - match ifc4x3 for examples more precisely
2025-09-19 18:56:15 +05:00
Andrej730
8bb7ef5e25
cmake - only build examples if 2x3 is present in SCHEMA_VERSIONS
...
As examples currently require ifc2x3
2025-09-19 18:56:15 +05:00
Andrej730
da4508ef9a
cmake - fix issue rocksdb locating zstd on Windows
...
See https://github.com/facebook/rocksdb/pull/13975 for the details.
2025-09-19 18:44:18 +05:00
Thomas Krijnen
f3dedba320
Map opt<bool> in taxonony to none,false,true
2025-09-19 13:24:02 +02:00
Thomas Krijnen
f659b9bb7b
Fix exception in file.from_string()
2025-09-19 13:24:02 +02:00
Andrej730
488dee82d7
bim.create_all_shapes - add description and more readable output
2025-09-19 13:16:11 +05:00
Andrej730
3c4020be8d
create_all_shapes - expose geom library selection to UI
...
Example - https://files.catbox.moe/oyv9bi.png
2025-09-19 13:16:11 +05:00
Thomas Krijnen
ede4e49c0c
submodule
2025-09-19 09:54:01 +02:00
Andrej730
3d2f361585
cmake - fix error with occt package ( 1857d0624)
2025-09-18 18:36:48 +05:00
Andrej730
4505ed1c98
cmake - remove trailing spaces
2025-09-18 18:36:48 +05:00
Andrej730
4cbad8804f
cmake - use OpenCASCADE_VERSION as a version source if available
2025-09-18 18:36:48 +05:00
Andrej730
3ec7b71565
build-all.py - use find_package for CGAL
2025-09-18 17:53:35 +05:00
Andrej730
c0ec2e7e2b
cmake - use find_package if explicit paths are not provided
2025-09-18 17:53:35 +05:00
Andrej730
048a94ddc5
build-all.py - bump json version and use find_package
2025-09-18 17:53:34 +05:00
Andrej730
ec43415822
cmake - support find_package for json
2025-09-18 17:53:34 +05:00
Andrej730
235eb3c83c
build-all.py - use find_package for eigen3
2025-09-18 17:53:34 +05:00
Andrej730
4d0737c49b
build-all, run-cmake - pass BOOST_ROOT as cmake prefix path
2025-09-18 17:53:34 +05:00
Andrej730
b499686c7c
build-all.py - use find_package for occt
2025-09-18 17:53:34 +05:00
Andrej730
1857d06245
cmake - use find_package for occ if variables are not provided
...
cmake configs seems to be provided with the default installation, so `find_package` should do the job that `find_path` and `find_library` did previously.
2025-09-18 17:53:33 +05:00
Andrej730
663d233e3c
build-all.py - document more env variables
2025-09-18 17:53:33 +05:00
Andrej730
fa1936c10a
build-all.py - avoid building 3d viewer for OCCT
2025-09-18 17:53:33 +05:00
Andrej730
8c89ba497b
build-all.py - use find_package for opencollada
2025-09-18 17:20:57 +05:00
Andrej730
2284ddd68c
build-all.py - use find_package for libxml2
2025-09-18 17:20:55 +05:00
Andrej730
8daf6b0b04
build-all.py - use find_package for swig
2025-09-18 17:20:52 +05:00
Andrej730
e7a6f86299
build-all.py - don't break in case if some optional dependencies are missing
2025-09-18 14:07:58 +05:00
Andrej730
cae711b393
build-all.py - mention ssl requirement for Python ( 4ee6863)
2025-09-18 14:07:58 +05:00
Andrej730
566c9afa77
build-all.py - print live logs to the log file
2025-09-18 14:07:58 +05:00
Andrej730
867852688e
cmake - use find_package for hdf5 as a general fallback
...
Previously we were setting `HDF5_LIBRARIES` explicitly, but I'm not sure if really worked, since we never set `HDF5_INCLUDE_DIR` and user would have to provide it manually either way.
`find_package(HDF5)` will search for default paths and will set `HDF5_LIBRARIES` and `HDF5_INCLUDE_DIR` automatically.
2025-09-18 14:07:58 +05:00
Andrej730
94851016d7
build-all.py - use find_package for hdf5
2025-09-18 14:07:58 +05:00
Andrej730
1dd3c298df
build-all.py - explicitly disable xlib
...
I assume it's not needed, but Desktop Ubuntu seems to trying to build it anyway and fails since `libx11-dev` is missing.
2025-09-18 14:07:58 +05:00
Andrej730
c384ac26cd
build-all.py - use pcre2 for swig
...
As it was needed for more recent swig version. Bumped swig in ae771cb without knowing this, so essentially building swig with build-all.py was broken for a bit.
2025-09-18 14:07:58 +05:00
Andrej730
a57080da74
build-all.py - ensure yacc is installed
2025-09-18 14:07:58 +05:00
Andrej730
71e59fe4c2
build-all.py - remove 'rel-' from swig tags
...
As they were used by the older versions and no longer provided after 4.1.0, see https://github.com/swig/swig/tags
2025-09-18 14:07:58 +05:00
Andrej730
aedae0b3c1
build-all.py - hdf5 to use cmake instead of ctest
...
After version 1.13.0 it seems hdf5 stopped publishing builds on the ftp and they also stopped publishing `CMake-hdf5-*` builds.
Switching to cmake, it will also make it consistent with build-deps.cmd
2025-09-18 14:07:58 +05:00
Andrej730
658f9b87a5
build-deps.cmd - bump hdf5 to match build-all
...
Has to skip hdf5 1.13.0 because it had a bug in it's cmake config setup, so `find_package` couldn't recognize, and the issue was fixed in 1.13.1.
2025-09-18 14:07:58 +05:00
Andrej730
fa9105e174
black .
2025-09-18 14:07:58 +05:00
Andrej730
d0d5f972df
cmake - use find_package for rocksdb and zstd
2025-09-18 14:07:58 +05:00
Bruno Perdigão
f5220fba56
Add custom offset to walls IfcMaterialLayerSetUsage
2025-09-15 17:08:25 -03:00
Bruno Perdigão
365f4f114b
Add custom offset to slab IfcMaterialLayerSetUsage
2025-09-15 17:08:25 -03:00
Thomas Krijnen
b5b64d6c4a
ifc5d.quantify: lookup entity names directly; index into dict rather than iterate in simple cases
2025-09-15 18:29:58 +02:00
Andrej730
632e45af18
Fix missing platform in flask wheels ( 6497d5f)
2025-09-15 18:27:22 +05:00
Andrej730
559636ef0b
IFC Header UI - display author and additional info in case if it's available
2025-09-15 18:27:21 +05:00
Andrej730
5a2ed576c4
Fix ids.from_string always breaking on validation ( 4a9cf43)
...
Since `tree` is never provided.
2025-09-15 18:27:21 +05:00
Andrej730
cc7732ecbf
Replace .wrapped_data.header with .header ( dfaa8d5)
2025-09-15 18:27:21 +05:00
Andrej730
a3c6e295c8
ifcopenshell_wrapper.pyi - remove HeaderEntity
...
Recently (e.g. ce02e7a ) header entity was replaced with a generic `entity_instance`.
2025-09-15 18:27:20 +05:00
Andrej730
87069f3ac3
Groups/Systems UI - expand parent group when child group is added
...
So user can immediately see the added item, it seems more intuitive.
2025-09-15 18:27:20 +05:00
Andrej730
6469f79343
Groups/Systems UI - removing item to update uilist index
2025-09-15 18:27:20 +05:00
Andrej730
a3b04997ef
Systems UI - display icons for each system type in the dropdown
...
Example - https://files.catbox.moe/rnyuro.png
2025-09-15 18:27:20 +05:00
Andrej730
4c1af9e2f5
Systems UI - display hierarchy of systems #7062
2025-09-15 18:27:19 +05:00
Andrej730
646f2f2e32
Add tool for 'group' module
2025-09-15 18:27:19 +05:00
Andrej730
629d6c85ae
assign/unassign group - add info message
2025-09-15 18:27:19 +05:00
Andrej730
be66d4884d
typing
2025-09-15 18:27:19 +05:00
Andrej730
5de96c9f95
Systems UI - support adding child systems #7062
2025-09-15 18:27:18 +05:00
Thomas Krijnen
c661bb62ca
Rework header access in exception handling
2025-09-15 12:01:13 +02:00
Thomas Krijnen
b1b95ec2db
Conditional compilation in wrapper
2025-09-14 19:15:31 +02:00
Thomas Krijnen
5f50e6fcf1
Conditional compilation in wrapper
2025-09-14 19:15:25 +02:00
Thomas Krijnen
23b48c43a6
Conditional compilation
2025-09-14 13:53:33 +02:00
Thomas Krijnen
75e1d0e3c7
Update CMakeLists.txt - wasm build add "4x3_add2"
2025-09-14 11:38:33 +02:00
Sayan Jyoti Das
0d942f968a
fix: cleanup pyodide tmpdir properly
2025-09-14 07:13:54 +10:00
Thomas Krijnen
b5ccb93618
Fix Outer bound check in serializer #7099
2025-09-13 14:24:03 +02:00
Andrej730
41fb8ca583
Bump IOS build in Bonsai
...
Since now we have additional `readonly` argument in `ifcopenshell.open` and we need a new build to support it.
2025-09-12 20:11:07 +05:00
Andrej730
a86904dd41
ifcopenshell.open overload signature to consider new readonly argument
2025-09-12 20:11:07 +05:00
Andrej730
8a82343e27
typing - fix annoying module symbol getting into ifcopenshell.open retun types
2025-09-12 20:11:07 +05:00
Andrej730
8a841b449a
build-deps - download releases instead of cloning repo for rocksdb/zstd
2025-09-12 20:11:07 +05:00
Andrej730
24bbe9fb69
cmake - fix typo
2025-09-12 20:11:07 +05:00
Andrej730
9a38455465
black .
2025-09-12 20:11:06 +05:00
Thomas Krijnen
ced52862a1
Fix inst id based line lookup in log_internal_cpp_errors()
2025-09-12 16:25:37 +02:00
Thomas Krijnen
f0cd8c59c7
Build pyodide wheel without rocksdb
2025-09-12 16:10:19 +02:00
Thomas Krijnen
e795cec56b
win build: Update instal dir checks
2025-09-11 19:54:51 +02:00
Thomas Krijnen
b1248be1b8
wopts.disableWAL for 3x better write performance
2025-09-11 19:10:05 +02:00
Thomas Krijnen
79672f795e
Merge pull request #6203 from IfcOpenShell/tfk-rocksdb-storage
...
RocksDB instance/file storage
2025-09-11 18:39:18 +02:00
Thomas Krijnen
6ec12fe7c7
:Revert "Temporary Python 3.9 compatibility"
...
This reverts commit 0aae57620f .
2025-09-11 18:38:07 +02:00
Thomas Krijnen
4ee6863d43
nix build script: install some dependencies required for import base package
2025-09-11 18:34:54 +02:00
Andrej730
6497d5f78e
Bonsai - add Flask required by ifctester web ui
2025-09-11 18:03:38 +05:00
Andrej730
5b96df89ea
Fix error loading ifctester webapp (infinite "initialize environment...")
...
Browser was stuck trying to initialize the environment, because of the error below:
[worker] Received message: {type: 'init', payload: {…}, id: '9dLz/0eBQDa0xTQORXfdUg/0'} :5000/pyodide/pyodide.mjs:1 Failed to load module script: Expected a JavaScript-or-Wasm module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
2025-09-11 18:03:38 +05:00
Andrej730
ce4ad3c3a7
ifctester webapp makefile - fix issue on windows
2025-09-11 18:03:38 +05:00
Thomas Krijnen
8d714ed3bc
win build zstd paths
2025-09-11 13:56:11 +02:00
Thomas Krijnen
9d99de2340
file.reset_identity_cache() function for adv use cases
2025-09-11 13:56:11 +02:00
Thomas Krijnen
41f9b1522e
Pass ZSTD to ifopsh build
2025-09-11 13:56:11 +02:00
Thomas Krijnen
42b1cf039d
Revert "Debugging action"
...
This reverts commit e8b1b6f783 .
2025-09-11 13:56:11 +02:00
Thomas Krijnen
db832946e6
Update test_validate_rocksdb.py
2025-09-11 10:07:39 +02:00
Thomas Krijnen
05e8680b48
CMAKE_INSTALL_LIBDIR
2025-09-11 09:36:42 +02:00
Thomas Krijnen
e8b1b6f783
Debugging action
2025-09-11 09:24:40 +02:00
Thomas Krijnen
9367da61a0
PORTABLE=1 for rocksdb
2025-09-11 09:22:54 +02:00
Thomas Krijnen
c7e53e7762
Try different zstd_ config opts
2025-09-11 08:42:44 +02:00
Thomas Krijnen
2260f9983c
Try different zstd_ config opts
2025-09-10 21:47:07 +02:00
Thomas Krijnen
e68cc7201c
Call init_locale() when streaming
2025-09-10 21:42:55 +02:00
Thomas Krijnen
e2b39620a0
Test for supported compression
2025-09-10 21:42:30 +02:00
Andrej730
36da945e2d
Keep viewport position even if some previous drawing camera is active #7101
...
during alt+click on drawing activation button
2025-09-10 17:46:01 +05:00
Andrej730
371aeed3f6
Move duplicated properties to ActivateDrawingBase
2025-09-10 17:46:01 +05:00
Andrej730
86902c159b
Status UI status assignment - add test
2025-09-10 17:46:01 +05:00
Andrej730
f4be8812e2
Status UI - display active object status using icons
...
Example - https://files.catbox.moe/ucrtfg.mp4
2025-09-10 17:46:00 +05:00
Andrej730
12bcf1d2c7
bump svgfill
2025-09-10 17:45:53 +05:00
Andrej730
10e805b3f1
black .
2025-09-10 15:34:06 +05:00
Andrej730
1e9239b352
Fix error searching for annotation types #7103
2025-09-10 14:59:46 +05:00
Andrej730
7bea3d9d10
Annotation types - use natural sorting, make 'Untyped' appear always on top
2025-09-10 14:59:45 +05:00
Andrej730
e9bad17502
Fix broken scripts download urls #7107
...
They were hardcoded and `:download:` wasn't used, so sphinx never copied the scripts to be available to download.
They also were always pointing to main docs website, so they would show up on unstable documentation too, and I guess because they were hardcoded, there were no warnings when those files were recently moved.
2025-09-10 14:40:59 +05:00
Thomas Krijnen
be79d3712d
Initialize header after storage
2025-09-10 11:37:17 +02:00
Thomas Krijnen
e13dbd4767
Take note of zstd cmake path
2025-09-10 11:14:16 +02:00
Thomas Krijnen
c61d4bb70a
build-all tuple typo
2025-09-10 10:37:05 +02:00
Thomas Krijnen
ee632b7c37
Cmake libxml compatibility
2025-09-10 10:36:08 +02:00
Thomas Krijnen
f86e5abb85
Cmake libxml compatibility
2025-09-10 10:17:59 +02:00
Thomas Krijnen
b5275f5ab2
black
2025-09-10 10:08:14 +02:00
Thomas Krijnen
a925226cbc
Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage
2025-09-10 10:06:01 +02:00
Thomas Krijnen
06a89f9b17
Add zstd to build-all.py
2025-09-10 10:05:43 +02:00
Thomas Krijnen
231d047ce9
Capture SPF specific errors in validation test
2025-09-10 09:40:20 +02:00
Thomas Krijnen
a50fc3184b
Minor attribute count fixes
2025-09-10 09:13:16 +02:00
Thomas Krijnen
de8c8d3bed
Rocksdb header parsing
2025-09-10 09:10:59 +02:00
Thomas Krijnen
f8e523daff
h| i| t| serialization consistency
2025-09-10 09:10:32 +02:00
Thomas Krijnen
8ca9bd63dc
read-only validate
2025-09-10 09:10:03 +02:00
Thomas Krijnen
761b69ebfe
test_validate_rocksdb.py
2025-09-10 09:09:48 +02:00
Massimo Fabbro
e28979ceb7
See #6570 . Better column name for import csv.
...
Change column name for import rate from csv from Rate Cost Schedule to RateSchedule
2025-09-10 06:50:50 +02:00
Richard Brice
d552f247fa
Fixed a typo mapping horizontal curve segments to geometry
2025-09-09 13:08:31 -07:00
Richard Brice
8ef083e3af
Fixes position of zero-length segment
2025-09-09 12:13:09 -07:00
Thomas Krijnen
49bbf0cb9e
Free memory
2025-09-09 13:26:37 +02:00
Thomas Krijnen
a2f0bc8a17
Further implement serialization
2025-09-09 13:26:21 +02:00
Thomas Krijnen
62295beab2
Run black
2025-09-09 13:26:01 +02:00
Thomas Krijnen
a0b93265c2
Rocksdb storage -- ifcopenshell.file compatibility
2025-09-09 13:25:32 +02:00
Andrej730
338d3cf089
Fix test_package after 12c795a
2025-09-09 16:07:24 +05:00
Andrej730
39702cc543
Fix failing ifc2x3 tests after 3e5a2e5
...
Also added ifc4x3 tests
2025-09-09 15:42:32 +05:00
Andrej730
a9c0c1f4ba
control.unassign_control to support batching
2025-09-09 15:42:32 +05:00
Andrej730
abfb56350d
control.assign_control to support batching
2025-09-09 15:42:32 +05:00
Andrej730
fcb263f59a
util.element.get_controls
2025-09-09 15:42:31 +05:00
Andrej730
679fa6d876
Option to change text symbol from general text editing UI
...
Example - https://files.catbox.moe/kxyepa.mp4
2025-09-09 15:42:31 +05:00
Andrej730
876c5ac2e6
typing
2025-09-09 15:42:31 +05:00
Andrej730
29a86c6748
Fix ruff UP041
2025-09-09 15:42:31 +05:00
Andrej730
a4a04e6941
black .
2025-09-09 15:42:30 +05:00
Ryan Schultz
9aafa32008
Provide a little tolerance when using Cntl+e.
2025-09-08 14:28:36 -05:00
Ryan Schultz
4f8e37d733
Added current property, in search, as a lot of times your search is relative to what it was before.
2025-09-07 11:03:21 -05:00
Dion Moult
311f279b61
Don't assume /tmp exists, and cd - back out to prevent cp errors during pyodide-download
2025-09-07 21:47:57 +10:00
Sayan Jyoti Das
3ad7c52cc4
build step for pyodide
2025-09-07 21:08:47 +10:00
Sayan Jyoti Das
a5d9fe551a
update webapp + bonsai integration
2025-09-07 21:08:47 +10:00
Sayan Jyoti Das
1672a7da32
add proper shutdown handling
2025-09-07 21:08:47 +10:00
Sayan Jyoti Das
10dcd9a923
add IfcTester webapp to Bonsai UI and websocket server
2025-09-07 21:08:47 +10:00
Sayan Jyoti Das
be72887216
add build support for new IfcTester webapp
2025-09-07 21:08:47 +10:00
Massimo Fabbro
5400712a7a
Black
2025-09-06 07:20:48 +02:00
Massimo Fabbro
1dea8ca37b
See #6570.Keep ifc5d independent from Bonsai
2025-09-06 07:20:48 +02:00
Andrej730
f945a94fed
Classifications UI - display placeholder name for unnamed classifications
2025-09-05 19:10:36 +05:00
Andrej730
14ae8680e3
Fix find_package libxml compilation for more recent versions
...
Noticed compiling against libxml2 2.13.8 package that it's trying to use dynamic libs by default if `LIBXML_STATIC` is not defined. Adding `LIBXML2_DEFINITIONS` helps.
2025-09-05 19:10:36 +05:00
Andrej730
9ec0732a84
Add simple test for loading ifcsqlite to Bonsai
2025-09-05 19:10:36 +05:00
Andrej730
7b490bbc69
Bonsai - support loading element types from ifcsqlite
2025-09-05 19:10:36 +05:00
Andrej730
0cf3bb3da9
ifc2sql - support saving element types geometry
2025-09-05 19:10:36 +05:00
Andrej730
062bf8e60b
typing
2025-09-05 19:10:36 +05:00
Andrej730
f457a7d831
import_ifc - remove mesh_shapes
...
Was introduced in c3a36b7 and unused now.
2025-09-05 19:10:35 +05:00
Andrej730
1861baaaa9
import_ifc - remove type_products
...
It was introduced in 85e55b6 to keep track of type relationships, but seems to be deprecated awhile ago.
2025-09-05 19:10:35 +05:00
Andrej730
39253c6a6d
create_element_types - remove unnecessary check
...
Was introduced in 0ee9329 , but no longer needed since `None` values are excluded from this set after 10f8453
2025-09-05 19:10:35 +05:00
Andrej730
21137de8a0
Fix error reapplying selection during assign_class #7082
...
It appeared in case if user had IfcTypeProduct collection disabled.
2025-09-05 18:27:24 +05:00
Andrej730
a53017d9dc
Fix error editing IfcClassification without provided ReferenceTokens after e3ea12a #7091
...
Actually after 2ec2ac0 there's no need for json serialization as we support working with string subitems natively.
For some reason previously it was using get_georeference_props to add attributes, I guess it a typo that happened awhile ago.
2025-09-05 17:44:07 +05:00
Thomas Krijnen
70286f2bcb
Minor
2025-09-04 16:49:18 +02:00
Thomas Krijnen
26467a1d0e
Check for valid stream before streaming
2025-09-04 16:49:00 +02:00
Thomas Krijnen
09f9b23153
Harmonize and complete serialization of aggregates of aggregates
2025-09-04 16:48:41 +02:00
Thomas Krijnen
6ac95e1ed3
Access to underlying storage model in python
2025-09-04 16:47:56 +02:00
Massimo Fabbro
25c0ed6759
Black
2025-09-04 16:33:03 +02:00
Massimo Fabbro
f75d629990
See #6570 . Now it is possible to define the rate in import csv
...
In order to assign the rate in the csv import, use the columns 'Rate cost schedule' and 'RateID'
2025-09-04 16:33:03 +02:00
Andrej730
b492110652
Temporarily for ifcsqlite disable calculating model offset and loading element types #7085
...
To keep models loadable
2025-09-04 19:09:20 +05:00
Andrej730
942cb586b2
Bonsai - fix loading ifcsqlite file after 497542d #7085
2025-09-04 19:09:20 +05:00
Andrej730
49b9f99557
ifcopenshell.sqlite - add mvd_str
2025-09-04 19:09:19 +05:00
Andrej730
15b69bfa98
sql, stream - define wrapped_data to provide more clear errors
2025-09-04 19:09:19 +05:00
Andrej730
5f964bd33c
stream - remove trailing spaces
2025-09-04 19:09:19 +05:00
Andrej730
274a5cbfad
sql, stream - provide schema_identifier to avoid errors
2025-09-04 19:09:19 +05:00
Andrej730
b6fa1759ef
sqlite_entity - define file
2025-09-04 19:09:19 +05:00
Andrej730
f016d72787
cmake - support find_package(CONFIG) for libxml2 dependency
2025-09-04 19:09:19 +05:00
Andrej730
8c12bd0322
Reuse builder.create_axis2_placement_3d
2025-09-04 19:09:18 +05:00
Andrej730
90e6838ddb
typing
2025-09-04 19:09:18 +05:00
falken10vdl
5304072892
dms2dd and dd2dms - fix doc-strings, refactor, add tests ( #6763 )
2025-09-04 11:55:13 +00:00
Thomas Krijnen
59a5bf2344
RocksDB zstd encryption; cache tuning; readonly open mode
2025-09-03 11:11:55 +02:00
Andrej730
d4918edcd9
Fix broken literals reorder #6718
2025-09-02 18:28:00 +05:00
Andrej730
d901506029
Reordering and removing text literals - update viewport
...
So user can see the change right away.
2025-09-02 18:28:00 +05:00
Andrej730
aaf980b6b3
ifcwrap cmake - override _d interface suffix in debug builds ( d004410cc)
...
https://discourse.cmake.org/t/a-correct-way-to-add-d-debug-prefix-for-debug-python-extensions-on-windows/15132
2025-09-02 18:27:59 +05:00
Andrej730
d419e50ece
active_bsdd_property - make implied type more explicit
2025-09-02 18:27:59 +05:00
Andrej730
d5ff48fbc9
Fix "Copy Attribute Name" sometimes missing from attributes context menu
...
Due to a possibly unbound `url` variable this button sometimes went missing https://files.catbox.moe/2r8adp.png
2025-09-02 18:27:59 +05:00
Andrej730
99ca1c7eb4
Add description for pset enum properties too
...
Example - https://files.catbox.moe/ysmw6v.png
2025-09-02 18:27:59 +05:00
Andrej730
df4f565176
Fix missing IFC descriptions for already added pset props
...
Example - https://files.catbox.moe/dg1mzk.png
2025-09-02 18:27:58 +05:00
Andrej730
ed37ac3066
resolve_data_path_to_data_attr - fix typo in doc-string
2025-09-02 18:27:58 +05:00
Andrej730
1433240ae6
Fix text edit popup UI going out of sync with general text editing UI ( a98cddf)
2025-09-02 18:27:58 +05:00
Andrej730
d9fe751163
Remove update_text_value and fix tests after refactor
2025-09-02 18:27:58 +05:00
Andrej730
555621ceae
Avoid storing transient ui values in BIMTextProperties #4699
...
To avoid crashes and either way we stored the same data twice - once bim text props (and they were updated on each data refresh) and then again in data.py. Now it's going to use just data.py
2025-09-02 18:27:57 +05:00
Andrej730
d7ddbd2b99
typing
2025-09-02 18:27:57 +05:00
Richard Brice
eba3ced5fe
Fixes angle unit conversion when creating horizontal alignment from PI
2025-09-01 15:32:11 -07:00
Andrej730
d36205ea8b
svgfill - bump
2025-09-01 21:08:46 +05:00
Thomas Krijnen
a831884ee6
Free rocksdb iterators
2025-09-01 14:32:13 +02:00
Thomas Krijnen
01b64674ab
Init max_id_
2025-09-01 13:25:48 +02:00
Thomas Krijnen
78958567cf
Insert consecutive numbering test into random test
2025-09-01 13:25:37 +02:00
Thomas Krijnen
e6ea58cd72
Implement get_inverse_indices on rocksdb
2025-08-31 21:27:21 +02:00
Thomas Krijnen
6c607241a2
Clear merge output
2025-08-31 21:26:54 +02:00
Thomas Krijnen
18ad13cb8b
Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage
2025-08-31 16:06:07 +02:00
Thomas Krijnen
55e54f0b37
Re-add token offset to failing declaration lookup in order to be picked up by validate.py
2025-08-31 16:01:28 +02:00
Thomas Krijnen
453949ee01
Correctly wire up get_info2
2025-08-31 15:53:01 +02:00
Thomas Krijnen
e4d08ce6b7
Don't raise exception in file constructor
2025-08-31 15:52:46 +02:00
Thomas Krijnen
ce02e7a2a0
HeaderEntity does not exist anymore
2025-08-31 15:51:58 +02:00
Thomas Krijnen
f43ddf2cd5
Defer execution of error details
2025-08-31 15:51:34 +02:00
Thomas Krijnen
9d0eb4f994
Merge pull request #7058 from Krande/feat/IfcFixedReferenceSweptAreaSolid
...
feat: improved support for IfcFixedReferenceSweptAreaSolid
2025-08-31 10:57:49 +02:00
smr
67fb569669
style: fix formatting with black
2025-08-30 20:04:58 +02:00
smr
da9be7cff0
Fix PythonOCC >=7.8.0 compatibility in serialize_shape function
...
Resolves issue #6099 : PythonOCC >=7.8.0 changed WriteToString() method
signature, causing TypeError in ifcopenshell.geom.serialise().
This fix uses signature inspection to detect the method signature:
- For PythonOCC < 7.8.0: Use WriteToString() (no parameters)
- For PythonOCC >= 7.8.0: Fall back to Write() method
- Graceful handling of signature inspection failures
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-30 20:04:58 +02:00
Richard Brice
a839183ac2
Fixes referent sorting
2025-08-29 14:37:17 -07:00
Richard Brice
34bf374047
Corrects nesting of referents
2025-08-29 12:48:16 -07:00
Andrej730
43c35eaf24
ifcfm - fix error running without pandas
2025-08-29 23:50:27 +05:00
Andrej730
d91362a6f7
run-cmake - use swig install dir
2025-08-29 21:13:31 +05:00
Andrej730
76e3b8dd55
Bonsai - fix error appending curve/fill area styles
...
It would try to append them as Blender material and would fail, just import them as ifc elements.
Noticed testing #7066
2025-08-29 19:44:04 +05:00
Andrej730
d004410ccb
ifcwrap cmake - add _d debug postfix required on Windows
2025-08-29 19:44:03 +05:00
Andrej730
abbc5c2159
run-cmake.bat - use opencollada install dir
...
instead of providing include/library dirs explicitly
2025-08-29 19:44:03 +05:00
Andrej730
ae771cb37d
build-deps.cmd - bump swig version to 4.1.0 and use cmake
...
4.1.0 will match build-all.py and it's the first version to use cmake, so we can quickly build swig ourselves
2025-08-29 19:44:03 +05:00
Andrej730
b1a0b7a7d0
cmake - also try to use find_package(OpenCOLLADA)
2025-08-29 19:44:03 +05:00
Andrej730
556eb128d6
build-deps.cmd - add example use
2025-08-29 19:44:03 +05:00
Thomas Krijnen
dfaa8d510c
authorisation -> authorization in header schema for compatibility
2025-08-29 16:08:42 +02:00
Thomas Krijnen
93c2a4fe66
That's what you get for not using a visitor
2025-08-29 14:15:58 +02:00
Thomas Krijnen
df726a2d61
Initialization in various other constructor forms
2025-08-29 14:13:21 +02:00
Thomas Krijnen
2cf5011813
Missing f-string f
2025-08-29 14:12:39 +02:00
Thomas Krijnen
9330e73a70
Call process_deletion_inverse()
2025-08-29 13:48:00 +02:00
Thomas Krijnen
a73c60a467
Initialize guid map in case of empty file creation
2025-08-29 13:47:48 +02:00
Thomas Krijnen
f29b0d776a
Resiance in unpacking
2025-08-29 11:33:47 +02:00
Thomas Krijnen
e6a7c5334b
Resiance in unpacking
2025-08-29 11:10:08 +02:00
Thomas Krijnen
54b448cdb4
mkdir just in case
2025-08-29 10:10:28 +02:00
Thomas Krijnen
6bbff22a45
Update yml paths
2025-08-29 10:02:15 +02:00
Thomas Krijnen
51ae3f4c5e
Update CI paths
2025-08-29 09:26:23 +02:00
krande
df1b748b39
minor update
2025-08-28 20:05:45 +02:00
Thomas Krijnen
01ea1f627d
Fix MacOS toolset to 10.15 due to std::filesystem
2025-08-28 17:06:12 +02:00
Andrej730
0d3545c621
bim.select_library_file - shortcut to reload the library
...
Location - https://files.catbox.moe/an9hif.png
2025-08-28 19:11:52 +05:00
Andrej730
12cfa21d9b
Fix missing project library ui data refresh
...
E.g. it wasn't updated on undo
2025-08-28 19:11:52 +05:00
Andrej730
c8a60cc4d5
bim.refresh_library - add description
2025-08-28 19:11:51 +05:00
Andrej730
6702e912e7
bim.save_library - add info message for more responsive ui
2025-08-28 19:11:51 +05:00
Andrej730
b5aeab6404
Remove project library from UI #7057
...
Example - https://files.catbox.moe/940mhn.mp4
2025-08-28 19:11:51 +05:00
krande
7eea995b88
Remove load_ifc_occ_shape and related OpenCASCADE-specific code from test_sweeps.py. Simplify tests by focusing on mesh-based geometry validation. Clean up imports and unused assertions.
2025-08-28 15:41:20 +02:00
Thomas Krijnen
d9265765c5
Show hdf5 build errors
2025-08-28 15:40:38 +02:00
Thomas Krijnen
d2a560d144
Try with HDF5 1.13.0
2025-08-28 15:40:21 +02:00
Thomas Krijnen
974e62290c
Try without installing cmake
2025-08-28 15:34:01 +02:00
Thomas Krijnen
1a1583405c
USE_RTTI=On
2025-08-28 15:28:28 +02:00
Thomas Krijnen
ef10c23842
-lstdc++fs on gcc < 9
2025-08-28 15:23:19 +02:00
krande
77acfd7069
Refactor tests: update input path resolution, optimize imports, and enhance load_ifc_occ_shape.
...
Simplify path definitions in `test_write.py` and `test_open.py`. Replace `typing` with `collections.abc` for `Sequence` usage in `test_sweeps.py` and adjust type hints to use Python's generic collections. Add optional verbosity to `load_ifc_occ_shape` and refine geometry test assertions. Update `simple_sweep_2.ifc` fixtures for consistency with test expectations.
2025-08-28 13:16:07 +02:00
krande
79546807d9
fix lint
2025-08-28 13:15:47 +02:00
krande
e14974a1b5
Add linting feature and update test configurations in pixi.toml
...
Introduces a new `lint` feature with `ruff` and `black` dependencies. Extends test setup with additional dependencies and tasks for building, testing, and installation. Cleans up `.gitignore` and removes unused entries from `pixi.lock`.
2025-08-28 13:15:33 +02:00
Thomas Krijnen
4b5aa1221c
Run black
2025-08-28 11:35:42 +02:00
Thomas Krijnen
b448bea279
build-all correct install path
2025-08-28 11:28:23 +02:00
Thomas Krijnen
a219d335ea
to_string() default to True
2025-08-28 11:15:53 +02:00
Thomas Krijnen
47f7afb33b
Help SWIG understand header entities
2025-08-28 11:15:36 +02:00
Thomas Krijnen
3245d0af5c
Serialization of header entities with #0=
2025-08-28 11:15:18 +02:00
Thomas Krijnen
b6712602e2
Retain exact attribute counts in rdb as parsed
2025-08-28 11:15:05 +02:00
Thomas Krijnen
2c6956ec02
Finish (de)deserialization
2025-08-28 11:14:11 +02:00
Thomas Krijnen
322fbe27d6
Python 3.10 compatibility
2025-08-28 11:13:42 +02:00
Thomas Krijnen
a65fa1e606
Fix failing inverse test
2025-08-28 09:37:09 +02:00
Andrej730
71a6bf25bc
Fix error loading IFC file without contexts #7060 ( 8d3aa98)
2025-08-28 11:09:46 +05:00
Andrej730
43fbdf57c8
black .
2025-08-28 11:09:45 +05:00
Richard Brice
39100b7c97
Fixes problems with referents
2025-08-27 11:32:25 -07:00
krande
1cd32be2fc
Refactor test_sweeps.py: remove _is_swept_shape, restructure test directories, update test fixtures, and adjust assertions for geometry validation. Extend sweep_along_curve constructor to support fixed reference direction.
2025-08-27 19:37:47 +02:00
Richard Brice
c090073858
Removes assumption about which nest contains alignment layout segments
2025-08-27 07:35:49 -07:00
Thomas Krijnen
c97a1faecd
Initialize file schema to nullptr, wire up guid map
2025-08-27 15:14:20 +02:00
krande
9dd7b488d6
Refactor and extend swept shape tests; adjust comments and import structure
...
Improves formatting and readability in `test_sweeps.py`, adjusts imports and comments, and adds assertions for geometry validation in `simple_sweep_1.ifc` and `simple_sweep_2.ifc` tests. Updates code comments in `IfcFixedReferenceSweptAreaSolid`.
2025-08-27 13:55:42 +02:00
Thomas Krijnen
4dca91c56e
Compile rocks with -fPIC
2025-08-27 13:25:13 +02:00
Thomas Krijnen
b92871818a
Fix MacOS toolset to 10.13 due to rocksdb alignment requirements
2025-08-27 13:23:43 +02:00
krande
d01bf9690d
Add test and input for simple_sweep_2.ifc; extend constructor for sweep_along_curve to support fixed reference swept area solids
...
Includes `simple_sweep_2.ifc` test input, geometry validations in `test_sweeps.py`, and a new constructor for `sweep_along_curve` to handle directrix-based sweeps.
2025-08-27 12:11:02 +02:00
krande
604e0b0d94
Update .gitignore in test directory to include *.tmp files
2025-08-27 11:53:34 +02:00
krande
8420b98f3f
Simplify IfcFixedReferenceSweptAreaSolid position check logic
2025-08-27 11:52:56 +02:00
Thomas Krijnen
46693baacf
No walrus
2025-08-27 11:49:05 +02:00
Thomas Krijnen
c665c9d7e5
Correction for previous commit
2025-08-27 11:33:01 +02:00
Thomas Krijnen
b05c83e612
Qualify return type to keep older versions of swig happy
2025-08-27 11:05:59 +02:00
Thomas Krijnen
a958f1373c
Eliminate some warnings
2025-08-27 11:03:16 +02:00
Thomas Krijnen
b2c20b15b4
Move definitions
2025-08-27 10:32:58 +02:00
Thomas Krijnen
b9b12520f7
Compile rocksdb in ci.yml
2025-08-27 10:27:57 +02:00
Thomas Krijnen
11a048bf18
Rocksdb build fixes
2025-08-27 10:22:52 +02:00
Thomas Krijnen
5a06715843
Update examples
2025-08-27 10:21:45 +02:00
krande
6d9650e826
Update CMake presets: remove schema version 4
2025-08-26 21:24:54 +02:00
krande
2369f72798
Improve IfcFixedReferenceSweptAreaSolid handling and add swept shape tests
...
Enhances geometry processing for swept area solids by integrating matrix transformations. Includes new utility `_is_swept_shape` for topology analysis, extends testing with `load_ifc_occ_shape`, and updates schema versions in CMake presets.
2025-08-26 21:24:40 +02:00
krande
234cb76cd7
add 1 more test
2025-08-26 20:48:05 +02:00
Thomas Krijnen
0cd5c673c3
build-all.py rocksdb
2025-08-26 19:38:42 +02:00
Richard Brice
1de5940294
Separates referent and alignment layout usages into different referents
2025-08-26 08:02:57 -07:00
krande
a0cc94a614
Add test for IfcFixedReferenceSweptAreaSolid with simple sweep example
...
Includes `simple_sweep_1.ifc` test input and geometry validation. Updates dependencies in `pixi.lock`.
2025-08-26 16:21:29 +02:00
krande
4835829700
refactor IfcFixedReferenceSweptAreaSolid logic and adjust install-debug task
2025-08-26 16:10:00 +02:00
Thomas Krijnen
e5fe2df552
Template, typename, others to make GCC happy
2025-08-26 15:59:05 +02:00
Kristoffer Andersen
5719c3db2b
Merge branch 'v0.8.0' into feat/IfcFixedReferenceSweptAreaSolid
2025-08-26 14:13:53 +02:00
Thomas Krijnen
9109fcec12
Further conditional compilation
2025-08-26 14:05:34 +02:00
Thomas Krijnen
4e71ae7d85
Enable rocksdb in ci.yml
2025-08-26 14:03:38 +02:00
Thomas Krijnen
96336d6f68
Ugly conditional compilation for without rdb support
2025-08-26 13:56:03 +02:00
krande
115d3d4498
start work on improving support for IfcFixedReferenceSweptAreaSolid
2025-08-26 13:32:44 +02:00
Thomas Krijnen
6095c523d7
Run black (unrelated)
2025-08-26 13:28:52 +02:00
Thomas Krijnen
71f1a7d0a4
Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage
2025-08-26 13:28:21 +02:00
Thomas Krijnen
a0c92638d2
RDB serializer: write type declarations in case of typed refs
2025-08-26 13:25:38 +02:00
Thomas Krijnen
ff3fa48332
Add test case
2025-08-26 13:25:18 +02:00
Thomas Krijnen
8888e45115
Run black
2025-08-26 12:54:23 +02:00
Thomas Krijnen
92d4a89a43
Support propsetdefset in rocksdb streamer
2025-08-26 12:54:04 +02:00
Thomas Krijnen
ea53c96134
Allow inspection of rocskdb keys in python
2025-08-26 12:53:35 +02:00
Thomas Krijnen
2f62064814
Python impl function
2025-08-26 12:53:06 +02:00
Thomas Krijnen
722e819e11
Support propsetdefset in python streaming mode
2025-08-26 10:20:36 +02:00
Thomas Krijnen
862aa71a77
Left-overs after merge
2025-08-26 10:20:08 +02:00
Thomas Krijnen
e920379ca3
SFINAE for BaseClass*
2025-08-26 10:19:47 +02:00
Thomas Krijnen
4011666162
Fixes to header writing
2025-08-26 10:18:13 +02:00
Thomas Krijnen
9d9e9ed4cb
Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage
2025-08-26 10:17:57 +02:00
Richard Brice
9331e89d15
Alignments can now be created with or without geometric representations
2025-08-25 19:59:07 -07:00
Bruno Perdigão
8903d6a85c
Change variable name for consistency. Related to #6963
2025-08-25 20:42:28 -03:00
Bruno Perdigão
cb551e1248
Fix issue with creating walls from slabs in IFC2X3 files. Related to #6963
2025-08-25 20:42:28 -03:00
Bruno Perdigão
915c38947d
See #6963 . Fix issue with changing extrusion angle in IFC2X3 files.
2025-08-25 20:42:28 -03:00
Bruno Perdigão
190d9f8e3f
Fix issue with IfcPolyline in get_polyline_coords
2025-08-25 20:42:28 -03:00
Thomas Krijnen
d2c7c1532c
Implement streaming scan through file and use in rocksdb serializer and python
2025-08-25 12:45:10 +02:00
daniel-augusto
f7e8643f30
Update link to install Bonsai
2025-08-24 08:23:31 +02:00
falken10vdl
dccd9d4139
lock drawing titleblock (managed by lock icon in Inkscape) ( #7043 )
2025-08-21 15:55:19 -05:00
Thomas Krijnen
d31aafac5b
Update ConversionSettings.h
2025-08-21 14:06:54 +02:00
Thomas Krijnen
2949a86f09
Properly initialize stream::eof #7045
2025-08-21 10:00:44 +02:00
Ryan Schultz
4cbf551c75
small tweak to dev_environment.py
2025-08-20 13:01:42 -05:00
Andrej730
3ef5b13bf8
cmake - also try find_package(OpenCASCADE)
2025-08-19 19:06:21 +05:00
Andrej730
f1114745fb
cmake - fix OCC_INCLUDE_DIR strequal check working only once
...
If OCC_INCLUDE_DIR is not provided, then first it would pass, but the next time wouldn't since variable value would be 'OCC_INCLUDE_DIR-NOTFOUND'.
2025-08-19 19:06:21 +05:00
Andrej730
1d2b1dcbc8
build-deps - avoid redownloading Eigen
2025-08-19 19:06:21 +05:00
Andrej730
ea360733e4
run-cmake - use hdf5 install dir instead of providing include/library dir explicitly
2025-08-19 19:06:21 +05:00
Andrej730
1103cb6c03
build-deps - use the same hdf5 version as build-all
...
Also use general release cmake file, so there's no need for .patch
2025-08-19 19:06:20 +05:00
Andrej730
6bf39b3d6a
cmake - also use find_package to find hdf5
2025-08-19 19:06:20 +05:00
Andrej730
b971135ce4
build-deps - fix trailing spaces
2025-08-19 19:06:20 +05:00
Robin Quint
ef24bb52a7
Make Door / Window Tool place doors on the correct side of a wall ( #6986 )
2025-08-19 13:53:45 +00:00
daniel-augusto
6286d85850
Correct highlight code block python
2025-08-19 09:17:20 +02:00
Andrej730
3d82eb954f
Fix missing project custom psets reload when changing IFC filepath #7037
2025-08-18 19:48:04 +05:00
Andrej730
2951aecc14
typing
2025-08-18 19:48:04 +05:00
Andrej730
c4d54f7709
switch_representation - clear geometry cache
...
Noticed wall representation wasn't updating after window was added to it, because of the existing cache.
2025-08-18 19:46:59 +05:00
Andrej730
bd8cdf5a82
cmake - also use find_package to find Eigen3
2025-08-18 19:46:59 +05:00
Andrej730
53e9837858
fix file_dict typing ( 126accd6a)
2025-08-18 19:46:59 +05:00
Dion Moult
ddbe62772d
Fix bug where copy to structure feature was completely inaccessible from the UI
2025-08-18 17:30:56 +10:00
Christoph Mellüh
f9dc7d5d94
Improve docs ( #7005 )
2025-08-18 06:14:06 +00:00
Thomas Krijnen
aa97cc25d1
Support faceset face with voids in shape_builder
2025-08-16 15:02:17 +02:00
Thomas Krijnen
0088f3933f
Keep ruff happy
2025-08-16 14:07:11 +02:00
Thomas Krijnen
0054b27254
Support datetime instances in edit_pset
2025-08-16 13:35:21 +02:00
Thomas Krijnen
126accd6a2
Track ifcopenshell.file creation time for unique iden
2025-08-16 13:33:10 +02:00
Andrej730
bd0e16cee5
Add status assignment to Statuses UI
...
Example - https://files.catbox.moe/c6ydj7.mp4
Still need to add tests and support for userdefined statuses.
2025-08-15 19:51:01 +05:00
Andrej730
f5cb2dd21f
black .
2025-08-15 19:51:00 +05:00
falken10vdl
b024ba05da
Fix UI bug with active representation indication for occurrences ( #7009 )
2025-08-15 13:36:15 +00:00
Richard Brice
1fcf2fb53f
Fixed zero length segment for vertical alignment. Refactors curve segment transition code
2025-08-14 13:56:36 -07:00
Andrej730
6bc318b15c
Option not to draw specific linked files #6947
...
Example - https://postimg.cc/7GTkhGPb
2025-08-14 19:54:17 +05:00
Andrej730
40a895b5ad
docs\conf.py - skip .venv
2025-08-14 19:54:17 +05:00
Andrej730
3cd2963b01
cmake - fix errors on older cmake #7023
2025-08-14 12:13:48 +05:00
Andrej730
ff3c5b849e
cmake - relax CGAL_INCLUDE_DIR check on Linux #7023
2025-08-13 19:45:36 +05:00
Andrej730
8294dacaa4
Move code style notes to docs from wiki
...
Currently it's in Bonsai docs as this next to previously added formatter docs. Probably, should move it to ifcopenshell docs later.
C++ code style part about braces seems to be outdated.
2025-08-13 19:45:35 +05:00
Andrej730
ca03d5d0c5
bonsai/docs/make - server target
2025-08-13 19:45:35 +05:00
Andrej730
74a3e8a4e6
cmake - remove cmake_policies superseded by cmake_minimum_required
...
Our minimum cmake version is 3.21, so policies below use `NEW` by default already:
- CMP0048 - VERSION option support for `project`, introduced in 3.0
- CMP0074 - find_package() uses <PackageName>_ROOT variables, introduced in 3.12
- CMP0078 - UseSWIG generates standard target names, introduced in 3.13
- CMP0086 - UseSWIG honors SWIG_MODULE_NAME via -module flag, introduced in 3.14
2025-08-13 19:45:35 +05:00
Andrej730
41142c73bf
cmake ifcwrap - fix CMP0148 warning
...
The policy is removing FindPythonInterp and FindPythonLibs, but it was introduced in 3.27, so just skip it not to break minimum cmake ver.
2025-08-13 19:45:35 +05:00
Andrej730
6c0e2ce323
cmake - fix CMP0167 warning
...
CMP0167 is removing FindBoost module, but it's only introduced in 3.30, switching to OLD for now.
2025-08-13 19:45:35 +05:00
Andrej730
89c54291b0
Keep CMP0177 OLD ( e54dce5dc) to avoid breaking min cmake version #7023
2025-08-13 19:45:35 +05:00
Andrej730
7311777a57
build-deps.cmd - skip installing Python if same version already present on the system #6276
...
due to existing standard Python installer's limitation
2025-08-13 18:30:56 +05:00
Andrej730
380434f9dd
build-deps - error if python installer failed #6276
2025-08-13 18:09:12 +05:00
Andrej730
4d137171ec
cmake - document PYTHON_MODULE_INSTALL_DIR
2025-08-13 18:09:12 +05:00
Andrej730
8d3b8b24f8
cmake - search for LibXml2 only with IFCXML_SUPPORT #2035
2025-08-13 14:22:46 +05:00
Andrej730
9e5b667380
black .
2025-08-13 14:22:46 +05:00
Chris Mayo
61fff3d2b4
Fix ifcwrap searching for headers in system directories #3883 ( #5697 )
2025-08-13 07:37:58 +00:00
Massimo Fabbro
94a3d58e49
See #6570 . Now the rate cost item pop up shows also the cost schedule
2025-08-13 07:32:26 +02:00
Richard Brice
d57777290b
Elevated segment curve transition code to a public function
2025-08-12 16:37:39 -07:00
Andrej730
ffd1d52b4e
Fix build-urls note ( 7c2ba4b)
...
Apparently backticks are hiding the string.
2025-08-12 20:02:02 +05:00
Andrej730
6a42ac7733
CgalSmoothAngleDegrees - fix compilation warnings
...
warning C4244: 'initializing': conversion from 'double' to 'const int', possible loss of data
2025-08-12 19:05:53 +05:00
Andrej730
29ba0f3c03
IfcConvert - prompt expected user response
2025-08-12 19:05:53 +05:00
Andrej730
64a9c1f473
cmake - WITH_CGAL to ensure include dir exist
2025-08-12 19:05:53 +05:00
Andrej730
3342bd923d
cmake - detect missing HDF5_LIBRARIES on win/darwin
...
Previously it would assign .so files on Windows as libraries and you would detect error on linking stage.
2025-08-12 19:05:53 +05:00
Andrej730
95820516cf
cmake - fix error building ifcconvert without opencascade
...
geometry_serializer target is defined only if WITH_OPENCASCADE=ON
2025-08-12 19:05:53 +05:00
Andrej730
e230270218
cmake - error when building IfcGeomServer with WITH_OPENCASCADE=OFF
2025-08-12 19:05:53 +05:00
Andrej730
3423e6b13d
cmake - remove trailing spaces
2025-08-12 19:05:52 +05:00
Andrej730
34e699687d
cmake - ensure EIGEN_DIR is provided
2025-08-12 19:05:52 +05:00
Andrej730
63f7315d90
run-cmake - provide SWIG_EXECUTABLE explicitly
...
It seems SWIG_DIR has no effect and used as output variable from `find_package(SWIG)`.
2025-08-12 19:05:52 +05:00
Andrej730
a955d2bdee
ifcwrap cmake - add hint about missing SWIG_EXECUTABLE
2025-08-12 19:05:52 +05:00
Andrej730
a4045a37f1
typing
2025-08-12 19:05:52 +05:00
Andrej730
41128a397b
black .
2025-08-12 19:05:52 +05:00
Osyotr
3dbc1fddcb
Fix IfcGeom build without OpenCascade ( #7007 )
2025-08-12 13:12:07 +00:00
falken10vdl
8c5830ddab
Fix adding void if object has no layer material usage after #7010 #7019
2025-08-12 16:42:48 +05:00
Dion Moult
a6a27442fb
Add test case for bugfix 55e97fd1
2025-08-12 19:00:28 +10:00
Dion Moult
55e97fd170
Fix bug where append_asset would pull in openings unnecessarily
...
If you try to append an asset which has a relationship such as
IfcRelAssociatesClassification to a whole bunch of opening elements, all
those openings will also (incorrectly) be pulled in.
2025-08-12 18:37:25 +10:00
Christoph Mellüh
3e5a2e5eb2
Fix UI bugs for settings predefined types / assign_type to prevent invalid ifc ( #7011 )
2025-08-12 06:11:55 +00:00
Andrej730
b5e977d7f3
bim.activate_model not to alter objects selection
2025-08-11 18:58:43 +05:00
Andrej730
4423e0bb10
pset.get_template use fallback schema for odd schemas #6672
2025-08-11 18:39:20 +05:00
Andrej730
e54dce5dcf
ifcwrap cmake - set CMP0177 to new
...
To fix 1k warnings running in cmake 3.30+
The new policy is that cmake is normalizing destination paths in `install` and warns if normalization has any effect on them. In our case paths after normalization should be fine, so switching it to `NEW`.
2025-08-11 18:39:20 +05:00
Andrej730
39f4abe243
An option not to print linked ifc files #6947
...
Location - https://files.catbox.moe/9qinpy.png
This option is also a nice way of showing the user that this feature does exist.
2025-08-11 12:49:44 +05:00
Andrej730
f60abdd18f
Drawings cache options - document that optional are global
...
Otherwise it might be confusing as this option is displayed through "Active Drawing" UI.
2025-08-11 12:49:44 +05:00
Andrej730
9f92e4853f
assign_representation - assign repr only to occurrence for profile- or layer-based types #6934
2025-08-11 12:25:32 +05:00
Andrej730
f8f48796a9
test_assign_representation - cover ifc4x3
2025-08-11 12:25:32 +05:00
Andrej730
7c2ba4b18a
make build-urls - add small note with platform names
2025-08-11 12:25:32 +05:00
Andrej730
ce6505847a
black .
2025-08-11 11:23:18 +05:00
falken10vdl
8b1ffea91a
Enhance AddElement operator to orient the extruded ifcopening along the AXIS orientation ( #7010 )
...
* Enhance AddElement operator to orient the extruded ifcopening along the AXIS orientation
* Adjust extrusion direction based on DirectionSense for AXIS2 & AXIS3 IfcOpeningElement
2025-08-10 14:21:42 -05:00
Richard Brice
762f4ff975
Implements business 2 geometry mapping for Viennese Bend for horizontal and cant layouts
2025-08-09 14:03:19 -07:00
Andrej730
9d2a79803a
Fix typo in fe130eb #7008
2025-08-09 16:02:46 +05:00
falken10vdl
2597fcb463
Remove transform orientation settings in BoundingBoxDecorator ( #6994 )
...
* Remove transform orientation settings in BoundingBoxDecorator
* Remove unused transform orientation handling in update_measure_xyz and black formatting
2025-08-08 12:01:59 -05:00
Andrej730
36b86bbb54
Apply RUF022 (sorted __all__)
2025-08-08 19:12:11 +05:00
Andrej730
858e8743ba
IfcStore cache - small refactor and doc-strings
2025-08-08 19:12:11 +05:00
Andrej730
3f09dff79e
Option to always cache geometry
...
Settings location - https://files.catbox.moe/5cjtc1.png
2025-08-08 19:12:11 +05:00
Andrej730
fe130ebb5a
typing
2025-08-08 19:12:10 +05:00
Andrej730
b8f4149603
HdfSerializer::read_surface_style - use isnan for clarity
2025-08-08 19:12:10 +05:00
Andrej730
f2f28f8ba6
Use DIR_PATH subtype for properties
...
It adds this option to open directory in system browser using alt+click and we don't need anymore a special operator `bim.select_dir` to fill these props.
Example - https://files.catbox.moe/t8ejrs.png
2025-08-08 16:45:58 +05:00
Andrej730
12c795a482
Fix binaries urls ( 3d30d809d)
...
Should use 0.8.4 now, not 0.8.3
2025-08-08 16:34:03 +05:00
Andrej730
c2730a81d6
bim.activate_model - avoid processing same type occurrences multiple times #5696
2025-08-08 16:15:24 +05:00
Andrej730
2855e96e53
HdfSerializer::read_surface_style - fill style.instance
...
E.g. Bonsai is relying on geometry.materials to identify what styles object has and in this case it would skip all styles without entities.
2025-08-07 21:02:35 +05:00
Andrej730
4b7dfcdae5
HdfSerializer::read - fix nullptr dereference reading surface styles
...
The problem was with the line `read_surface_style(surface_styles[i], surface_style_ptrs[i]);` since `surface_style_ptrs[i]` was a nullptr.
Changed the signature to `style&` to make it more clear that it's expecting already created style struct.
2025-08-07 21:02:35 +05:00
Andrej730
67d405ba76
HdfSerializer - fix missing edges_item_ids item in cache ( dd9de98)
...
It wasn't written, but HdfSerializer was still requiring and throwing errors if it couldn' t find it, so cache wasn't working...
Honestly, me when I realized what happened - 🫣 🫣
2025-08-07 21:02:35 +05:00
Andrej730
d671d6bed1
HdfSerializer - avoid crashes when passing CgalShape
2025-08-07 21:02:35 +05:00
Andrej730
6483fee792
typing
2025-08-07 21:02:35 +05:00
Andrej730
cee034b5b2
Fix stub after 3c7e938
2025-08-07 21:02:35 +05:00
Andrej730
0132edd774
Sync stub with the wrapper #6976
2025-08-07 21:02:34 +05:00
Andrej730
ed8a31c54b
Update ignored settings structs in IfcPython.i #6976
2025-08-07 21:02:34 +05:00
Andrej730
3d30d809d1
Bump IfcOpenShell build #6909
2025-08-07 21:02:34 +05:00
Andrej730
5b0503e721
Geometry.get_cache
2025-08-07 21:02:34 +05:00
Thomas Krijnen
6924012dc8
- != +
2025-08-07 10:27:37 +02:00
Thomas Krijnen
007c451a77
Fix SurfCurveSweptArea solid #6984
2025-08-07 04:18:50 +02:00
Andrej730
358395c237
bim.copy_property_to_selection - fix missing bl_options
2025-08-06 18:18:32 +05:00
Andrej730
e7652a4846
bim.copy_property_to_selection - more friendly error for unsupported value types
2025-08-06 18:18:31 +05:00
Andrej730
630cb5f2dc
bim.activate_model - show time it took #5696
2025-08-06 18:18:31 +05:00
Andrej730
117cb1ba5a
Switch to pypa/gh-action-pypi-publish
...
Though there are no particular known issues with https://github.com/ortega2247/pypi-upload-action we've used before, but it wasn't updating for 5 years now, so it's better to switch to official PyPA workflow.
Args for workflow seem to be exactly the same, so it's just a drop-in replacement.
2025-08-06 18:18:31 +05:00
Andrej730
33f2f2e49e
prop_with_search - set search_threshold to 0 for relating type properties
...
Otherwise it had no effect anywhere.
2025-08-06 18:18:31 +05:00
Andrej730
0f6cc23c28
prop_with_search.enable_relating_type_suggestions - keep default to False
...
To gradually introduce it when it's needed.
2025-08-06 18:18:30 +05:00
Andrej730
ce154cc8d2
prop_with_search - move new args to kw-only for readibility
2025-08-06 18:18:30 +05:00
Andrej730
d7d592de6f
typing
2025-08-06 18:18:30 +05:00
falken10vdl
2f23f3cdd7
Add suggestions for relating types in enum property search ( #6962 )
2025-08-06 10:03:07 +00:00
Andrej730
6757026e3e
Fix missing pset templates update when changing IFC filepath #6979
...
E.g. when user opened .blend file and ifc filepath was pointing to a wrong destination, after they changed the filepath pset templates wouldn't reload.
2025-08-06 14:48:39 +05:00
Andrej730
2154200697
black .
2025-08-06 14:48:39 +05:00
Thomas Krijnen
6ffcf363a6
Fix geom literals #6974
2025-08-06 10:49:45 +02:00
shmoody_y
bf6e02f99d
fix missing parantheses
2025-08-06 09:46:26 +02:00
shmoodyyy
15a31074e8
fix leaking as_compound() calls
2025-08-06 09:46:26 +02:00
Thomas Krijnen
c9eb345491
standalone_drawer.py: no openings though
2025-08-06 09:29:04 +02:00
Thomas Krijnen
7e2b9dc7f3
Warn about failure to create camera from IfcAnnotation/DRAWING in Svgserializer
2025-08-06 09:22:47 +02:00
Thomas Krijnen
7a2dc5c0c5
Prevent unnecessary trsf::form() = other #6909 #6841
2025-08-06 09:21:57 +02:00
Thomas Krijnen
51afe03b78
shared_ptr references in compile-time loop to prevent unnecessary ref-bumps
2025-08-06 09:19:38 +02:00
Thomas Krijnen
be8e96d918
standalone_drawer.py: dont require drawing elements to be speified on cli
2025-08-06 09:18:10 +02:00
Thomas Krijnen
071353eddc
Vertex normal smoothing in CGAL --cgal-smooth-angle-degrees #6997
2025-08-06 05:46:07 +02:00
Andrej730
d1bcd887ca
Zones UI - show currently edited zone
2025-08-05 13:57:40 +05:00
Andrej730
a05bae78ff
search.operators - add missing bl_options
...
If operator is changing blend data, then it should always provide undo option, otherwise it may lead to crashes.
2025-08-05 13:57:40 +05:00
Andrej730
31e9b125e3
Selection filters - refactor code
...
As most of the code can be just reused
2025-08-05 13:57:39 +05:00
Andrej730
d0d913a97b
Remove dead code in search.prop
2025-08-05 13:57:39 +05:00
Andrej730
50ff363501
Remove UIList.use_filter_linked
...
It seems it's either was never used or it was used in some very old Blender version.
2025-08-05 13:57:39 +05:00
Andrej730
1c06d12efc
Support 2f1de2f when adding bsdd properties
...
Previously you would still need to open bsdd ui and preload dictionaries.
2025-08-05 13:57:39 +05:00
Andrej730
eb7550b63e
bim.add_bsdd_properties - add poll check
2025-08-05 13:57:39 +05:00
Andrej730
9d83eec674
typing
2025-08-05 13:57:38 +05:00
Andrej730
4cf4628e63
remove unused code
2025-08-05 13:57:38 +05:00
Andrej730
a498e75712
bim.add_element - add poll check #6985
2025-08-05 13:54:32 +05:00
Massimo Fabbro
8a4739f9c9
Running black
2025-08-05 08:56:06 +02:00
Massimo Fabbro
c6093430c2
See #6570 . Now rate cost item works also with categories
2025-08-05 08:56:06 +02:00
Christoph Mellüh
57658eb5df
Fix Bonsai classification tests after bonsai bsdd changes ( #6988 )
2025-08-05 06:01:48 +00:00
Andrej730
f25ad2a9cb
bsdd ui - preload properties when loading classes
...
It was confusing that you still needed to click on the first property, even though it was selected by defalt.
2025-08-04 21:18:15 +05:00
Andrej730
3b8b4c1566
typing
2025-08-04 21:18:15 +05:00
Christoph Mellüh
d2939067bd
Add Description-ContextMenu Entry to bSDD Properties ( #6970 )
...
See #6970 for example.
2025-08-04 13:52:00 +00:00
Andrej730
37c05f763e
Fix IFC undo data loss in 645298e #6973
...
There was a contradiction - modal operators were treated as special and were always creating new transactions (`is_top_level_operator = method == "MODAL"`), but those transactions were only closed if modal returned `FINISHED` or `CANCELLED`, so in most case previous transactions were just overridden, so IFC undo data was lost.
Ping @Moult just in case
2025-08-04 18:47:08 +05:00
carlopav
e00a865bce
Various fixes to IfcCostSchedule PDF export ( #6983 )
...
* IfcCostSchedue PDF export: changed Output type from off to auto
* Fixed currency value
* Fix summary total if no nested structure present
2025-08-04 08:46:20 +00:00
Dion Moult
4d42512b6a
Add support for integer data types in bsdd
2025-08-04 17:02:32 +10:00
Thomas Krijnen
037fd22b51
util/unit.py::calculate_unit_scale() Check for valid unit_type
2025-08-04 08:53:08 +02:00
Thomas Krijnen
1ad2c62a22
add_qto.py: MethodOfMeasurement=BaseQuantities to comply with spec text
2025-08-04 08:52:02 +02:00
Dion Moult
823eb7d199
SetFalseOrigin recipe now by default resets non-geometric spatial elements (XY values only).
2025-08-02 18:11:33 +10:00
Dion Moult
7038cbe871
ResetSpatialElementLocations patch now supports only_xy toggle.
...
Also rewrote the patch to use API and util functions to make it more
robust.
2025-08-02 17:54:55 +10:00
Andrej730
1cb44da76c
Refactor toggling target view to a single operator
2025-08-01 20:07:59 +05:00
Andrej730
291b313d79
prop.Drawing - add some notes
2025-08-01 20:07:59 +05:00
Andrej730
cf13c6fdc1
Fix old bug with collapsing/expanding drawing list #6969
...
It was checking `is_expanded` for all drawings items, though it should have checked just target view items.
2025-08-01 20:07:59 +05:00
Andrej730
5bd9a58936
Zones UI - fix missing name update
2025-07-31 19:47:34 +05:00
Andrej730
ff75875045
Zones UI - add classification UI #6941
2025-07-31 19:47:33 +05:00
Andrej730
4ff0fd56e9
ClassificationsData - simplify
2025-07-31 19:47:33 +05:00
Andrej730
9cc5338602
Rename ClassificationReferencesData -> ObjectClassificationsData
...
To make it more clear what element's classification data it's storing.
2025-07-31 19:47:33 +05:00
Andrej730
37a62e3004
Zones UI - add psets ui #6941
2025-07-31 19:47:33 +05:00
Andrej730
9cc1347dd8
Reuse props.active_group
2025-07-31 19:47:32 +05:00
Andrej730
716919d052
typing
2025-07-31 19:47:32 +05:00
Andrej730
c82a7b708c
build-all - verbose logs to print timestamps
...
So it will be easier to track build times from logs
2025-07-31 19:12:50 +05:00
Andrej730
5acacaa9d8
build-all - fix verbose logging
...
verbose logging was setting log level only for `logger`, never setting for the `logger`'s handler, so `-v` option, it seems, never worked. For simplicity now handler will just inherit log level from the `logger`.
2025-07-31 19:12:50 +05:00
Andrej730
e386c82ada
build-all - add notes
2025-07-31 19:12:50 +05:00
falken10vdl
18b2364d52
Groups UI - fix crash accessing invalid collection items references #6811 ( #6965 )
2025-07-31 19:06:49 +05:00
falken10vdl
7cd423d423
S_Z for wall tool to change_extrusion_depth ( #6935 )
2025-07-29 12:59:15 -05:00
Andrej730
edd2dcc6c6
Fix bim.change_log_level console error on reregister
2025-07-29 21:26:46 +05:00
Andrej730
486e622f77
Limit active type prop width #6943
...
Example - https://files.catbox.moe/m49wt1.png
2025-07-29 21:26:46 +05:00
Andrej730
5ad566f42d
Bonsai Mac app - allow to be called without arguments
2025-07-29 20:18:30 +05:00
Andrej730
aec286d85b
Bonsai Mac app to quickly open .ifc files in Bonsai directly from Finder.
...
Demo for setting it up https://files.catbox.moe/1pyqps.mp4
2025-07-29 20:18:30 +05:00
Andrej730
38b594d159
dev_environment.py - fix REPO_PATH autodetection after 4a2411c05
2025-07-28 19:28:00 +05:00
Andrej730
5166416c61
build-all - add a couple of notes
2025-07-28 19:27:59 +05:00
Andrej730
c700a32b09
Fix RUF015
2025-07-28 19:27:59 +05:00
Andrej730
0cb6d9de72
typing
2025-07-28 19:27:59 +05:00
Andrej730
cdeeab4b31
black .
2025-07-28 17:03:25 +05:00
Andrej730
23944d6060
Fix small typo in 99d7f5ad7
2025-07-28 16:47:08 +05:00
Thomas Krijnen
e13ba7627a
Rocky8 python3.6 build-all compatibility
2025-07-28 13:27:08 +02:00
Thomas Krijnen
9e6c0758d5
Rocky8 python3.6 build-all compatibility
2025-07-28 13:23:10 +02:00
Thomas Krijnen
6932d2a268
Rocky8 python3.6 build-all compatibility
2025-07-28 13:21:43 +02:00
Thomas Krijnen
638e1ebcec
Rocky8 python3.6 build-all compatibility
2025-07-28 13:17:38 +02:00
Dion Moult
106b02fad1
Allow URI browsing for IfcPatch recipes with directory names
2025-07-28 16:44:44 +10:00
Dion Moult
54522aab6a
Add AGS2IFC patch recipe by David
2025-07-28 16:44:32 +10:00
Thomas Krijnen
eb5df2f8c3
Simple SPF submodule
2025-07-28 05:27:22 +02:00
Richard Brice
c8dbb72f69
Updated alignment stationing to account for stationing being defined on a parent alignment
2025-07-27 15:10:23 -07:00
Richard Brice
e56f09071a
Updates IfcOffsetCurveByDistance to be more permissive
2025-07-27 15:10:23 -07:00
Richard Brice
a824141b90
Fixes IfcOffsetCurveByDistance
2025-07-27 15:10:23 -07:00
Richard Brice
bb56882879
A few more fixes for zero length segments
2025-07-27 15:10:22 -07:00
Richard Brice
ed0e825283
Alignment api bug fixes
2025-07-27 15:10:22 -07:00
Richard Brice
c12ed46c49
Bug fixes with zero length segment and b2g mapping when project angle is not radian
2025-07-27 15:10:22 -07:00
Richard Brice
f3c72920de
Alignment patch recipes
2025-07-27 15:10:22 -07:00
Richard Brice
3ef7f1c141
Alignment API updates to support new patch recipes
2025-07-27 15:10:22 -07:00
Richard Brice
3e0ef46a37
Updates IfcHierarchyHelper::addRelatedObject to work with IfcRelNests
2025-07-27 15:10:22 -07:00
Bruno Perdigão
689d8d1644
Remove leftover line from 651d924759
2025-07-27 11:56:57 -03:00
Bruno Perdigão
9bf799e69e
black .
2025-07-27 11:54:19 -03:00
Bruno Perdigão
c27f89a109
Remove old comment
2025-07-27 11:47:43 -03:00
Bruno Perdigão
651d924759
Prevents using aggregate mode with IfcSpatialElement
2025-07-27 11:24:54 -03:00
Bruno Perdigão
17d6b8af61
Add Name to Linked Aggregates and keep product assignment after refreshing.
...
See #6831 . Warning: this is a breaking change.
Linked Aggregate names are numbered to keep them consistent when reopening
the file instead of relying on Blender auto numbering objects with the
same name. However, for annotation purposes, the numbering is irrelevant,
and the user might want to use just the aggregate name. So it was added a
"Name" to the "BBIM_Linked_Aggregate" Pset that can be used in these cases.
When refreshing the linked aggregates, their names will be updated to reflect
the "Name" value and the product assignment will be preserved to keep
annotations in sync.
In order to adapt existing files to this new Pset structure see this gist:
https://gist.github.com/brunoperdigao/37a5b838935b15a91aa70b2bc4de325f
2025-07-27 11:24:54 -03:00
Dion Moult
4a2411c05d
Document new Python based dev installation
2025-07-27 19:21:43 +10:00
Dion Moult
9f9abaadc8
Support Linux (tested and seems to work)
2025-07-27 19:21:43 +10:00
Dion Moult
99d7f5ad7a
Clarify which Blender versions are supported
2025-07-27 19:21:43 +10:00
Osyotr
bf7171b7ba
Don't mark function that throws exception noexcept
2025-07-26 08:40:03 +02:00
Andrej730
1ac5a8d785
build-all - small refactor for readability
2025-07-25 18:22:18 +05:00
Andrej730
9004c5d153
Include build-all.py to black formatter
2025-07-25 18:22:18 +05:00
Andrej730
99cdc4da35
date.ifc2datetime - refactor for readability
2025-07-25 18:22:18 +05:00
Andrej730
3c338db364
bim.create_shape_from_step_id - include curves by default
...
Though it's still possible to disable it from Redo menu.
2025-07-25 18:22:18 +05:00
Andrej730
7322cc9018
bim.create_shape_from_step_id - use cursor as the location for the shapes
2025-07-25 18:22:18 +05:00
Andrej730
dcebd55031
bim.create_instance - simplify logic
...
Just use active object instead of the selected, move basic check to `poll`.
2025-07-25 18:22:17 +05:00
Andrej730
1d789da066
test_copy_work_schedule - cover ifc2x3 support
2025-07-25 18:22:17 +05:00
Andrej730
dd1c47f9dc
sequence.add_date_time
...
API method to create IfcDateAndTime / IfcDatetime in schema agnostic way.
2025-07-25 18:22:17 +05:00
Andrej730
98e64c1830
sequence.duplicate_task - fix example using non-existent api
2025-07-25 18:22:16 +05:00
Andrej730
e8a4f7947d
sequence.duplicate_task - fix misleading description
2025-07-25 18:22:16 +05:00
Andrej730
05a8824019
typing
2025-07-25 18:22:16 +05:00
Andrej730
cfd5d2a4eb
Fix pagination issues when restarting type manager #6917
2025-07-25 16:57:40 +05:00
Andrej730
b79256ce32
mix_snap_and_axis - fix subtle bug with creating zero Vector
2025-07-25 16:57:40 +05:00
Andrej730
d8ae33dd2a
Element types dropdown + search #6943
...
Example - https://files.catbox.moe/jv9uxt.png
2025-07-25 15:23:45 +05:00
Andrej730
b76b05fc71
sequence.copy_work_schedule #6901
...
Similar to e50215ddc but for IfcWorkSchedules
Button location - https://files.catbox.moe/jfd1ol.png
2025-07-24 19:39:14 +05:00
Andrej730
f5b28c0df8
util.get_work_schedule_tasks - fix critical bug with missing root tasks
...
Now we also use generator to mirror get_schedule_cost_items
2025-07-24 19:39:14 +05:00
Andrej730
a99bfd9294
sequence.get_root_tasks_ids - remove unused method
2025-07-24 19:39:14 +05:00
Andrej730
cbdd091d6f
sequence.add_work_schedule - add missing object_type doc-string
2025-07-24 19:39:14 +05:00
Andrej730
82fcdfc160
export_duration_prop - remove dead assignment statements
2025-07-24 19:39:14 +05:00
Andrej730
cb724dbfde
Work schedule UI - fix issue with some durations props not loading
...
E.g. IfcWorkSchedule.Duration wasn't recognized as such or IfcWorkSchedule.TotalFloat wasn't imported properly and was uneditable.
Now we also check IfcDuration type on attributes explicitly, instead of relying on hardcoded list
2025-07-24 19:39:14 +05:00
Andrej730
973b6be2aa
Deduplicate ISODuration definition
2025-07-24 19:39:13 +05:00
Andrej730
7eba094a39
BIMWorkPlanProperties.editing_type - use enum
2025-07-24 19:39:13 +05:00
Andrej730
6bfa2aaf10
Work schedule UI - add missing button for disabling attributes editing
2025-07-24 19:39:13 +05:00
Andrej730
03e09a97c6
Work schedule UI - hide buttons labels to make it more tidy
2025-07-24 19:39:13 +05:00
Andrej730
6e9ec4861e
bim.import_work_schedule_csv - make info message look nicer
2025-07-24 19:39:13 +05:00
Andrej730
d3bca858b0
Add import work schedule button to work schedule ui
...
Location - https://files.catbox.moe/sxfxv4.png
To mirror the similar UI we have in 4d, this way feature will much easier to find than checking File->Import
2025-07-24 19:39:13 +05:00
Andrej730
ba3e5ae28c
Rename bim.import_csv -> bim.import_work_schedule_csv
...
To make name less generic
2025-07-24 19:39:12 +05:00
Andrej730
516f8cdb15
Fix broken sequence color schema UI in Blender 4.4+
...
We missed sequences being renamed to strips in Blender 4.4 and previous icon name broke, so UI wasn't able to load.
2025-07-24 19:39:12 +05:00
Andrej730
f3efb1601a
copy_cost_schedule - add a test
2025-07-24 19:39:12 +05:00
Andrej730
f8a933e094
typing
2025-07-24 19:39:12 +05:00
sboddy
0a50a3cb24
Option to convert custom properties to ifc psets when assigning an IFC class ( #6921 )
...
Feature location - https://files.catbox.moe/cuvdan.png (assign class with alt+click modifier)
See #6921 for an example of converted props
2025-07-24 06:12:22 +00:00
Andrej730
e50215ddce
cost.copy_cost_schedule #6901
...
A feature allowing duplicate existing IfcCostSchedule - either from API or from Bonsai UI
Button location in Bonsai - https://files.catbox.moe/ct058q.png
2025-07-23 18:57:40 +05:00
Andrej730
f24adcdadb
control.assign_control - small optimization
2025-07-23 18:55:50 +05:00
Andrej730
84f6632c13
Reuse assign_control instead of creating IfcRelAssignsToControls
2025-07-23 18:55:50 +05:00
Andrej730
c82191f40b
typing
2025-07-23 18:55:49 +05:00
Andrej730
3dde609519
enable/disable editing representation items to affect all selected objects
...
To simplify the process when you need to review representation items / their styles for multiple objects.
2025-07-23 18:55:49 +05:00
Andrej730
ed65c039dc
Test for missing platforms
...
Needed to ensure all necessary platforms are covered when build is bumped
2025-07-22 18:07:55 +05:00
Andrej730
dd5d997d47
ifcopenshell-python workflows - include py313
2025-07-22 18:06:20 +05:00
Andrej730
d6a3900f3e
ifcopenshell-python - support python 3.13
2025-07-22 18:06:20 +05:00
Andrej730
64d3951d5e
installation.rst - add Python 3.13 urls
2025-07-22 18:06:20 +05:00
Andrej730
0ef255bc3c
Fix linking project missing offsets for instances of complex geometry
...
After ba2456a if main IFC project had an offset and linked object had more than 333 faces, then it was imported at it's original location instead, missing an offset.
Also processing occurrences should be now more optimized, since we reuse the same verts buffer instead of recreating it 10 times.
2025-07-22 18:06:20 +05:00
Andrej730
8f5905c801
ifcopenshell_wrapper.pyi - document Element attributes
2025-07-22 18:06:19 +05:00
Andrej730
7ac7190d57
typing
2025-07-22 18:06:19 +05:00
Andrej730
06ad541c56
troubleshooting.rst - update Blender version
2025-07-22 18:06:19 +05:00
Andrej730
b4740b6949
append_asset to also match material sets by the name #6762
2025-07-21 18:10:11 +05:00
Andrej730
d66dd1be18
Button that allows changing linked ifc project filepath
...
Example - https://files.catbox.moe/usc5cu.png
2025-07-21 18:10:11 +05:00
Andrej730
adfe56c777
typing
2025-07-21 18:10:11 +05:00
carlopav
dcf8329b04
Pdf ifc cost schedule export improvements ( #6884 )
...
* Export_IfcCostSchedule_to_PDF_improvements
* IfcCostSchedule CSV export: Added ItemIsASum column
New column in the ifc export that tracks if IfcCostItem is a sum, also added a new static method to the IfcDataGetter class.
* IfcCostSchedule CSV export: Added cost quantities column
Cost quantities are a serialsed list containing the name of the quantity and the quantity value.
* IfcCostScheduel PDF export: add options to fine tune export
New options include nested_structure_depth, should_print_cover, should_print_description, should_print_rates, should_print_summary, should_print_cost_ids.
Also pass project currency to typst (still not used).
Added footer with "proudly created with IfcOpenShell".
Updated Cover with formatting and IfcCostSchedule Description
2025-07-21 11:34:00 +05:00
Richard Brice
d49a3486b9
Commented out debugging code for alignment
2025-07-18 14:47:14 -07:00
Richard Brice
78759a63f2
Updates helmert curve business2geometry mapping (again)
2025-07-18 12:29:28 -07:00
Richard Brice
913076de94
Updates helmert curve business2geometry mapping
2025-07-18 09:47:59 -07:00
Andrej730
e318cbd9e6
dev_environment.py - process broken symlinks
2025-07-18 20:17:04 +05:00
Andrej730
2f1de2f104
Autoload active bsdd from IFC file
...
Now we store in the IFC file list of active bsdd user was using in Bonsai.
So when you open IFC file it automatically marks dictionaries as active and there's no need to go to bsdd UI, unless there are new dictionaries to add/remove.
Example - https://files.catbox.moe/kzwa2n.mp4
2025-07-18 20:17:04 +05:00
Andrej730
0e74ac8eea
dev_environment.py - support Mac
2025-07-18 20:17:04 +05:00
Andrej730
31ec4820fc
dev_environment.py - readable errors in case bonsai path wasn't found
...
Since we added lookup for multiple paths, it was failing with confusing "Could not find Bonsai path in expected locations" even if the problem was with BLENDER_PATH.
2025-07-18 20:17:03 +05:00
Andrej730
917e7f9f15
dev_environment scripts - bump Blender version
2025-07-18 20:17:03 +05:00
Andrej730
2f0014a489
Mac compilation instructions - update Python version
2025-07-18 20:17:03 +05:00
Andrej730
92340f159d
Mac compilation instructions - include eigen
...
Otherwise compilation doesn't work
2025-07-18 20:17:03 +05:00
Richard Brice
a392a1fbfb
Adds alignment as offset curve
2025-07-17 10:48:42 -07:00
Andrej730
728f9e2c04
util.shape - replace ShapeType with W.Triangulation for accuracy
2025-07-17 19:58:48 +05:00
Andrej730
2edfe1e5d8
profile.add_parameterized_profile - add profile_type arg
...
To create more valid profiles by default. Noticed then Bonsai creates new profiles, it doesn't set ProfileType, leading to validation errors.
2025-07-17 19:58:48 +05:00
Andrej730
0b48120a66
bim.create_all_shapes - allow selecting library to use
2025-07-17 19:58:48 +05:00
Andrej730
577d46eb70
typing
2025-07-17 19:58:47 +05:00
Andrej730
83a3813f53
debug operators - remove unnecessary undo step
2025-07-17 19:58:47 +05:00
Bruno Perdigão
dd14f33c0b
Allow "Refresh Linked Aggregate" to be called when uppermost aggregate is selected.
2025-07-16 17:52:48 -03:00
Bruno Perdigão
b305e2354b
Fix issue with DuplicateMoveLinkedAggregate object selection.
...
When dealing with multiple aggregates, the operator was not selecting
the right aggregate to move.
2025-07-16 17:52:48 -03:00
Andrej730
afb2742c2f
standalone_drawer - print example args
2025-07-16 18:55:38 +05:00
Andrej730
55d533309e
Change Python log level from UI
...
Location - https://files.catbox.moe/4umtyc.png
E.g. can be useful to narrow down some issues during ifc import
2025-07-16 18:55:37 +05:00
Andrej730
00f7871386
BIM_UL_topics - move to bcf module
2025-07-16 18:55:37 +05:00
Andrej730
f15a23483e
typing
2025-07-16 18:55:37 +05:00
Andrej730
f14b4c467d
Revert "Bump IOS" #6909
...
This reverts commit a4dd1c3463 .
2025-07-16 16:36:16 +05:00
Dion Moult
4a9cf433d1
Fix bug in IfcTester thanks to Sayan where parsing XML text using ET would expand namespaces and therefore break namespaces during decode
2025-07-16 18:14:45 +10:00
Andrej730
866362c6ed
More readable error creating a drawing with underlay but no active style #4870
2025-07-16 12:31:10 +05:00
Andrej730
0dc17a2141
Revert optional pyradiance 41e6478 #6633
...
Since issue is resolved upstream and there's no need to keep import optional.
2025-07-16 11:22:45 +05:00
Andrej730
d55e7faf2a
Fix ifc4x3 breaking import of csvs that have enum values after c9847ca #6708
2025-07-15 18:01:57 +05:00
Andrej730
52762f828c
Save all properties from Preferences UI as actual preferences
...
Previously some of them were saved only for current .blend file, moving them to preferences will make it more consistent with usual Blender UX. If needed we'll be able to add some way to fine-grain them later.
There's also a temporary patch that's going to migrate old .blend-props to new preferences-props to make process less disruptive.
2025-07-15 17:47:38 +05:00
Andrej730
1d0868eb18
bim.attribute_search_values - enable by default if possible
...
Since release just happened, it's more safe to try out propagating attribute search feature everywhere.
2025-07-15 17:47:37 +05:00
Andrej730
9461c6369e
ci-bonsai-daily - use Blender 4.5 build
2025-07-15 17:47:37 +05:00
Andrej730
0f3b570800
Fix get_segment_length bug with non-parametrized profiles ( f9c4b6a)
...
`settings` wasn't defined, so `create_shape` was always resulting in an error. Also, `create_shape` is returning `Triangulation` in this kind of cases, so there's no `.geometry`.
Also removed IfcCircleProfileDef if-check since it's covered by IfcParameterizedProfileDef.
2025-07-15 17:47:37 +05:00
Andrej730
30cbfad871
Fix code typo in 40f92d1
2025-07-15 17:47:37 +05:00
Andrej730
262739f37a
owner.remove_role - fix error handling resource level rel ( fe1e307)
...
It's probably was just an overlook in the original commit - it was referring to `settings["organisation"]`, though `"organization"` was never passed, leading to an error. And probably by accident remove_role tests were using the same tests as remove_organization, so the issue went under the radar for a while.
2025-07-15 17:47:37 +05:00
Andrej730
03fa850ce2
Fix old bug in FixArchiCADToRevitDoorSwings ( 1d74306)
...
It was using variable `f` that was never defined
2025-07-15 17:47:36 +05:00
Andrej730
8d2c0d0785
Fix old error setting up bcf camera in some cases ( 0d6cacd)
...
`cam_height` and `cam_width` were used in `setup_camera()` but never defined.
2025-07-15 17:47:36 +05:00
Andrej730
742a9df311
Fix error starting import_ifc profiling (in 515bfd1)
2025-07-15 17:47:36 +05:00
Andrej730
c95a0e8ed5
Fix error in generating error message in 8e9d4be
...
`profile` variable was never defined in this context
2025-07-15 17:47:36 +05:00
Andrej730
a28478c193
Fix bim.align_product operator (after 2db6b86)
...
It was using `core` in it's code though it was never defined.
2025-07-15 17:47:36 +05:00
Andrej730
b521901c90
Fix error message when filtering more than 50 selected objects (after c4ffc06)
...
name variable was undefined leading to an error
2025-07-15 17:47:35 +05:00
Andrej730
20f8737fb3
generate_furniture_library - remove unused methods
...
We have them in demo library either way
2025-07-15 17:47:35 +05:00
Andrej730
f18c93c9ee
typing
2025-07-15 17:47:35 +05:00
Richard Brice
a461281b1e
Fixes problem moving alignment representation from parent to child alignment. Forgot to assign the ObjectPlacement
2025-07-14 11:09:02 -07:00
Andrej730
2d3d747d49
Move props from 'Other' preferences tab to preferences #6733
...
To prevent users confusion since it's a general Blender UX to expect here general preferences, not per-blend file settings.
2025-07-14 18:53:11 +05:00
Andrej730
d165cd2692
Update material classification UI on changing selected materials #6902
2025-07-14 18:53:11 +05:00
Andrej730
3f0e30245b
Fix TestSelectSimilarContainer after 553003e
2025-07-14 18:53:11 +05:00
Andrej730
c111aafd3a
Fix TestAddContext after 2698ba6
2025-07-14 18:53:11 +05:00
Andrej730
465bd23d6f
import_attributes2 -> import_attributes
...
import_attributes were removed in 76f0b57ff
2025-07-14 18:53:10 +05:00
Andrej730
c7d3e00dca
typing
2025-07-14 18:53:10 +05:00
Andrej730
72af88a4b3
black .
2025-07-14 18:53:10 +05:00
Richard Brice
73b76ba666
Adds IfcPolyline representation for alignment. Also some general cleanup
2025-07-13 16:34:52 -07:00
Dion Moult
e93a66be49
Update VERSION
2025-07-13 20:25:14 +10:00
Dion Moult
a4dd1c3463
Bump IOS
2025-07-13 19:55:21 +10:00
Andrej730
6d8e513f97
Temporary hack for path tags without 'd' attr #6871 #6876
2025-07-11 18:24:00 +05:00
Andrej730
baeaa073df
dimensionality - add description
2025-07-11 18:24:00 +05:00
Andrej730
f07391181d
context-ids, context-types, context-identifiers - add descriptions
...
Hope I don't miss anything, but couldn't find any references to ContextTypes, ContextIdentifiers and they seem to have no effect.
2025-07-11 18:23:59 +05:00
Andrej730
722f71b3b3
ifcgeom/ConversionSettings.h - fix duplicated ContextIds derived type
...
I guess it only affected how `defineOption` worked. Noticed the issue when was looking through `ifcconvert --help` and `context-ids` were duplicated 3 times.
2025-07-11 18:23:59 +05:00
Andrej730
76e4ec0069
bim.select_uri_attribute - simplify data_path eval
2025-07-11 18:23:59 +05:00
Andrej730
df18124bec
vs-cfg.cmd - update error message
...
To make it a bit more easier to understand what to do in cases like below (the solution is to provide generator explicitly: `run-cmake.bat vs2022-x64 -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON`).
```
run-cmake.bat -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON
vs-cfg.cmd: The used CMake version does not support generator `-DADD_COMMIT_SHA` - cannot proceed.
```
2025-07-11 18:23:59 +05:00
Andrej730
370488cd27
docs conf.py - update year
2025-07-11 18:23:59 +05:00
Andrej730
4bbc463c8f
ifcopenshell-python\docs\requirements.txt
2025-07-11 18:23:59 +05:00
Andrej730
4a11a117ad
Fix bim.activate_model hiding all elements #6893
...
It was an overlook with using by accident bim.disable_status_filters instead of bim.enable_status_filters in bim.activate_status_filters, but it was also kind of unexpectedly introduced in 7858cb1 .
But thinking about it, bim.activate_model shouldn't activate Statuses UI either way, since it might bring their filters they had before but explicitly disabled.
2025-07-11 18:23:58 +05:00
Andrej730
19be8107b3
Fix Ruff UP037 (quoted-annotation)
2025-07-11 18:23:58 +05:00
Andrej730
e1976d5bfd
Fix Ruff UP013 (convert-typed-dict-functional-to-class)
...
Apparently `type` is okay and doesn't break things in even in Python 3.12
2025-07-11 18:23:58 +05:00
Andrej730
0fcc47508a
Structural UI - refactor common code to tool, fix bugs
...
Also revert previous change in UI - `draw_attributes` doesn't cover it and there indeed should be special handling.
2025-07-10 19:42:31 +05:00
Andrej730
76f0b57ff1
Migrate to import_attributes2
2025-07-10 19:42:30 +05:00
Andrej730
1d8ee406af
Fix alignment.__all__ missing create_segment_representations
2025-07-10 19:42:30 +05:00
Andrej730
05cb06a28e
typing
2025-07-10 19:42:30 +05:00
Andrej730
8a6eb1b60f
Update IfcApplication attributes export after 5866994
2025-07-10 19:42:30 +05:00
Andrej730
37d4ee97e7
alignment - fix missing imports
2025-07-10 19:42:29 +05:00
Andrej730
ef5d1448da
Fix is_null not updating when adding new attribute subitems #6869
2025-07-10 19:42:29 +05:00
Massimo Fabbro
eed42b8fac
Fix #6711 . Forgot to change the space elevation
2025-07-09 22:27:31 +02:00
Thomas Krijnen
1f0ac8fdb9
submodule
2025-07-09 20:45:39 +02:00
Andrej730
1b1a1f143a
bim.attribute_search_values - enable it in more places
...
Since this feature can be generally useful, let's try it out to see the cases when it should be disabled.
Additionally to Materials UI, it's now enabled in object attributes, materials, profiles, styles and explorer ui.
2025-07-09 19:02:27 +05:00
Andrej730
9649c23a3b
bim.attribute_search_values - more clear description
2025-07-09 19:02:27 +05:00
Andrej730
0ad5ace35f
bim.attribute_search_values - support not just scene props
2025-07-09 19:02:27 +05:00
Andrej730
f7fdb8cc81
bim.attribute_search_values - rearrange props for readability
2025-07-09 19:02:27 +05:00
Andrej730
41e64781d8
Skip pyradiance import if it fails #6633
2025-07-09 19:02:27 +05:00
Andrej730
6ea7ee84a6
Remove prop.GlobalId
...
It seems it was unused since 6f55cd5
2025-07-09 19:02:27 +05:00
Andrej730
e7b86ae5b0
bim.add_group - use dynamic description to clarify when it's adding subgroups
...
It was kind of confusing since the icon and everything else was the same.
2025-07-09 19:02:27 +05:00
Andrej730
f6035609c9
Groups UI - use natsort
2025-07-09 19:02:27 +05:00
Andrej730
76feeaccc9
typing
2025-07-09 19:02:26 +05:00
Andrej730
af02a6b3a6
Fix UP037 (quoted-annotation)
2025-07-09 19:02:26 +05:00
Andrej730
832e68cb6f
Fix Ruff UP034 (extraneous-parentheses)
2025-07-09 19:02:26 +05:00
Andrej730
a8268e8323
Replace deprecated typing.Sequence ( 40f92d15c)
2025-07-09 19:02:26 +05:00
Andrej730
5a4ad69bf7
black .
2025-07-09 19:02:26 +05:00
Richard Brice
40f92d15c3
Alignment api update ( #6817 )
...
* Some basic COGO survey points functions
* Update alignment api
Includes defining alignment segment by segment, automatic geometry definitions, and automatric stationing and referents
* Fixes bonsai import alignment from csv
* Adds DMS angle conversion functions to COGO api
* Updated per @civilx64 review comments
* Fixes problem with segment representations
* Fixes problem with segment transition codes
* Allows for compound vertical and horizontal curves
* Implements callbacks for referent naming
* Renames angle_from_bearing to bearing2dd for consistency with ifcopenshell.util.geolocation.dms2dd. Removes angle_from_dms because it duplicates dms2dd
* Documents register_referent_name_callback
* Fixes all sorts of problems with Cant/SegRefCurve implementation
* refactor referent unit tests to use a fixture for test setup
* lint with black
---------
Co-authored-by: Scott Lecher <civilx64@gmail.com >
2025-07-08 10:09:14 -07:00
Andrej730
ad8d02bfed
Groups UI - support renaming groups directly from UI
...
Example - https://files.catbox.moe/u4b918.mp4
2025-07-08 21:20:59 +05:00
Andrej730
5866994b84
Intergrate explorer UI to support editing some props like #6869
...
Example - https://files.catbox.moe/ujhlwv.mp4
2025-07-08 21:20:59 +05:00
Andrej730
2ec2ac0e5c
Attributes UI to support attributes with string subitems
...
Example - https://files.catbox.moe/oew1ue.mp4
2025-07-08 21:20:58 +05:00
Andrej730
c7555652d7
Bulk Rename Pset Props - show how many props were affected
2025-07-08 21:20:58 +05:00
Andrej730
5a7ce6d68b
bim.bulk_remove_psets - show how many psets were removed
...
Also removed exception handling to catch that bug sneaking in, if it ever returns.
2025-07-08 21:20:58 +05:00
Andrej730
ad8913a979
Move bulk properties to GlobalPsetProperties
2025-07-08 21:20:58 +05:00
Andrej730
188b6a03a8
Attribute.is_uri - move to Attribute.special_type
2025-07-08 21:20:57 +05:00
Andrej730
7f3860b025
util.attribute - add tests
2025-07-08 21:20:57 +05:00
Andrej730
d08756d1b4
typing
2025-07-08 21:20:57 +05:00
Andrej730
525ef2b77b
Explorer UI - add is_loaded toggle
2025-07-07 19:11:39 +05:00
Andrej730
fca2bf7aa8
Search filters - add example to criteria descriptions
...
To give users some default value to get familiar with the tool.
Example - https://files.catbox.moe/d1zh5n.png
2025-07-07 19:11:39 +05:00
Andrej730
ff82262490
Reuse get_active_sheet_item
2025-07-07 19:11:38 +05:00
Andrej730
c82351476a
SheetBuilder - move references to local scope
...
Previously it was set as sheet builder attribute, but was never used as such.
2025-07-07 19:11:38 +05:00
Andrej730
d4f32802aa
Show warnings if some sheets related files are missing
...
Previously when you would load/open/create sheets and some files were missing you would get traceback errors.
Also removed warnings for missing sheets svgs since they can go missing if someone is opening ifc project and want to regenerate sheets. We'll be able to return them in the future, if needed, but they will need some refinement.
2025-07-07 19:11:38 +05:00
Andrej730
d7668c3e3f
drawing.get_sheet_identification
2025-07-07 19:11:38 +05:00
Andrej730
1445f91289
Fix very old bug with IfcPersonAndOrganization enum not loading ( 6ce8a36)
2025-07-07 19:11:37 +05:00
Andrej730
44e27f706a
Owner UI - further decouple data.py from Blender entities
2025-07-07 19:11:37 +05:00
Andrej730
416ebde333
Fix names lists are not updated immediately
...
Similar to addresses problem in #6869
2025-07-07 19:11:37 +05:00
Andrej730
40dcd393c6
Fix addresses not updating immediately in IfcPerson UI
...
Found by @sboddy in #6869
Caused by trying to remove Blender entities from owner/data.py
2025-07-07 19:11:37 +05:00
Andrej730
4fda916c2f
Fix duplicated assignments
2025-07-07 19:11:37 +05:00
Andrej730
acb9953ce3
dev_environment.py - add comments and small changes
2025-07-07 19:11:36 +05:00
Andrej730
4154356288
bim.operator - document resetting screen behaviour
2025-07-07 19:11:36 +05:00
Andrej730
54488bddbb
bim.attribute_search_values - use enumproperty for data_type
2025-07-07 19:11:36 +05:00
Andrej730
8f21866248
typing
2025-07-07 19:11:36 +05:00
Thomas Krijnen
f3b63aae76
Use should_use_presentation_style_assignment
2025-07-06 18:39:21 +02:00
Thomas Krijnen
3f05bab4e5
Shape builder: allow translate() on tesselated face sets
2025-07-06 18:35:19 +02:00
Thomas Krijnen
8534333092
Update doc comment
2025-07-06 18:34:50 +02:00
Ryan Schultz
5f2b4c96a6
fixes #6874
2025-07-06 10:26:12 -05:00
Massimo Fabbro
00836ec983
Fix #6736 . Better use of non-SI units in creating spaces and coverings
2025-07-05 13:59:04 +02:00
Andrej730
fb78f75541
Basic IFC Entities explorer UI
...
A generic UI to allow editing simple entities like #6869 without creating an entire edit attributes UI inside edit attributes UI.
Still work in progress and should be connected to attributes UI.
Example - https://www.imgchest.com/p/agyv9lpq978
2025-07-04 19:48:12 +05:00
Andrej730
5948282ed0
bim.add_address - display it in more readable way
...
Before - https://cdn.imgchest.com/files/4gdcxp5j9l4.png
After - https://cdn.imgchest.com/files/yrgcnzgj5n4.png
2025-07-04 19:34:12 +05:00
Andrej730
47b81a6f89
bim.save_search - prefer only SEARCH IfcGroups by default #6857
...
Previously it was asking for a name to use to save search and users might type anything they find convenient at the moment, but it was possible that this name was used already by something important (for example drawing's IfcGroup) and would change it's description and assign objects there unexpectedly.
Now it will target IfcGroups with SEARCH ObjectType by default and only if user confirms, it will target all IfcGroups available (to keep the search a powerful tool for advanced users that allows them to populate any IfcGroup they want with items).
There's also a temporary patch in place - when you load/save search Bonsai will try to find old search IfcGroups with ObjectType = None and update their ObjectType, this needed to make sure transition works seamlessly for the simple cases.
2025-07-04 19:34:12 +05:00
Andrej730
8ae08cb90e
bim.save_search - not to fail silently
2025-07-04 19:34:11 +05:00
Andrej730
7796856119
typing
2025-07-04 19:34:11 +05:00
falken10vdl
f75045f0c5
See #6570 . Now it is possible to remove the csv cost file link.
...
This is a followup to that issue. In this particular case, a remove csv link button is added next to the refresh csv link button.
2025-07-04 12:35:17 +02:00
Andrej730
e52af2baad
Iterator.validate_iterator_state to avoid crashes using next() and get()
...
Just to avoid accidental crashes using .get() / .next() when using them from Python - in cases when iterator was initialized but there were no elements or if iterator got exhausted.
2025-07-03 18:49:41 +05:00
Andrej730
da4ae4c2f2
Fix typo in 2a199cf
2025-07-03 18:48:30 +05:00
Andrej730
28043a8e5d
ifc2sql - skip creating geometry if iterator failed to initialize
2025-07-03 18:48:30 +05:00
Andrej730
0e8fb44301
Remove unused Iterator.task_result_index_ ( c78b289)
2025-07-03 18:48:08 +05:00
Andrej730
b97dca5d47
typing
2025-07-03 18:48:08 +05:00
Andrej730
207db459a7
Iterator.h - remove redundant typename ( eeaf04c)
2025-07-03 18:48:07 +05:00
Andrej730
026eebf39b
pyproject.toml - remove enableTypeIgnoreComments
...
As Pylance now allows inserting pyright ignore comments without it 🎉
https://github.com/microsoft/pylance-release/issues/7220
2025-07-03 18:48:07 +05:00
carlopav
5f5c0b41d5
Basic infrastructure for IfcCostSchedule PDF export with typst ( #6860 )
2025-07-03 13:18:03 +00:00
falken10
3055dfa1a6
clean up from developer's feedback + black formatting
2025-07-03 05:51:59 +02:00
falken10
b59bdb585b
Refactor cost documents following developrs advice
2025-07-03 05:51:59 +02:00
falken10
ccd97c66ae
refactor and black formatting
2025-07-03 05:51:59 +02:00
falken10
e6747b258c
Remove CostSchedulesMapping and added csv_filepaths to data.py
2025-07-03 05:51:59 +02:00
falken10
6aa6803490
Added relative CSV file paths
2025-07-03 05:51:59 +02:00
falken10
72fbe3a6d9
Refactor cost schedule CSV filepath to use document references
2025-07-03 05:51:59 +02:00
Andrej730
68a602573b
ifcopenshell.geom.iterator - more descriptive error in __init__ #6865
2025-07-02 18:14:34 +05:00
Andrej730
1e06dfcb76
Fix console errors when project is not loaded
2025-07-02 18:14:34 +05:00
Andrej730
3a0a912022
Use property_unset instead of in and del
2025-07-02 18:14:34 +05:00
Andrej730
b16fb7d917
bim.pip_install - add dynamic description
2025-07-02 18:14:34 +05:00
Andrej730
94d2d32d18
typing
2025-07-02 18:14:34 +05:00
falken10vdl
e743db27f4
Draw attributes with search ( #6849 )
...
See example in #4325
2025-07-02 11:11:29 +05:00
Thomas Krijnen
bb329affb8
settings: DeferProcessingFirstElement, MaxOffset, MaxOffsetDeviation, ApplyOffset; taxonomy: centroid funcs; iterator get_tasks + items() funcs; geom.map_shape()
2025-07-01 21:10:24 +02:00
Bruno Perdigão
6c4e4e5f91
Partial solution for #6775 .
...
The issue happens when a wall has a "ATPATH" connection and has a
negative direction sense. It mixes the profile points in an incorrect
order. This commit seems to fix it, but maybe there is a better solution.
2025-06-30 19:50:41 -03:00
falken10
a31aa6053e
black formatting
2025-06-30 18:25:41 -03:00
falken10
b90f146a68
update gizmo based on selected items
2025-06-30 18:25:41 -03:00
falken10
f67dca8de0
Enhance label rendering in BoundingBoxDecorator to prevent text overlaps
2025-06-30 18:25:41 -03:00
falken10
a686d70908
Updated based on feedback from @brunoperdigao
2025-06-30 18:25:41 -03:00
falken10vdl
38fe7fea65
Update workspace.py cosmetic remove nl from previous edits
2025-06-30 18:25:41 -03:00
falken10
b26890f74b
black formating
2025-06-30 18:25:41 -03:00
falken10
2c16247943
moved to viewport overlays
2025-06-30 18:25:41 -03:00
falken10
53fc7bce0c
clenaup
2025-06-30 18:25:41 -03:00
falken10
f5db905223
Separate decorator from operator to follow other modules in model / project
2025-06-30 18:25:41 -03:00
falken10
3557b11e64
same style as polyline texts
2025-06-30 18:25:41 -03:00
falken10
c420402334
black . formating
2025-06-30 18:25:41 -03:00
falken10
589c562cba
refactor everyting within the class MeasureXYZDimensionsTool
2025-06-30 18:25:41 -03:00
falken10
d3f2711fe4
Moved everything to explore tool
2025-06-30 18:25:41 -03:00
falken10
8b4305360e
updated to cope for multiple selection and better looking using trihedrons
2025-06-30 18:25:41 -03:00
falken10
1213bbdd73
set exact same color for bounding box edges as gizom axis
2025-06-30 18:25:41 -03:00
falken10
c3380daa19
better layout with colored bounding box
2025-06-30 18:25:41 -03:00
falken10
7aa87907d7
Add local orientation operator and UI toggle for colored dimensions
2025-06-30 18:25:41 -03:00
Andrej730
8cfd6b1754
Unify doc-strings (remove type/rtype)
...
As this information is already provided in type hints and we don't need to maintain it in two places.
2025-06-30 18:55:14 +05:00
Andrej730
fc10915d2b
ifcopenshell.validate - remove simple_spf dependency ( 689289b)
...
Moved it to `TYPE_CHECKING` since it's currently used just for typing.
Was breaking validation in Bonsai since it doesn't provide all submodules with IfcOpenShell https://github.com/IfcOpenShell/IfcOpenShell/issues/6723#issuecomment-3016223786
Also added a simple test so github workflow would catch a simple error like this.
2025-06-30 18:08:34 +05:00
Andrej730
c23c21cb88
black .
2025-06-30 18:08:29 +05:00
Geert Hesselink
260bc80a4b
update simple_spf submodule
2025-06-30 10:11:40 +02:00
Thomas Krijnen
d7cf803fdf
Don't use anonymous namespace for geometry_conversion_result
2025-06-29 20:04:44 +02:00
Thomas Krijnen
4488044a68
yum install xz
2025-06-29 19:58:37 +02:00
skemaikin
21a4db7823
serialize roughnessFactor
...
add roughnessFactor for gltf serialization
2025-06-29 14:24:52 +02:00
Ryan Schultz
d300454118
Option to select only immediate children in Spatial Decomposition panel
2025-06-28 15:00:23 -05:00
Ryan Schultz
553003e664
Closes #6748 : An option, when running bim.select_similar_container() to only select those objects in the immediate container
2025-06-28 13:16:51 -05:00
Ryan Schultz
524561a398
similar to #6748 : option to select only immediate children, not recursively
2025-06-28 12:07:22 -05:00
Ryan Schultz
16f82683c8
closes #6843 - made merge by distance a little more tolerable
2025-06-28 10:07:54 -05:00
Ryan Schultz
4dbec59b9c
Fix #6840 : Add search to profile selection, when creating a new extrusion type
2025-06-28 09:17:40 -05:00
falken10vdl
dcf69c46e5
Update PLAN_LEVEL annotation ( #6844 )
...
* Update PLAN_LEVEL annotation
* Length of line segment based on scale
---------
Co-authored-by: Ryan Schultz <ryan@openingdesign.com >
2025-06-27 09:48:12 -05:00
Andrej730
611e83ff1e
Remove unused code for additional ifc files in the drawings
...
Code isn't used for over 3 years now and it's quite simple, so it's easy to restore if we'll need it again.
Noticed when started to investigate what was the use for `include_query` and `exclude_query` and turned out they basically had no effect for all this time.
2025-06-27 18:51:15 +05:00
Andrej730
bdcebd0f98
document.add_information - error handling in case project is not found
2025-06-27 18:51:15 +05:00
Andrej730
9278974d98
Reuse get_linked_models_document
2025-06-27 18:51:15 +05:00
Andrej730
b3a708c06c
typing
2025-06-27 18:51:15 +05:00
falken10vdl
0b05c3bcfc
Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise ( #6845 )
...
* Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise
2025-06-27 08:20:50 -05:00
Piotr Smolira
fef6ef76ed
Update code_examples.rst
...
Added example to iterate through entire project.
2025-06-27 11:37:47 +02:00
Piotr Smolira
e39d62b35a
Update code_examples.rst
...
Added example about iterating entire model.
2025-06-27 11:37:47 +02:00
Thomas Krijnen
f1827d02ca
Retain non-uniform scaling by assigning to gtrsf mat directly #6841
2025-06-27 09:54:13 +02:00
Andrej730
65ccc635d4
Fix sheeter issue after 7440c321b
2025-06-27 10:58:28 +05:00
falken10vdl
2698ba69d5
Display TargetScale in Contexts UI / edit target scale denominator ( #6816 )
2025-06-27 05:48:14 +00:00
Andrej730
efb3b9d255
Add eevee shadows props to shading_styles.json #6847
2025-06-26 20:19:41 +05:00
Andrej730
b0ec185c34
Fix removing occurrences when removing type object #3931
2025-06-26 19:57:10 +05:00
Andrej730
0ca92f6a1d
Bonsai preferences - add 'bsdd' label to make bsdd props more recognizable
2025-06-26 19:57:09 +05:00
Andrej730
6e4b784652
bsdd props ui - small tweaks
2025-06-26 19:57:09 +05:00
Andrej730
c764da3511
Status Filter - add missing row alignment in UI
2025-06-26 19:57:09 +05:00
Andrej730
c0d97051fd
Status Filters operators - add undo step to prevent Blender crashes
...
In Blender if operator is editing any Blender data it must have `UNDO` option, otherwise undo might lead to a crash.
2025-06-26 19:57:09 +05:00
Andrej730
2a199cf8a7
Status Filters - add explicit button to refresh status filter
...
Button location - https://files.catbox.moe/yuk2e6.png
See the reasoning in https://github.com/IfcOpenShell/IfcOpenShell/pull/6826#issuecomment-3004090797
2025-06-26 19:57:08 +05:00
Andrej730
b5dacfd621
Fix console errors toggling ifc status (same as e92520b77)
2025-06-26 19:57:08 +05:00
Andrej730
1a67ce87a1
light.feature - more test fixes
2025-06-26 19:57:08 +05:00
Andrej730
b7db741474
typing
2025-06-26 19:57:08 +05:00
Andrej730
7b1aa207d8
Add a warning in case user set a large drawing resolution #6686
...
Example - https://files.catbox.moe/0ygukk.png
2025-06-26 16:28:52 +05:00
Stephen Boddy
9b58d4aa47
Minor refinements for 931d8e6
2025-06-26 10:12:55 +05:00
Stephen Boddy
bc2d67220e
Improve fix for #5563 based on feedback:
...
- Remove INFO - No statuses selected,
- Remember and set last status on disable-reenable
- Moved duplicated code into shared tool.Sequence class method
2025-06-26 10:12:55 +05:00
Stephen Boddy
7858cb128e
Fix #5563 inconsistent behaviour of Status filter
2025-06-26 10:12:55 +05:00
Bruno Perdigão
0d859bd4ee
See #6837 . Fix handling of connections when splitting walls.
2025-06-25 19:00:25 -03:00
Andrej730
360afe68aa
sheeter - replace by_id with by_guid
...
No functional changes, just to make it more idiomatic (both `by_id` and `by_guid` end up doing `ifc_file[xxx]` under the hood).
2025-06-25 19:01:41 +05:00
Andrej730
b6af68bfe6
data/templates/titleblocks/README.md
...
Basic readme about folder contents. Will need to move it more general documentation later.
2025-06-25 19:01:41 +05:00
Andrej730
7440c321b6
sheeter - use more strict data access where it's implied
2025-06-25 19:01:41 +05:00
Andrej730
73b5c2f1ae
sheeter - simplify namespace access using constants
2025-06-25 19:01:41 +05:00
Andrej730
485ce22ca7
bim.select_all_sheets - fix a typo
2025-06-25 19:01:41 +05:00
Andrej730
e92520b777
Fix value errors in update callback
...
Blender is requiring update callback to return `None`, otherwise it prints `ValueError: the return value must be None`.
2025-06-25 19:01:40 +05:00
Andrej730
00414a1590
bim.assign_scene_units - expose operator to ui
2025-06-25 19:01:40 +05:00
Andrej730
6b6bf248ff
typing
2025-06-25 19:01:40 +05:00
Andrej730
03fcd59c5a
black .
2025-06-25 19:01:40 +05:00
Andrej730
5e89748ba6
unit - remove unnecessary ifc operators
2025-06-25 19:01:39 +05:00
Stephen Boddy
c5987bca3d
Fix #4588 fix broken rev cloud styles in sheets.
2025-06-25 18:59:42 +05:00
Bruno Perdigão
94f98b1e0e
Fix issue where edge intersection snap were not being calculated.
2025-06-24 18:17:24 -03:00
Thomas Krijnen
38dcdde7ae
submodule
2025-06-24 22:12:38 +02:00
Thomas Krijnen
95f8af01f0
submodule
2025-06-24 22:03:13 +02:00
Thomas Krijnen
8f0d053049
Factor out code into Iterator.cpp
2025-06-24 22:03:13 +02:00
Andrej730
caccfd2516
unit operators - add some descriptions
2025-06-24 19:08:43 +05:00
Andrej730
b4c4efcf5b
unit.unassign_unit - smal doc-string fix
2025-06-24 19:08:43 +05:00
Andrej730
fe81dc7f21
Units UI - match icons in enum with icons in ui list
...
To build a visual association
Example (previously enum had no icons)
https://files.catbox.moe/0ks3jj.png
https://files.catbox.moe/y1yrv5.png
2025-06-24 19:08:42 +05:00
Andrej730
4f77c41bd5
calculate_unit_scale - small optimization
2025-06-24 19:08:42 +05:00
Andrej730
47b077b555
Fix sheets related tests
2025-06-24 19:08:42 +05:00
Andrej730
845e034614
test_feature - fix non-unique function name
2025-06-24 19:08:42 +05:00
Andrej730
82d020b20d
bim light tests - fix after f684a6058
...
Since defaults were updated
2025-06-24 19:08:42 +05:00
Andrej730
cd73f80894
Fix tool test_drawing after 992ad8e
2025-06-24 19:08:41 +05:00
Andrej730
705a924f41
Fix context's TestImportAttributes after e4a50b3
2025-06-24 19:08:41 +05:00
Andrej730
097e03d6f5
Fix TestGenerateSheetIdentification ( b20997d)
2025-06-24 19:08:41 +05:00
Andrej730
4a69df1f6b
Classification source - automatically update on changes in bsdd ui
2025-06-24 19:08:41 +05:00
Andrej730
df69ca27da
Remove duplicated active_dictionary prop ( 22f10e5)
2025-06-24 19:08:41 +05:00
Andrej730
b3778facda
Fix core drawing tests after be65774
2025-06-24 19:08:41 +05:00
Andrej730
c333535ae5
Blender 4.5 - prevent infinite loading of previews
...
Related - https://projects.blender.org/blender/blender/issues/140903
2025-06-24 19:08:40 +05:00
Andrej730
fcaeb920ec
typing
2025-06-24 19:08:40 +05:00
Andrej730
50d3cab1ec
Fix regression with thumbnails update #6839 ( be1836f)
2025-06-24 19:08:40 +05:00
Andrej730
4574351817
Light UI - detect Sun Position addon activation/deactivation more reliably
2025-06-23 19:06:16 +05:00
Andrej730
623997b40d
Revert unintended prop_with_search change ( 98c479f1b)
2025-06-23 19:06:16 +05:00
Andrej730
8f7b965a58
Light UI - add our own 'coordinates' property
...
To ensure when it's changed - latitude and longitude update will follow. Previously we were just displaying sun position addon's `coordinates' prop.
2025-06-23 19:06:16 +05:00
Andrej730
c1e6e7d736
light module true_north prop - use Blender angle subtype
2025-06-23 19:06:16 +05:00
Andrej730
f684a6058c
Light UI - quickly select current time/pick location from Google Maps
...
Location - https://files.catbox.moe/ew9tgd.png ("Now" and "Pick" buttons)
2025-06-23 19:06:15 +05:00
Andrej730
1a80e3f1a1
bim.enum_property_search - note on activate_init
2025-06-23 19:06:15 +05:00
Andrej730
a76af3c2ba
validate IfcApplication.UR2 - check that both version and app name are not None ( 263d238f9)
...
Otherwise it will be caught by regular validation checks
2025-06-23 19:06:15 +05:00
Andrej730
28bee52dff
Blender 4.5 - deprecate GPUShader constructor
...
Now it should be replaced with `gpu.shader.create_from_info`
2025-06-23 19:06:15 +05:00
Andrej730
58449368fb
radiance_exporter_properties -> BIMRadianceExporeterProperies
...
For consistency with other props
2025-06-23 19:06:15 +05:00
Andrej730
30c33518f0
typing
2025-06-23 19:06:14 +05:00
Andrej730
3a06afae25
black .
2025-06-23 19:06:14 +05:00
falken10vdl
98c479f1bd
Create instance context menu ( #6830 )
2025-06-22 07:09:57 -05:00
Ryan Schultz
d875baefde
#5709 - Partly addresses RCP camera flipping around. (still hacky though)
2025-06-21 10:14:09 -05:00
Ryan Schultz
9149bb0fdc
whoops, accidently pushed.
2025-06-21 08:11:01 -05:00
Ryan Schultz
f3c86d7fcc
added a few to ifc_classes_suggestions.json
2025-06-21 08:08:50 -05:00
Ryan Schultz
64aeef7103
Automatically detect bonsai_path
2025-06-21 07:59:51 -05:00
Andrej730
cd1bda5311
regenerate_wall_representation - remove debug prints
2025-06-20 18:48:38 +05:00
Andrej730
67ae9fced0
bim.extend_walls_to_polyline_point - fix poll errors selecting non-ifc objects
...
E.g.
```
File "\bonsai\bim\module\model\wall.py", line 142, in poll
if not tool.Ifc.get_entity(obj).is_a("IfcWall"):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'is_a'
```
2025-06-20 18:48:37 +05:00
Andrej730
22fdb324ac
Restore daily builds
2025-06-20 18:48:37 +05:00
Andrej730
263d238f9c
ifcopenshell.validate - fix IfcApplication.UR2 validation
...
Previously we were checking for just ApplicationFullName, without considering Version.
https://github.com/buildingSMART/IFC4.3.x-development/issues/966
2025-06-20 18:48:37 +05:00
Andrej730
c6fd02869b
ifcopenshell.validate - check json_logger more explicitly
2025-06-20 18:48:37 +05:00
Andrej730
b4d41790a5
ifcopenshell.validate - fix mixed up rule names (IfcApplication.UR)
2025-06-20 18:48:37 +05:00
Andrej730
e18346d4ea
bim.remove_application - remove unneccessery info from the tooltip
...
Since now user can edit applications and see that info there.
2025-06-20 18:48:36 +05:00
Andrej730
c724b2a888
Applications UI - also show app versions
...
So apps with different version would be identifiable by a glance.
2025-06-20 18:48:36 +05:00
Andrej730
d05f320665
Bonsai - prevent duplicating IfcOpenShell organization for new IfcApplications
2025-06-20 18:48:36 +05:00
Andrej730
6599f74d11
Make Bonsai IfcApplication identifier unique
...
To avoid validation errors.
2025-06-20 18:48:36 +05:00
Andrej730
4f03c7e03e
OwnerData.can_add_user - remove as unnecessary
2025-06-20 18:48:36 +05:00
Andrej730
946cae4065
ifcgit.git_diff - save diff to temp file on alt-click
2025-06-20 18:48:35 +05:00
Andrej730
98145fbbd9
Purge/merge IfcPersonAndOrganizations
2025-06-20 18:48:35 +05:00
Andrej730
74598b805b
Purge/merge IfcPerson entities
2025-06-20 18:48:35 +05:00
Andrej730
90ab846a18
typing
2025-06-20 18:48:34 +05:00
Andrej730
5ec77b1b1c
black .
2025-06-20 18:48:34 +05:00
Bruno Perdigão
8d079ce0cb
Remove unused code.
2025-06-19 16:38:22 -03:00
Bruno Perdigão
fb9edb733b
Refactor MeasureDecorator to use model PolylineDecorator code.
2025-06-19 16:33:51 -03:00
Andrej730
42b777b1f0
application ui - support changing organization
2025-06-19 19:28:34 +05:00
Andrej730
a968cad4cc
core/tool tests for application methods
2025-06-19 19:28:34 +05:00
Andrej730
7ab03109b9
typing
2025-06-19 19:28:33 +05:00
Andrej730
6782729ed8
black .
2025-06-19 19:28:33 +05:00
Ryan Schultz
9dc75ece44
Fix #6593 - preference to turn on/off cut decorator
2025-06-18 21:36:04 -05:00
Andrej730
cbd78506ce
Fix mistake in 96bdda305 - expose IfcApplication purge to UI
...
Noticed a mistake when merge was included twice for applications, instead of including purge+merge.
2025-06-18 19:13:59 +05:00
Andrej730
9af15aeb0b
Simple application UI for editing attributes
...
Example - https://files.catbox.moe/i0wgid.png
Previously before 71d469a27 we produced a lot of IfcApplications on live-builds because of the version differences, now it's possible to edit them from UI - fix the differences and merge them using 106323847
2025-06-18 19:12:12 +05:00
Andrej730
934c9e1485
test_edit_organisation - add ifc4x3 tests
2025-06-18 19:12:12 +05:00
Andrej730
bbebdd56ca
owner.edit_application
2025-06-18 19:12:12 +05:00
Andrej730
b1bfe5c3b3
tool.ifc.run - replace with direct api calls
2025-06-18 19:12:11 +05:00
Andrej730
a72e1231f2
test_ids - use more generic exception to fix tests on xmlschema>=4.0
...
In xmlschema 4.0 it started to throw a more generic XMLSchemaValidationError - I guess there are many things that can trigger validation check and in the new version some other issue gets there first.
2025-06-18 19:12:11 +05:00
Andrej730
47da4ef3ae
Fix overlook in 67b539aba
2025-06-18 19:12:11 +05:00
Andrej730
08a8afba5b
ifcopenshell-python - fix 3.9 support (replace match statements)
2025-06-18 19:12:10 +05:00
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
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
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
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
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
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
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
Andrej
5d632eae3d
opencdeserver - fix bug with DocumentVersions initialization
2025-06-10 18:54:36 +05:00
Andrej
1608677d40
ifcopenshell.api.run to use explicit kwargs instead of unpacking
2025-06-10 18:54:35 +05:00
Andrej
a37d46ca3d
typing
2025-06-10 18:54:33 +05:00
Thomas Krijnen
862119834f
Submodule
2025-06-09 21:37:13 +02:00
Thomas Krijnen
4d7453f9a4
Increase SVG precision to prevent self-intersections on detailed polygons
2025-06-09 21:31:55 +02:00
Thomas Krijnen
a4f06f69cc
Update pyodide to 0.27.7 #6794
2025-06-09 20:36:37 +02:00
Andrej
24f693e0bb
ExpandedGroups - encapsulate in BIMGroupProperties
2025-06-09 18:03:25 +05:00
Andrej
32088fb95a
Bonsai - fix cjio dependency ( 3d77fc7)
2025-06-09 18:03:22 +05:00
Andrej
812baa1c04
ifctester pyproject.toml - document flask dependency
2025-06-09 18:03:22 +05:00
Andrej
6862523c75
pyproject black - select all src folders by default, exclude explicitly
2025-06-09 18:03:22 +05:00
Andrej
8b4683aef1
replace api.run with static methods
2025-06-09 18:03:19 +05:00
Andrej
02d359d0e6
Fix Ruff UP035 (also deprecated annotation symbols)
2025-06-09 18:03:19 +05:00
Andrej
7d4176d105
Fix Ruff UP006 (deprecated annotation symbols)
2025-06-09 18:03:18 +05:00
Andrej
6eb45917fe
fix typo
2025-06-09 18:03:15 +05:00
Andrej
3f4656600e
typing
2025-06-09 18:03:15 +05:00
Andrej
7034c0b18a
Fix typo ( 5ba82d7)
2025-06-09 18:03:14 +05:00
Andrej
97ece7c20b
black .
2025-06-09 18:03:14 +05:00
Massimo Fabbro
5ba82d7764
See #5155 . Update doc accordingly
2025-06-08 10:29:28 +02:00
falken10
8e8b44a744
Resource should not increment quantity in cost schedule
2025-06-08 10:23:00 +02:00
Massimo Fabbro
8b9927b77b
See #6570 . Better variable name
2025-06-08 10:22:12 +02:00
Andrej
09f6991565
cost items ui - update current index on item deletion
...
To make it less awkward to remove multiple items starting from the last.
Before - https://files.catbox.moe/wce56c.mp4
After - https://files.catbox.moe/wv1jhs.mp4
2025-06-06 19:06:47 +05:00
Andrej
14e8fad841
bim.contract / expand cost items - remove unused prop
2025-06-06 19:06:47 +05:00
Andrej
c76785e02c
tool.cost - refactor expand/contract rates methods
...
So they will be more similar
2025-06-06 19:06:46 +05:00
Andrej
7808dd535d
Fix contracted cost item removal logic
...
It was removing checking for cost item index, though container is storing cost item ids.
2025-06-06 19:06:46 +05:00
Andrej
72cf77690e
Prevent removing rel when is still valid after IfcCostItem removal #6769
2025-06-06 19:06:46 +05:00
Andrej
bf4a3f074f
typing
2025-06-06 19:06:46 +05:00
Andrej
a374a7e3ff
bonsai pyproject.toml - document dev dependencies
2025-06-06 13:11:59 +05:00
Andrej
b6267e4ad1
Fix issue with occurrences when reassigning IfcTypeProduct class #6781 ( 977d814)
2025-06-06 13:11:59 +05:00
Andrej
f21b34ffc1
reassign_class - safe check to prevent errors like #6781
2025-06-06 13:11:58 +05:00
Andrej
6de16bf658
bim.reassign_class - add simple test to cover cases like #6781
2025-06-06 13:11:58 +05:00
Andrej
9f17b9fd86
reassign_class - calculate occurrence_class just once for the entire loop
2025-06-06 13:11:58 +05:00
Andrej
781df9e3d8
Fix incorrect glob separator ( 8c9ccfd)
2025-06-06 11:57:46 +05:00
Andrej
8c9ccfdaae
Fix #6760
2025-06-06 11:22:05 +05:00
Andrej
3892ac56a4
Skip 26b21dd test if non-standard schema is not available (e.g. in github ci)
2025-06-05 19:05:28 +05:00
Andrej
ba6674299c
ifocpenshell-python makefile - shortcut to get current build urls
2025-06-05 19:05:28 +05:00
Andrej
fc0624692f
test_sql - use Ifc2Sql patcher for readability
2025-06-05 19:05:28 +05:00
Andrej
d6b5c73d4a
ifcpatch - fix doc-string ( b07b0e4be)
2025-06-05 19:05:28 +05:00
Andrej
f622d2f961
ifc2sql - consider .ifcsqlite suffix
2025-06-05 19:05:27 +05:00
Andrej
3a66a1c754
geom settings - add new settings from 439f9c1
2025-06-05 19:05:27 +05:00
Andrej
d0741cd495
Fix error using X hotkey on empty collection #6696
2025-06-05 19:05:27 +05:00
Andrej
0d39f8df28
Safer BlendData access
...
To avoid issues like #6771 when we by accident find an ID data-block from linked .blend file.
2025-06-05 19:05:27 +05:00
Andrej
87265d052b
typing
2025-06-05 19:05:27 +05:00
Thomas Krijnen
5af7c9a32d
Clarify Compound of Solids behaviour in create_solid_from_faces() #6780
2025-06-05 10:22:28 +02:00
Andrej
1ce9a4c68e
ifc2sql - fix mysql errors inserting values into shape table
2025-06-04 19:10:52 +05:00
Andrej
930d58cf69
ifc2sql - fix issue inserting mysql json attributes
...
It seems mysql doesn't have automatic conversion from other types to json, so we stringify it for compatibility.
2025-06-04 19:10:51 +05:00
Andrej
926785c5ec
ifc2sql - fix should_get_inverses for mysql
2025-06-04 19:10:51 +05:00
Andrej
274e19dcb9
ifc2sql - warn user if ifc database already exists
2025-06-04 19:10:51 +05:00
Andrej
7f0f93f726
ifc2sql - close cursor too
...
Important on Windows if someone is using Patcher explicitly and `self.c` is not garbage collected and file stays locked and cannot be moved.
2025-06-04 19:10:51 +05:00
Andrej
b07b0e4bea
ifc2sql - fix regression with missing resulting database filepath ( 9055f14) #6758
2025-06-04 19:10:50 +05:00
Andrej
a0e4bdcbef
ifcpatch - fix ifc2x3 bootstrap ( c58b84d)
...
After c58b84d append_asset requires user to be a valid IFC entity.
2025-06-04 19:04:32 +05:00
Andrej
2da183bfa6
bpy._typing -> bpy.stub_internal
...
https://github.com/nutti/fake-bpy-module/issues/362
2025-06-04 19:04:31 +05:00
Andrej
adf8a1f4e0
ci - run all ifcopenshell packages tests regardless of errors in some
2025-06-04 19:04:31 +05:00
Andrej
e1ec422bb1
common.mk - explicitly specify sh as default shell
2025-06-04 19:04:31 +05:00
Andrej
c51e36dbca
ifcpatch - a static way to use ifcpatch
2025-06-04 19:04:31 +05:00
Andrej
b393c120f1
ifcpatch pyproject - list optional dependencies
2025-06-04 19:04:31 +05:00
Andrej
3c7e938d90
IfcGeomWrapper - add missing property for edges_item_ids
2025-06-04 19:04:31 +05:00
Andrej
a614fac71a
typing
2025-06-04 19:04:31 +05:00
Andrej
5a211c67eb
black .
2025-06-04 19:04:30 +05:00
Andrej
6ea53d54ba
ruff to ignore src/ifcconvert/cityjson submodule
2025-06-04 11:02:08 +05:00
Dion Moult
b9b5aefd5e
Fix bSDD to properly use names and codes
2025-06-04 12:11:34 +10:00
Ryan Schultz
e1c1b828ad
Have save/cancel filter on top as well--helps with long filters.
2025-06-03 07:29:19 -05:00
Thomas Krijnen
3180004a28
WKT serializer: adapt section height to geometry height and emit height as geo:length
2025-06-02 13:30:06 +02:00
Thomas Krijnen
2ea2dc303c
OSX action: try with pip's awscli
2025-06-02 11:28:19 +02:00
Thomas Krijnen
0aae57620f
Temporary Python 3.9 compatibility
2025-06-02 08:42:47 +02:00
Thomas Krijnen
5c681d729c
vc path
2025-06-01 13:55:53 +02:00
Thomas Krijnen
802ab8c296
vs2022
2025-06-01 13:39:00 +02:00
Thomas Krijnen
2ebe7046d3
windows-2022
2025-06-01 10:00:33 +02:00
Thomas Krijnen
3562d89f01
Win S3 upload: try without --recursive but loop in ps
2025-06-01 09:53:17 +02:00
Thomas Krijnen
1155b52375
Black
2025-06-01 09:23:10 +02:00
Thomas Krijnen
2d67440085
Draw.py don't assert just only take outer boundary in arrangement
2025-06-01 09:22:40 +02:00
Thomas Krijnen
cc3f2aa28d
Expose mirror-y in draw.py
2025-06-01 09:21:59 +02:00
Massimo Fabbro
390349aa7a
See #6570 . Better cost item rate identification
...
Now show cost item rate shows the Identification and not the ID for better understanding
2025-05-31 15:58:42 +02:00
Massimo Fabbro
eade620581
Add calculating functions for Qto_CourseBaseQuantities for IfcCourse elements
2025-05-31 14:57:46 +02:00
Thomas Krijnen
88ac0a0f6c
Wrong preprocessor statement #6765
2025-05-31 14:14:43 +02:00
Bruno Perdigão
a531bd8c1f
Fix. Uninstall Bonsai Decorators if they are not selected at start
2025-05-30 16:20:42 -03:00
Andrej
f44769c138
ifc2sql - add example for should_expand
2025-05-30 18:13:18 +05:00
Andrej
a6e3cc667c
ifc2sql - add missing should_get_inverses description
2025-05-30 18:13:17 +05:00
Andrej
59b17fc593
ifcopenshell_wrapper.pyi
2025-05-30 18:13:17 +05:00
Andrej
fb1b5bea51
ifcopenshell.file - use IFC4X3 instead of IFC4X3_ADD2 for simplicity
2025-05-30 18:13:11 +05:00
Andrej
e8aa508405
Add 'advanced' optional ifcopenshell dependencies
...
To list all other optional dependencies.
2025-05-30 18:13:11 +05:00
Andrej
363083104b
Add 'tabulate' to optional ifcopenshell dev dependencies
...
Used in test_rules and test_wall_opening.
2025-05-30 18:13:11 +05:00
Andrej
2798bf3b68
ifcopenshell.api.geometry to fail more gracefully with fake-bpy
...
If user has fake-bpy-module for type hints, it will fail with `ImportError: cannot import name 'Vector' from 'mathutils' (unknown location)` instead of `ModuleNotFoundError`.
2025-05-30 18:13:11 +05:00
Andrej
e41c4bf7ae
Separate mathutils tests
2025-05-30 18:13:11 +05:00
Andrej
3bdce4fbc3
Make zip strict argument optional to support Python 3.9
2025-05-30 18:13:11 +05:00
Andrej
ad7473ff1f
Make dataclasses args optional to support Python 3.9 #6725
2025-05-30 18:13:10 +05:00
Andrej
3d77fc7c7d
ifccityjson - more specific depdendency
...
API in cjio 0.10 changed (`load` method was moved elsewhere) and for now we just specify that we require older cjio version.
2025-05-30 18:13:10 +05:00
Andrej
92a222cda7
typing
2025-05-30 18:13:10 +05:00
Andrej
cc60794293
edit style for rep item - fallback in case user has no styles #6764
...
Or if style was removed in the process of editing. And it seems now UI will never appear broken that way.
Previously - https://files.catbox.moe/exhkln.png
Currently - https://files.catbox.moe/r36be8.png
2025-05-30 17:01:11 +05:00
Kristoffer Andersen
c7b4033f6f
Update conda_build_config.yaml
...
try to fix conda daily
2025-05-29 21:18:19 +02:00
Andrej
1ab288de0b
ifc5d - fix <py3.11 compatibility issue ( 6499ac4)
2025-05-29 19:14:43 +05:00
Andrej
48f62c0b5b
ifcopenshell_wrapper.pyi - update from the latest build
...
I guess previously I used some of my local builds, so some symbols were missing.
2025-05-29 19:14:43 +05:00
Andrej
5fc549453c
validate_stub - add wrappers constants
2025-05-29 19:14:43 +05:00
Andrej
bd5f5a30b3
validate_stub - also skip object
2025-05-29 19:14:43 +05:00
Andrej
baf3edca13
ifcopenshell.validate - fix Python 3.9 support ( 25eecde)
2025-05-29 19:14:42 +05:00
Andrej
c23e973575
Fix moved cost.remove_cost_item_value ( b272210)
2025-05-29 19:14:42 +05:00
Andrej
a5801e439f
edit_attributes - fix Python 3.9 support ( 39fd9ce)
2025-05-29 19:14:42 +05:00
Andrej
4e65c33bae
Bonsai make - use ifcjson master instead of fork
...
https://github.com/IFCJSON-Team/IFC2JSON_python/pull/3 got merged
2025-05-29 19:14:42 +05:00
Andrej
c3652a56ee
dev_environment.py #6754
2025-05-29 19:14:42 +05:00
Andrej
e1b3b68a8b
gitignore jquery.min.js ( 320a4cf)
2025-05-29 19:14:42 +05:00
Andrej
dbce4c5d98
bcf - add missing requests dependency
2025-05-29 19:14:42 +05:00
Andrej
0663c5130a
typing
2025-05-29 19:14:42 +05:00
Andrej
ea7ced738a
Introduce Ruff github CI with some basic linter rules
...
And also to help catching syntax errors on older Python versions.
2025-05-28 18:24:13 +05:00
Andrej
7cde9629f8
Fix Ruff UP034 (extraneous-parentheses)
...
https://docs.astral.sh/ruff/rules/extraneous-parentheses/
2025-05-28 18:24:13 +05:00
Andrej
5f5ba72919
Fix Ruff UP003 (taking type of primitive)
...
https://docs.astral.sh/ruff/rules/UP003
2025-05-28 18:24:13 +05:00
Andrej
feebc701fa
Fix Ruff UP008 (super-call-with-parameters)
...
https://docs.astral.sh/ruff/rules/super-call-with-parameters/
2025-05-28 18:24:13 +05:00
Andrej
5ab14f1e4e
Fix Ruff UP022 (replace-stdout-stderr)
...
https://docs.astral.sh/ruff/rules/replace-stdout-stderr/
2025-05-28 18:24:12 +05:00
Andrej
f289b55766
Fix Ruff UP010 (unnecessary-future-import)
...
https://docs.astral.sh/ruff/rules/unnecessary-future-import/
2025-05-28 18:24:12 +05:00
Andrej
3976b77ee1
Fix Ruff UP033 (lru-cache-with-maxsize-none)
...
https://docs.astral.sh/ruff/rules/lru-cache-with-maxsize-none/
2025-05-28 18:24:12 +05:00
Andrej
7259dd625f
Fix Ruff UP013 (convert-typed-dict-functional-to-class)
...
https://docs.astral.sh/ruff/rules/convert-typed-dict-functional-to-class/
2025-05-28 18:24:12 +05:00
Andrej
03f5ee653b
Fix Ruff UP017 (datetime-timezone-utc)
...
https://docs.astral.sh/ruff/rules/datetime-timezone-utc/
2025-05-28 18:24:12 +05:00
Andrej
62a0c258b2
Fix Ruff UP012 (unnecessary-encode-utf8)
...
https://docs.astral.sh/ruff/rules/unnecessary-encode-utf8/
2025-05-28 18:24:11 +05:00
Andrej
c838139fdc
Fix Ruff UP024 (os-error-alias)
...
https://docs.astral.sh/ruff/rules/os-error-alias/
2025-05-28 18:24:11 +05:00
Andrej
a42a95adcb
Fix Ruff UP037 (quoted-annotation)
...
https://docs.astral.sh/ruff/rules/quoted-annotation/
2025-05-28 18:24:11 +05:00
Andrej
3b9d6ed145
Fix Ruff UP009 (utf8-encoding-declaration)
...
https://docs.astral.sh/ruff/rules/utf8-encoding-declaration/
2025-05-28 18:24:11 +05:00
Andrej
3c4105cbc5
Fix Ruff UP011 (lru-cache-without-parameters)
...
https://docs.astral.sh/ruff/rules/lru-cache-without-parameters/
2025-05-28 18:24:11 +05:00
Andrej
302423bfdb
Fix Ruff UP004 (useless-object-inheritance)
...
https://docs.astral.sh/ruff/rules/useless-object-inheritance/
2025-05-28 18:24:11 +05:00
Andrej
6dbf86382f
Fix Ruff UP018 (native-literals)
...
https://docs.astral.sh/ruff/rules/native-literals/
2025-05-28 18:24:11 +05:00
Andrej
3b50993b21
ifc2ca, bcf, opencdeserver - add Python 3.9 support
...
Was breaking due to `|` operator used in annotations instead of `Union`
2025-05-28 18:24:11 +05:00
Andrej
a8634a561a
ifcopenshell.util.mvd_info - fix breaking Python 3.9 support ( cbe8fc1)
...
due to `|` operator used in annotations instead of `Union`
2025-05-28 18:24:10 +05:00
Andrej
a16b8fa376
Fill ifcopenshell_wrapper.pyi with symbols #6684
...
As described in #6744 partial stub wrapper is completely replacing the type information from the wrapper, so having partial stub is making things worse than they were before.
This commit is adding all available symbols from the wrapper to the stub and allows to gradually include type information to the stub.
It also adds a safe net to ensure stub and wrapper won't go out of sync.
2025-05-28 18:24:10 +05:00
Andrej
a25698734a
Address PR feedback from #6719
2025-05-28 18:24:10 +05:00
Andrej
1c1bf56893
typing
2025-05-28 18:24:10 +05:00
Andrej
ceeb7ca355
black .
2025-05-28 18:24:10 +05:00
Martin15135215
6b77147d45
Create ifcopenshell_wrapper.pyi
...
stub file for swig-generated ifcopenshell_wrapper python file
2025-05-28 12:29:10 +00:00
Dion Moult
a929ab0c4f
Big bSDD overhaul for properties and classifications. See description.
...
* bSDD now supports a couple more args when querying the API.
* Fetching properties via the classification UI has been removed
* The bSDD dictionary selector has been merged into the classification
source dropdown
* The bSDD dictionary selector merged into the property set name
dropdown
* You can now search for properties in the bSDD directly when adding
properties
* You can browse properties via groups or classifications (based on
assigned classifications)
* You can browse properties via keyword (with some limitations due to
the API)
* You can selectively choose which properties you then want to add.
Only basic support right now.
2025-05-28 20:51:08 +10:00
Iagoba Apellaniz
e9eb5f892a
Update installation.rst to point to the latest release
2025-05-28 07:25:26 +00:00
Dion Moult
72ef055946
Add tests for boundary
2025-05-27 10:38:38 +10:00
Ryan Schultz
32e4a06fe4
fix : #6749 : use shift + click to remove that selection from the selection set.
...
changed bim.select_similar.calculate_sum to `ctrl + click` instead, since `shift + click` is a UI pattern used in vanilla blender when selecting/deselecting things.
Also refactored into helper methods.
2025-05-26 18:18:18 -05:00
Massimo Fabbro
02af46c99f
Fix #6700 . Cleanup
2025-05-26 17:56:13 +02:00
Massimo Fabbro
085fc8ca1c
Fix #6700
...
It seems that with new shapely release the buffer behavior has changed so now it seems to work again
2025-05-26 17:56:13 +02:00
Dion Moult
93d36501a3
Fix #3994 . Regression where space boundaries would not be created due to shape var being garbage cleaned.
2025-05-26 23:04:51 +10:00
Dion Moult
a74f1c6e08
Fix #6513 . Bug where OBJ not found when adding element.
...
This was actually fixed earlier already due to restructuring of
structural element authoring (i.e. the representation_template items now
always has OBJ unless it is a structural item)
2025-05-26 16:45:35 +10:00
Dion Moult
8766cad37e
bSDD searches now work on type classes as well as predefined types
2025-05-26 16:34:31 +10:00
Sayanjyoti Das
320a4cf4fa
Update installation scripts on documentation
2025-05-26 13:57:52 +10:00
Sayanjyoti Das
77ed64a900
Bundle jQuery at build time instead of fetching from a CDN
2025-05-26 13:57:52 +10:00
Sayanjyoti Das
b17c6dde85
fix jquery CDN links
2025-05-26 13:57:52 +10:00
falken10vdl
b0b7bbf95f
Update data.py to get data sorted
...
Then later is easier to read in lists
2025-05-26 13:56:03 +10:00
Dion Moult
873fe6a87f
Shift down grouping below spatial
2025-05-26 13:55:38 +10:00
talukderpushpak2000
31dc3fe002
Initial Commit
2025-05-26 13:53:58 +10:00
Martin15135215
697b034c22
Add annotation for file.header
2025-05-26 13:52:29 +10:00
Dion Moult
810e8df6fe
Fix #6640 . Fix invalid association of annotations to grids.
...
There was already some half written code with this intent it seems, so I
just finished it up.
2025-05-26 13:49:06 +10:00
Dion Moult
d6cc1ff9e9
Fix #2999 . You can now edit topology representation items.
2025-05-26 12:41:55 +10:00
Dion Moult
242d70c311
Fix set update in loop bug when trying to filter elements by spatial container
2025-05-26 10:47:05 +10:00
Massimo Fabbro
327899ca62
See #6570 . Small fix for previuos commit
2025-05-25 08:00:54 +02:00
Massimo Fabbro
482512085c
See #6570 . Small fix
2025-05-25 08:00:54 +02:00
Massimo Fabbro
12774607f3
See #6570 . Now it is possible to assign a cost rate from a non schedule of rate cost schedule
2025-05-25 08:00:54 +02:00
Massimo Fabbro
242d0ffb3f
See #6570.Minor fix
2025-05-25 08:00:54 +02:00
Massimo Fabbro
2bef2a0219
See #6570 . More consistent cost rate assignment
...
Now when a cost rate is assigned to a cost item, it creates also a relation between them, making the relation more consistent. It is also shown in the UI
2025-05-25 08:00:54 +02:00
Ryan Schultz
8cb871a6a2
Better convention: Using poll() method for b452348748
...
Thank you @Andrej730.
per https://github.com/IfcOpenShell/IfcOpenShell/commit/b452348748629a6e6dad6df24e21bfad2c203043#r157689504
2025-05-24 07:53:45 -05:00
Andrej730
fb5358e54e
clash ui - add basic header for the found clashes
...
Example - https://i.imgur.com/JjKIUZX.png
Also show indices, so it will be easier to communicate a specific clash to someone.
2025-05-23 18:45:07 +05:00
Andrej730
deae4e659b
clash ui - expose clash type to UI
...
Example - https://imgur.com/a/Wdyg3pn
2025-05-23 18:45:07 +05:00
Andrej730
29bd89324a
ifcopenshell.geom.tree.get_clash_type
2025-05-23 18:42:55 +05:00
Andrej730
087608a5f5
clash ui - show clearance, tolerance using blender units for readibility
2025-05-23 18:42:55 +05:00
Andrej730
bc5a291321
ifcclash - remove 'objects' dict item
...
It seems to be part of legacy code that's no longer used since 18c38b3
2025-05-23 18:42:55 +05:00
Andrej730
88befea174
typing
2025-05-23 18:42:55 +05:00
Andrej730
441e2ddbd6
black .
2025-05-23 18:42:55 +05:00
Dion Moult
09e07c80c5
Implement recursive contract / expand of the spatial tree
2025-05-23 17:35:15 +10:00
Orion Sehn
e3ddccdb11
updating documentation to make it clear to run the setup script on windows with blender closed.
2025-05-23 11:38:25 +05:00
Orion Sehn
621f6e7a31
fix to default directory on dev_environment.bat assuming you weren't using the daily build
2025-05-23 11:38:25 +05:00
Bruno Perdigão
0052570fdb
See #6166 . First implementation of polyline extend walls.
2025-05-22 23:47:11 -03:00
Bruno Perdigão
55e2171cac
Remove print statement
2025-05-22 23:16:48 -03:00
Bruno Perdigão
1f8967d5b8
See #6240 . Fix input handling for "close polyline".
2025-05-22 23:16:25 -03:00
falken10vdl
0410cec21b
Added Quickstart guides for Linux and Windows IDEs using VSCode ( #6494 )
...
* Added Quickstart guides for Linux and Windows IDEs using VSCode
* added some tips to Linux QS
* Added point 15
* extra picture for step 15
* Added windows part
* updated windows vscode launch settings
* added info about branch rebase for PRs
* updated dev_environment to cope for some errors
2025-05-22 09:46:41 -05:00
Andrej730
08ab48887a
clash - allow running a quick clash without saving results to some file explicitly
...
It's available on alt+click.
Example - https://imgur.com/a/wctjHnq
2025-05-22 18:09:28 +05:00
Andrej730
97bb587772
Bump bonsai build #6620
...
Besides the pending issues also resolves #6589 and error in #6196
2025-05-22 17:08:46 +05:00
Ryan Schultz
b452348748
Select all instances that share the same attribute value as any of the selected objects
2025-05-21 22:58:34 -05:00
Andrej730
60c18628c5
clash ui - display "clashes are not loaded" to avoid confusion with "no clashes found"
...
Example - https://imgur.com/a/5a6cuEG
2025-05-21 18:43:03 +05:00
Andrej730
5bb769448d
bim.execute_ifc_clash - show results in Bonsai UI for bcf file too
...
Previously results would show up only if you'd save .json, creating confusion since UI is showing "0 Clashes Found" though there were clashes.
2025-05-21 18:43:03 +05:00
Andrej730
ca890d2f9b
clash ui - make filters expandable for readibility
...
Example - https://imgur.com/a/ZeVeF3u
2025-05-21 18:43:03 +05:00
Andrej730
99782a2813
bim.select_clash_source - hide internal props from user
...
to avoid confusion
2025-05-21 18:43:02 +05:00
Andrej730
d48406006f
clash ui - move file selection button closer to filepath field
...
To make the type of the field more apparent.
2025-05-21 18:43:02 +05:00
Andrej730
0405b5c61f
clash ui - deduplicate ui code
2025-05-21 18:43:02 +05:00
Andrej730
c9eea76e57
bim.execute_ifc_clash - more user-friendly error when one of the filepaths do not exist
2025-05-21 18:43:02 +05:00
Andrej730
cc73143ac1
clash - typing fixes and some refactor
2025-05-21 18:43:02 +05:00
Andrej730
84b0abfb60
ci-ifcopenshell-python - include submodules #6723
2025-05-21 18:43:02 +05:00
Andrej730
13ea2ba8d2
ifcopenshell-python makefile - set sh as the main shell explicitly
2025-05-21 18:43:02 +05:00
Andrej730
d148ab4f31
Fix error switching to custom title block #6685
2025-05-21 18:43:02 +05:00
Andrej730
c7a030cc2d
typing
2025-05-21 18:43:01 +05:00
Andrej730
718254fe5e
Fix regression parsing iso duration with floats ( d1b1b08) #6715
2025-05-21 12:16:07 +05:00
Andrej730
41227b89c8
Fix subtle bug with operators precedence in eabdb5d
...
`+` has a higher precedence than `or`, so it resulted in the error below
```
Traceback (most recent call last):
File "\bonsai\bim\module\spatial\prop.py", line 86, in update_active_container_index
tool.Spatial.load_contained_elements()
File "\bonsai\tool\spatial.py", line 312, in load_contained_elements
cls.load_contained_elements_by_type(container)
File "\bonsai\tool\spatial.py", line 321, in load_contained_elements_by_type
results = cls.get_container_elements_grouped_by_type(container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\tool\spatial.py", line 294, in get_container_elements_grouped_by_type
element_type.is_a() + "/" + element_type.Name or "Unnamed"
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
```
2025-05-20 19:06:25 +05:00
Andrej730
2547ee9ab5
bonsai.crash.txt
...
There seems to be cases when Blender might crash too unexpectedly.
E.g. #6686 - during viewport render system is running out of resources and crashing without leaving blender.crash.txt, leaving everyone clueless. Which is arguably a bug in Blender (both crash and lack of any crash report), but at least we'll have a fallback for this case.
What bonsai.crash.txt does - it's created in system temp folder with the current Python traceback, just before some dangerous operation. If operation didn't crashed Blender, then file will be unlinked. If crash did occurred, it might be the only clue for users and devs on what actually happened.
2025-05-20 19:06:25 +05:00
Andrej730
d22f1bcd71
'viewport' render type - add a note
2025-05-20 19:06:24 +05:00
Andrej730
0c2158089d
disable update_has_underlay if update_props is disabled
...
Otherwise it was trying to load drawing styles too early, when drawing was not yet active. And then they were reloaded again during ActivateDrawingBase. Occurred after c2860e6 , before this commit issue was kind of hidden.
2025-05-20 19:06:02 +05:00
Thomas Krijnen
ccafc203b5
submodule
2025-05-20 10:05:21 +02:00
Andrej730
0efc2d25f1
Fix for assign_class and object with modifiers in Blender <4.4 #6701
2025-05-20 12:24:35 +05:00
Andrej730
ac50f002f0
Fix confused blender and pset props in 9586869
2025-05-19 19:28:55 +05:00
Andrej730
66f4c957ea
black .
2025-05-19 19:28:55 +05:00
Dion Moult
67016d6f90
See #2999 . Reimplement basic creation of structural items.
2025-05-19 17:36:12 +10:00
Thomas Krijnen
439f9c14ce
OcctNoCleanTriangulation CacheShapes PermissiveShapeReuse setting; Cgal conditional copy during triangulation; occt cheaper check for triangulation existance #6712
2025-05-18 22:14:22 +02:00
Dion Moult
404bf13a18
Update colour by property test to reflect new behaviour of only showing geometry not empties
...
ALL (feature) TESTS PASS YESS
2025-05-18 19:23:34 +10:00
Dion Moult
3a37bcdcaa
Update test cases to reflect new drawing activation UI
2025-05-18 19:09:29 +10:00
Dion Moult
992ad8e24a
See #4699 . Continue refactoring logic from drawing decorator into DecoratorData.
2025-05-18 15:32:55 +10:00
Dion Moult
1de2515fcd
More bSDD tests to cover all current functionality
2025-05-18 12:05:33 +10:00
Thomas Krijnen
4bc88eac2f
ifdefs around geometry handling for 4.3 rc schemas #6710
2025-05-17 16:01:28 +02:00
Dion Moult
22f10e5549
Fix #6669 . bSDD now supports test dictionaries, refactor domain to dictionary, support zero length keyword searches, multi-dict support, and basic tests.
...
Feature tests can now have more sophisticated per UIList item spies.
2025-05-17 21:28:12 +10:00
Andrej730
8e34c1d7df
Fix error using bim.updating_representation for object with material set
...
Possibly occurred after 4c255cc , but haven't investigated deeper.
@BIMvoice
The error you were reporting about Split Along Edge operator was caused by this issue, should be fixed now too.
See https://jmp.sh/hgJEHsgH
Example error traceback:
```
Error: Python: Traceback (most recent call last):
File "C\bonsai\bim\ifc.py", line 487, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C\bonsai\bim\module\geometry\operator.py", line 541, in _execute
self.update_obj_mesh_representation(context, obj)
File "C\bonsai\bim\module\geometry\operator.py", line 666, in update_obj_mesh_representation
tool.Ifc.link(new_representation, data)
File "C\bonsai\tool\ifc.py", line 230, in link
IfcStore.link_element(element, obj)
File "C\bonsai\bim\ifc.py", line 258, in link_element
tool.Geometry.get_mesh_props(obj).ifc_definition_id = element.id()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C\bonsai\tool\geometry.py", line 92, in get_mesh_props
return mesh.BIMMeshProperties
^^^^^^^^^^^^^^^^^^^^^^
ReferenceError: StructRNA of type Mesh has been removed
```
2025-05-16 19:43:42 +05:00
Andrej730
4369baa226
bim.split_along_edge - improve descriptions, add error handling
2025-05-16 19:43:42 +05:00
Andrej730
7941d71feb
SvgWriter - make required arguments more explicit
2025-05-16 19:43:42 +05:00
Andrej730
68d967c2e5
pyproject.toml - enableTypeIgnoreComments=false
2025-05-16 19:43:41 +05:00
Andrej730
4ea9a598c7
operator.drawing - remove unnecessary ifc operators
2025-05-16 19:43:41 +05:00
Andrej730
06d1c81954
black .
2025-05-16 19:43:41 +05:00
Andrej730
aa5f08880b
typing
2025-05-16 19:43:41 +05:00
Ryan Schultz
9e6320d545
A preference to list those classes that are not affected by the 'cut decorator'.
2025-05-15 21:45:53 -05:00
Bruno Perdigão
f39d3d4b9c
Fix polyline plane method decorator to show properly.
...
The `plane_method` where not being cleared after canceling or confirming
the polyline operator.
2025-05-15 21:28:31 -03:00
Bruno Perdigão
5c72cf35bd
See #6208 . Change wall merge tolerance for more consistent behavior.
2025-05-15 19:08:04 -03:00
Bruno Perdigão
b9a435e1c3
Fix polyline tool calculation when dealing with 180 degrees angles.
2025-05-15 17:41:32 -03:00
Bruno Perdigão
92f2559ce0
See #6536 . Recalculate profile only for selected objects.
2025-05-15 17:41:32 -03:00
Bruno Perdigão
acf9713943
Fix aggregate decorator after #6537 .
2025-05-15 17:41:32 -03:00
Andrej730
a77125ff12
bim.add_drawing - document camera placement behaviour in description
...
See https://i.imgur.com/VfOjGHk.png
2025-05-15 20:01:02 +05:00
Andrej730
c8841bcb6a
Add a test for be65774
2025-05-15 20:01:01 +05:00
Andrej730
b20997dea8
Fix tests missing assert statement - add assert and fix them
2025-05-15 19:45:11 +05:00
Andrej730
292aca6685
Remove unnecessary IFC operators
2025-05-15 19:45:11 +05:00
Andrej730
3a824ec969
Allow adding arrays to openings and spatial elements 0b8fb41 0e37528
2025-05-15 19:45:11 +05:00
Andrej730
bea9f42f87
Annotator.add_text - remove ancient dead code
...
It was deprecated a while ago in 43869c3 , when we stopped using curves for text annotations. bim.resize_text was also using curve annotations and now also was unused
2025-05-15 19:45:11 +05:00
Andrej730
e4a50b32ce
typing
2025-05-15 19:40:44 +05:00
Andrej730
76611024b6
Remove drawing styles attributes prop ( a50c633cf)
2025-05-15 10:30:35 +05:00
Andrej730
92ee82374c
EPset_Drawing.Metadata - add description
...
See https://i.imgur.com/0fR9fRj.png
2025-05-14 19:40:46 +05:00
Andrej730
af81aa1fae
Reapply 06f1477 to fix not appearing IFC Description button
...
Not that skipping non-string properties was a bad idea, but inserting it right at the beginning was - non-string IFC properties were missing IFC descriptions because of it. Moved it past `Attribute` check to avoid this issue.
For anyone hearing about this feature for the first time - https://imgur.com/a/dNRao3R
I assume this was also the issue that was encountered in #5892
2025-05-14 19:40:45 +05:00
Andrej730
16f9f91561
util.doc - statically type json structures
2025-05-14 19:40:45 +05:00
Andrej730
3a52a848ae
draw_custom_context_menu - small refactor to improve readibility
2025-05-14 19:40:45 +05:00
Andrej730
a50c633cf4
Remove drawing styles attributes
...
It's been awhile since they were unused (2c301d7 ) and now they're replaced with EPset_Drawing.Metadata
2025-05-14 19:40:45 +05:00
Andrej730
6251750133
common method for getting active drawing style
2025-05-14 19:40:45 +05:00
Andrej730
acef6379e8
drawing styles - add descriptions to render types, remove NONE type
...
NONE type removed as it was unused and basically meant the same as 'VIEWPORT'.
Example - https://i.imgur.com/7r6CJdg.png
2025-05-14 19:40:45 +05:00
Andrej730
c2860e6e25
drawing.operator not to use DrawingsData
2025-05-14 19:40:44 +05:00
Andrej730
b8e5cd740a
Use common method for getting active drawing entity
2025-05-14 19:40:44 +05:00
Andrej730
9188dc60ab
typing
2025-05-14 19:40:44 +05:00
Thomas Krijnen
8ce56db0c3
Align preprocessor flags #6706
2025-05-14 13:09:17 +02:00
Andrej730
b91b1401f4
util.get_aggregate - make it more readable ( 5597095)
2025-05-13 17:44:42 +05:00
Andrej730
0e37528915
Skip IfcOpeningElements arrays during base import, setup constraint on opening load #6688
2025-05-13 17:23:46 +05:00
Andrej730
9991c4aa56
IfcImporter.create_generic_elements - prevent argument mutation
...
as it may have unexpected consequences
2025-05-13 17:23:46 +05:00
Andrej730
0ef3983035
bim.show_opening - simplify code
2025-05-13 17:23:46 +05:00
Andrej730
0f6e6a48f4
bim.show_openings - expand description
2025-05-13 17:23:45 +05:00
Andrej730
3d225beafd
Add notes on Tekla accommodations ( 7c3870595)
2025-05-13 16:59:12 +05:00
Andrej730
6a91bbb720
typing
2025-05-13 16:59:12 +05:00
Hannes
1f23e4ba18
Fixed typo in __init__.py
...
See https://github.com/IfcOpenShell/IfcOpenShell/issues/6625
2025-05-13 13:18:24 +02:00
Andrej730
2ebcffc7d4
Geometry changes will be lost - show warning only for IFC objects
...
Previously it would also occur for vanilla Blender objects not connected to IFC.
2025-05-13 13:26:54 +05:00
Andrej730
3d4321f713
Prevent class assignment in non-object mode #6697
...
Example - https://i.imgur.com/KQYQLQZ.png
2025-05-13 13:26:54 +05:00
Andrej730
f8799305e1
black .
2025-05-13 13:26:54 +05:00
Dion Moult
7c38705958
Accommodate invalid missing mapped representations and items coming from Tekla (2023)
2025-05-13 13:09:37 +10:00
Bruno Perdigão
f6fc0cfa0f
See #6537 . Fix object display type when exiting aggregate mode.
2025-05-12 22:01:40 -03:00
Richard Brice
686e9c946b
Adds object placement to stationing referent.
2025-05-12 16:14:53 -07:00
sboddy
3085072751
Improve drawing activation as per #6653 ( #6659 )
...
Drawings are now activated in a bit different way - not by the camera button located above the drawings list, but by using the camera indicator next to each drawing. Which allows do change active drawing very quickly. All activation options (shift+, alt+) are also available from this indicator.
Now - https://imgur.com/a/DmnWkul
Before - https://imgur.com/a/zjPDkPa
2025-05-12 19:46:34 +05:00
Andrej730
0328be4093
Drawing styles - remove deprecated properties / property values
...
Deprecated properties:
- scene.render.engine + BLENDER_EEVEE
- scene.render.simplify_shadows
- scene.render.simplify_shadows_render
- space.overlay.backwire_opacity
- space.overlay.show_edges
- space.overlay.show_occlude_wire
- scene.display.shading.wireframe_color_type + MATERIAL
2025-05-12 19:10:04 +05:00
Andrej730
6218d3902e
bim.activate_drawing_style - show warnings if some property failed to be set
...
Otherwise errors were passing silently (just console errors) and remained unfixed. 'PYTEST_VERSION' is needed to be even more strict when we're running pytests, which allows us to catch outdated Blender properties in time.
Example - https://i.imgur.com/K7Trkxf.png
2025-05-12 19:10:04 +05:00
Andrej730
be1836fa48
Mark thumbnails as outdated instead of updating them right away
...
As user may never open them in type manager
2025-05-12 19:08:46 +05:00
Andrej730
22b5db8a1e
ci-black-formatting - print diff
2025-05-12 19:08:46 +05:00
Andrej730
4268e1376c
Address PR review changes #6660
2025-05-12 19:08:46 +05:00
Andrej730
e2c1a54e0a
typing
2025-05-12 19:08:46 +05:00
falken10vdl
d1be660469
Update type manager preview on updating paramteric door/window type ( #6656 )
2025-05-12 12:41:02 +05:00
Kristoffer Andersen
3ae5227b57
Update ci-ifcopenshell-conda-daily.yml
...
remove env var
2025-05-11 19:59:05 +02:00
Kristoffer Andersen
cdc994ca76
Update ci-ifcopenshell-conda-daily.yml
...
move rattler build output dir outside of build dir
2025-05-11 19:58:27 +02:00
Kristoffer Andersen
0ad4087f0a
Update ci-ifcopenshell-conda-daily.yml
...
remove dotnet to save space on ubuntu runner
2025-05-11 19:28:12 +02:00
Kristoffer Andersen
4b7ca648c6
Update ci-ifcopenshell-conda-daily.yml
...
try to get even more space on ubuntu ci runner
2025-05-11 19:23:28 +02:00
Kristoffer Andersen
17bd6e6b0c
Update ci-ifcopenshell-conda-daily.yml
...
fix missing comma
2025-05-11 19:12:34 +02:00
Kristoffer Andersen
7b80803cbe
separate osx-x86 and osx-arm64 for the conda daily builds ( #6694 )
...
* separate osx-x86 and osx-arm64 for the conda daily builds
* remove running this in PR. No need.
2025-05-11 18:59:52 +02:00
Kristoffer Andersen
eaf67d83f9
Update ci-ifcopenshell-conda-daily.yml
...
strip daily conda build version date string
2025-05-11 16:04:21 +02:00
Kristoffer Andersen
41f754e15b
Update ci-ifcopenshell-conda-daily.yml
...
Update conda ci
2025-05-11 15:53:29 +02:00
Kristoffer Andersen
b7cdb86327
use rattler-build to speed up daily conda builds and fix deps ( #6692 )
...
* use rattler-build to speed up daily conda builds and add typing_extensions
* minor update
2025-05-11 09:37:02 +02:00
falken10vdl
809a20dc99
system info copied when clicking in Bonsai Version ( #6660 )
2025-05-09 16:09:37 -05:00
Andrej730
f5e41d18c6
drawing.operator - reuse blender.get_view3d_space
2025-05-09 19:26:28 +05:00
Andrej730
60a8c45ad7
Fix IFC operators issues for drawing styles operations ( 38cf88d)
2025-05-09 19:26:28 +05:00
Andrej730
73f98bfe4b
Remove 2 years old fallback for missing ShadingStyles prop in drawing's pset ( 38cf88d)
2025-05-09 19:26:28 +05:00
Andrej730
958686958b
drawing.prop - reuse generic pset update callback
2025-05-09 19:26:28 +05:00
Andrej730
e0b61c5794
Fix drawing styles update on underlay toggle after 9329390
2025-05-09 19:26:28 +05:00
Andrej730
5aa5552759
Fix drawing test after be657748f
2025-05-09 19:26:27 +05:00
Andrej730
82a19cee7b
generate_drawing_matrix - simplify logic
2025-05-09 19:26:27 +05:00
Andrej730
43d4adbd9d
Fix tests after specifying types more precisely in def9352ad
2025-05-09 19:26:27 +05:00
Andrej730
1d3c71985f
typing
2025-05-09 19:26:27 +05:00
Andrej730
381fca0812
black .
2025-05-09 19:26:27 +05:00
Dion Moult
0f37eca333
Fix bug in IFC4X3 when convering properties to quantities
2025-05-09 15:24:30 +10:00
Dion Moult
6bf9b8b0c9
Fix bug where appending assets could accidentally create duplicate contexts
2025-05-09 15:24:17 +10:00
Bruno Perdigão
9361cfee28
See #6536 . Update cardinal point when editing IfcMaterialProfileSetUsage.
2025-05-08 22:06:48 -03:00
Bruno Perdigão
1c205d494a
See #6332 . Fix issue where imperial precision were being used by metric formatting.
2025-05-08 19:15:51 -03:00
Ryan Schultz
4d1d224a34
fix #6683 - When placing Level (Plan) annotation, have it take on the 'z' dimension of the 3d cursor, verses the front plane of the drawing camera
2025-05-08 17:04:34 -05:00
Andrej730
4976af5e66
drawing.create_camera - remove setting location line that had no effect
...
Apparently it had no effect from the beginning in 074fe0d and lost any use in 6a8292d , when we started to base position on current cursor's location.
2025-05-08 19:23:24 +05:00
Andrej730
be657748f3
Align new Model drawings to viewport by default
...
Previously it was creating not very useful top-down camera at `(0,0,0)`, now it should be more intuitive.
Example - https://imgur.com/a/GHrvCSJ
2025-05-08 19:23:24 +05:00
Andrej730
def9352ade
typing
2025-05-08 19:23:23 +05:00
Josef Wienerroither
a20002ecca
Update links and version info ifcmax.rst
2025-05-08 14:42:50 +02:00
Andrej730
b7a0f230ad
Fix confused target_view callbacks ( 1619ae854)
...
Fix using the same function name twice leading to DocProperties using camera callback too.
2025-05-08 15:50:00 +05:00
Andrej730
76529a06bb
Fix resetting perspective camera on drawing activation ( 1619ae854)
2025-05-08 15:41:34 +05:00
Andrej730
dcdae67a2d
Fix typo in 1619ae854
2025-05-08 15:41:34 +05:00
Andrej730
5a7a368169
ifcopenshell.file.Transaction - add static typing
2025-05-08 15:41:34 +05:00
Thomas Krijnen
ec13294430
python39 compatibility
2025-05-08 08:37:41 +02:00
Andrej730
653b88ba18
Bonsai - make undo errors visible to user
...
In theory there are possible undo errors, when some step wasn't registered in undo system and undo then won't be able to undo change from IFC. The problem is, those errors could be very dangerous but they occur in background, undetected by users, they're only visible as console traceback.
After this commit we'll try to detect them and set `last_error`, which will show usual Bonsai error panel in Properties.
@theoryshaw just in case, as you will probably find this kind of error 😁
Example traceback user might see in system console (or in their error report from "Copy Error Message").
```
last_error: Undo transaction operations:
- {'action': 'create', 'value': {'id': 1560, 'type': 'IfcGrid', 'GlobalId': '05Y8D_Ja12HfiEbmc$D3WN', 'OwnerHistory': None, 'Name': None, 'Description': None, 'ObjectType': None, 'ObjectPlacement': None, 'Representation': None, 'UAxes': None, 'VAxes': None, 'WAxes': None, 'PredefinedType': None}}
- {'action': 'edit', 'id': 1560, 'index': 2, 'old': None, 'new': 'Grid'}
- {'action': 'edit', 'id': 1221, 'index': 4, 'old': ({'id': 1297}, {'id': 1247}, {'id': 1220}, {'id': 1272}), 'new': ({'id': 1272}, {'id': 1247}, {'id': 1220}, {'id': 1560}, {'id': 1297})}
- {'action': 'create', 'value': {'id': 1561, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, 0.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1562, 'type': 'IfcDirection', 'DirectionRatios': (0.0, 0.0, 1.0)}}
- {'action': 'create', 'value': {'id': 1563, 'type': 'IfcDirection', 'DirectionRatios': (1.0, 0.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1564, 'type': 'IfcAxis2Placement3D', 'Location': {'id': 1561}, 'Axis': {'id': 1562}, 'RefDirection': {'id': 1563}}}
- {'action': 'create', 'value': {'id': 1565, 'type': 'IfcLocalPlacement', 'PlacementRelTo': None, 'RelativePlacement': {'id': 1564}}}
- {'action': 'edit', 'id': 1565, 'index': 0, 'old': None, 'new': {'id': 66}}
- {'action': 'edit', 'id': 1560, 'index': 5, 'old': None, 'new': {'id': 1565}}
- {'action': 'create', 'value': {'id': 1566, 'type': 'IfcGridAxis', 'AxisTag': 'A', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': None, 'new': ({'id': 1566},)}
- {'action': 'create', 'value': {'id': 1567, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1568, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1569, 'type': 'IfcPolyline', 'Points': ({'id': 1567}, {'id': 1568})}}
- {'action': 'edit', 'id': 1566, 'index': 1, 'old': None, 'new': {'id': 1569}}
- {'action': 'create', 'value': {'id': 1570, 'type': 'IfcGridAxis', 'AxisTag': 'B', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': ({'id': 1566},), 'new': ({'id': 1566}, {'id': 1570})}
- {'action': 'create', 'value': {'id': 1571, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 10.0)}}
- {'action': 'create', 'value': {'id': 1572, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 10.0)}}
- {'action': 'create', 'value': {'id': 1573, 'type': 'IfcPolyline', 'Points': ({'id': 1571}, {'id': 1572})}}
- {'action': 'edit', 'id': 1570, 'index': 1, 'old': None, 'new': {'id': 1573}}
- {'action': 'create', 'value': {'id': 1574, 'type': 'IfcGridAxis', 'AxisTag': 'C', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': ({'id': 1566}, {'id': 1570}), 'new': ({'id': 1566}, {'id': 1570}, {'id': 1574})}
- {'action': 'create', 'value': {'id': 1575, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 20.0)}}
- {'action': 'create', 'value': {'id': 1576, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 20.0)}}
- {'action': 'create', 'value': {'id': 1577, 'type': 'IfcPolyline', 'Points': ({'id': 1575}, {'id': 1576})}}
- {'action': 'edit', 'id': 1574, 'index': 1, 'old': None, 'new': {'id': 1577}}
- {'action': 'create', 'value': {'id': 1578, 'type': 'IfcGridAxis', 'AxisTag': '01', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': None, 'new': ({'id': 1578},)}
- {'action': 'create', 'value': {'id': 1579, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1580, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1581, 'type': 'IfcPolyline', 'Points': ({'id': 1579}, {'id': 1580})}}
- {'action': 'edit', 'id': 1578, 'index': 1, 'old': None, 'new': {'id': 1581}}
- {'action': 'create', 'value': {'id': 1582, 'type': 'IfcGridAxis', 'AxisTag': '02', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': ({'id': 1578},), 'new': ({'id': 1578}, {'id': 1582})}
- {'action': 'create', 'value': {'id': 1583, 'type': 'IfcCartesianPoint', 'Coordinates': (10.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1584, 'type': 'IfcCartesianPoint', 'Coordinates': (10.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1585, 'type': 'IfcPolyline', 'Points': ({'id': 1583}, {'id': 1584})}}
- {'action': 'edit', 'id': 1582, 'index': 1, 'old': None, 'new': {'id': 1585}}
- {'action': 'create', 'value': {'id': 1586, 'type': 'IfcGridAxis', 'AxisTag': '03', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': ({'id': 1578}, {'id': 1582}), 'new': ({'id': 1578}, {'id': 1582}, {'id': 1586})}
- {'action': 'create', 'value': {'id': 1587, 'type': 'IfcCartesianPoint', 'Coordinates': (20.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1588, 'type': 'IfcCartesianPoint', 'Coordinates': (20.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1589, 'type': 'IfcPolyline', 'Points': ({'id': 1587}, {'id': 1588})}}
- {'action': 'edit', 'id': 1586, 'index': 1, 'old': None, 'new': {'id': 1589}}
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 352, in undo
transaction.rollback()
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 167, in rollback
element = self.file.by_id(operation["id"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 510, in by_id
return self[id]
~~~~^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 497, in __getitem__
return entity_instance(self.wrapped_data.by_id(key), self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\ifcopenshell_wrapper.py", line 8884, in by_id
return _ifcopenshell_wrapper.file_by_id(self, id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Instance #1565 not found
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\ifc.py", line 426, in callback
tool.Ifc.get().undo()
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 354, in undo
raise UndoSystemError("Error during transaction undo.", transaction) from e
ifcopenshell.file.UndoSystemError: Error during transaction undo.
```
2025-05-07 18:54:57 +05:00
Andrej730
f8489779f6
Fix missing IFC undo for all activate drawing operations
...
Very dangerous bug that could create a situation when .blend will go out of sync with IFC leading to unpredictable issues.
Example issue:
1. Create a drawing and activate it.
2. Create a grid.
3. Activate the drawing again.
4. Undoing just drawing activation here would work fine - annotations would be still floating in IFC without objects, but that would be fixed on the next drawing activation
To make it more dangerous undo grid creation. Then you'll get the traceback similar to the one below. The most dangerous part of it, that user won't see an error, it will just pop up in the system console silently.
```
Traceback (most recent call last):
File "\bonsai\bim\handler.py", line 244, in undo_post
IfcStore.undo(until_key=props.last_transaction)
File "\bonsai\bim\ifc.py", line 533, in undo
transaction["rollback"](transaction["data"])
File "\bonsai\bim\ifc.py", line 449, in <lambda>
operator, rollback=lambda d: tool.Ifc.get().undo(), commit=lambda d: tool.Ifc.get().redo()
^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\file.py", line 345, in undo
transaction.rollback()
File "\ifcopenshell\file.py", line 161, in rollback
element = self.file.by_id(operation["id"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\file.py", line 498, in by_id
return self[id]
~~~~^^^^
File "\ifcopenshell\file.py", line 485, in __getitem__
return entity_instance(self.wrapped_data.by_id(key), self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 8884, in by_id
return _ifcopenshell_wrapper.file_by_id(self, id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Instance 1565 not found
```
2025-05-07 18:54:57 +05:00
Andrej730
64df82a76b
ifcopenshell.file - save last failed transaction for introspection
2025-05-07 18:54:57 +05:00
Andrej730
af4fbd6750
Document features available for perspective camera in it's description
...
See https://i.imgur.com/8ZPJ8ag.png
2025-05-07 18:54:56 +05:00
Andrej730
1619ae8543
Expose camera type to UI and automatically update IFC camera type on drawing activation
...
Noticed fixing #6670 that though example project in this issue had camera named "PERSPECTIVE" but it was saved to IFC as orthogonal and there is no straightforward way to change it, besides changing Blender camera props and updating representation.
Example - https://imgur.com/a/GQ9A3EK
It's kind of exposed to UI now, but there's still bunch of issues with it to address.
2025-05-07 18:54:56 +05:00
Andrej730
41eadf735e
add_representation - more readable error on using panoramic camera
2025-05-07 18:54:56 +05:00
Andrej730
172775d4ed
Fix constant camera representation update because of the float garbage values
...
Similar issue to 82f25f5
Basically matrix is a little bit different every time you activate drawing even if user made no changes to camera position. My guess is basically all float values stored by Blender somewhere deep as float32 but when you access matrix world, Blender converts them to Python floats (which are float64) and some garbage values introduced along the way creating this noise.
2025-05-07 18:54:56 +05:00
Andrej730
d539cad1c2
Fix mistake in fd30a6b #6670
2025-05-07 18:54:56 +05:00
Andrej730
94cf56e080
typing
2025-05-07 18:54:56 +05:00
Geert Hesselink
cf253824ca
update latest simple_spf submodue
2025-05-07 15:48:01 +02:00
Andrej730
9c73f17303
add pytest-bdd to bonsai daily cli
2025-05-06 20:08:09 +05:00
Andrej730
a6f523039b
bonsai pytest.ini - specify plugins explicitly
...
To make it possible to run the tests with PYTEST_DISABLE_PLUGIN_AUTOLOAD set, which is very useful if you don't want to start Blender anytime you run any tests on your system.
2025-05-06 20:07:44 +05:00
Andrej730
c2f9bfeb8d
Fix bim search tests after 0b22333
2025-05-06 20:07:44 +05:00
Andrej730
3ab1c2e0f9
outliner.delete - make errors from attempt to delete locked object less scary
...
Traceback errors give users an impression that some broke and maybe project now is in some invalid state and they should ctrl-z immediately, error reports are much more friendly.
Before - https://i.imgur.com/N4fUU1M.png
After - https://i.imgur.com/6On1Be0.png
2025-05-06 19:03:05 +05:00
Andrej730
0ed964daa2
object.delete, outliner.delete - move to common method is_batch logic
2025-05-06 19:03:04 +05:00
Andrej730
03f619a77c
aggregate decorator indicator - make it more intuitive
...
Example - https://imgur.com/a/RoFQKa1
2025-05-06 19:03:04 +05:00
Andrej730
e5ad35e2c8
bim.add_aggregate - use more common way to get all selected objects
2025-05-06 19:03:04 +05:00
Andrej730
297f15737d
bim.add_aggregate - remove unused 'obj' property ( c51aa91)
2025-05-06 19:03:03 +05:00
Andrej730
374b95efdf
bim.add_aggregate - update description
2025-05-06 19:03:03 +05:00
Andrej730
744ed522b6
Fix error duplicating just an IfcElementAssembly ( d2b05ea)
...
Example error traceback:
```
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1044, in execute
return OverrideDuplicateMove.execute_duplicate_operator(self, context, linked=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1055, in execute_duplicate_operator
IfcStore.execute_ifc_operator(operator, context)
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\ifc.py", line 458, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1047, in _execute
return OverrideDuplicateMove.execute_ifc_duplicate_operator(self, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1085, in execute_ifc_duplicate_operator
old_to_new, new_active_obj = tool.Geometry.duplicate_ifc_objects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\tool\geometry.py", line 2131, in duplicate_ifc_objects
tool.Root.recreate_aggregate(old_to_new)
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\tool\root.py", line 397, in recreate_aggregate
tool.Blender.select_and_activate_single_object(bpy.context, tool.Ifc.get_object(new_aggregate[0]))
~~~~~~~~~~~~~^^^
TypeError: 'NoneType' object is not subscriptable
```
2025-05-06 19:03:03 +05:00
Andrej730
f4bc3fffa3
bim.override_move - rename for clairty and add description
2025-05-06 19:03:02 +05:00
Andrej730
06a2cecb51
typing
2025-05-06 15:15:03 +05:00
Andrej730
b0f2785e99
black .
2025-05-06 11:11:07 +05:00
Thomas Krijnen
c6c852c7f6
NB: fix get_cartesiantransformationoperator3d()
2025-05-05 21:47:57 +02:00
Geert Hesselink
5d920d5e31
header_entity type -> attr check
2025-05-05 20:54:19 +02:00
Geert Hesselink
2b522b71cb
hasattr to isinstance()
2025-05-05 20:54:19 +02:00
Geert Hesselink
d00c3735ec
Update src/ifcopenshell-python/ifcopenshell/validate.py
...
Co-authored-by: Thomas Krijnen <t.krijnen@gmail.com >
2025-05-05 20:54:19 +02:00
Geert Hesselink
bbdc9c45dd
use repr(), compatible f.header
2025-05-05 20:54:19 +02:00
Geert Hesselink
5eb9cdf40d
handle header entity string reversal
2025-05-05 20:54:19 +02:00
Geert Hesselink
689289bb60
validate ifcopenshell.simple_spf.file
2025-05-05 20:54:19 +02:00
Geert Hesselink
d401e4c948
set set/get_description, add view_definitions & tests
2025-05-05 16:18:09 +02:00
Geert Hesselink
cbe8fc1ebd
mvd info to module, add testing, setattr & getattr
2025-05-05 16:18:09 +02:00
Geert Hesselink
9f11568aff
Allow for dots in mvd value
2025-05-05 16:18:09 +02:00
Geert Hesselink
968e193f99
abort string when None, more explicit error handling
2025-05-05 16:18:09 +02:00
Geert Hesselink
2d06a79842
handle emptry description field
2025-05-05 16:18:09 +02:00
Geert Hesselink
808a16ba4a
parsed mvd description in ifcopenshell.file
2025-05-05 16:18:09 +02:00
Andrej730
a67a6034a5
Use mesh.separate for vanilla Blender objects #6658 ( 0b22333)
...
mesh.separate works completely different in EDIT mode, previously we only supported it from object mode
2025-05-05 18:45:09 +05:00
Andrej730
8fe1a63339
Bonsai docs - add page to list hotkeys
...
See https://docs-unstable.bonsaibim.org/reference/hotkeys.html
2025-05-05 18:45:08 +05:00
Andrej730
1ce78f3c65
Override Shift-X and Shift-Del with IFC Delete
...
To prevent users from creating weird state of IFC model by using non-ifc `object.delete` triggered by those hotkeys by default.
2025-05-05 18:45:08 +05:00
Andrej730
57b35c68e4
IFC delete - just reuse object.delete if no IFC file active
...
So it will be possible for this operator to completely override object.delete
2025-05-05 18:45:08 +05:00
Andrej730
ff57b91691
typing
2025-05-05 18:45:08 +05:00
Andrej730
6e15219fad
black .
2025-05-05 18:34:47 +05:00
Andrej730
979964f211
Merge branch 'falken10vdl-patch-2' into v0.8.0
2025-05-05 18:33:15 +05:00
falken10vdl
4ce2f81479
Skip non MESH and CURVE object listing elements for coloring #6657
...
So non MESH or CURVE objects are not listed in the Colour by property.
Now all unrelated empty objects are excluded from the coloring section as they were just taking space, see - https://imgur.com/sPA8I5V
2025-05-05 18:31:19 +05:00
Thomas Krijnen
dbdde52435
validate.py Add test files
2025-05-05 14:21:19 +02:00
Thomas Krijnen
84568f34f0
validate.py be more specific in distinguishing type decl and entity refs
2025-05-05 14:20:47 +02:00
Geert Hesselink
fe9c548ae0
Valid template header default ( #6610 )
...
* Valid template header default
* consistent version in tempalte file
* schema-dependent mvd
2025-05-05 13:56:40 +02:00
Andrej730
1714516a81
Fix bim.override_move issue with aggregates #6648 ( c9fc543)
2025-05-05 14:59:31 +05:00
Andrej730
c4c3a2056b
overridden delete operators - add descriptions
2025-05-02 19:58:24 +05:00
Andrej730
fad35b14f2
Fix dangerous bug with bim.override_outliner_delete
...
Essentialy outliner.delete should do the same as object.delete, but in our case the main implementation was in object.delete while outliner.delete was missing very important parts - e.g. handling arrays.
So if user could have remove part of an array without errors, leaving pset data invalid. See #6590 , #6547 .
Found this by trying to debug issues above.
Now outliner.delete will call object.delete explicitly, so the two stay connected.
I also had an idea that may be it somehow can produce #6632/#6619, but couldn't find a way to reproduce it. So it's still uncertain.
2025-05-02 19:58:24 +05:00
Andrej730
2382f8d7f8
color by property - add operators descriptions
2025-05-02 19:58:23 +05:00
Andrej730
9ae7a68c43
Display actual Bonsai version for live repo (reuse last commit date)
2025-05-02 19:58:23 +05:00
Andrej730
7a5e5fe602
Reuse get_last_commit_hash
...
Noticed that hash wasn't updating from live git repo because of this.
Also update commit data only when running the package, not extension.
2025-05-02 19:58:23 +05:00
Andrej730
839b2c9c1f
typing
2025-05-02 19:58:23 +05:00
Andrej730
4aaaf6e8f5
Fix ifc2x3 errors editing IfcSurfaceStyleShading #6624
2025-05-02 12:32:49 +05:00
Andrej730
1b38b03532
new operator - bim.select_entity_by_guid
...
I find myself often having element guid copied (either from other viewer or from text editor or from elsewhere) and to find it in scene I needed to create a new search group, add a filter, paste guid and then search for it. So decided to add a shortcut for this that just takes guid from the clipboard and runs the search for it.
Location - https://i.imgur.com/3c5rm1N.png
2025-05-01 19:32:53 +05:00
Andrej730
cbf0fa88eb
Reenable black formatting workflow
...
Since 3b1e893 black formatter workflow basically had no use since it wasn't reporting any issues (no one checks workflow logs unless workflow failed) and wasn't reliable for catching syntax errors either (black formatter catches syntax errors only when they get in the way of it's formatting the code, but now we delegate to python itself to catch syntax errors, see 406962287c ).
And we also have some docs on how to apply black formatter - https://docs.bonsaibim.org/guides/development/code_style.html
2025-05-01 19:32:52 +05:00
Andrej730
6961ca8ce7
Fix bug creating a drawing if linked model schema doesn't match the main model schema
...
Co-Authored-By: Thomas Krijnen <1096535+aothms@users.noreply.github.com >
2025-05-01 19:32:52 +05:00
Andrej730
d758d4aef5
Windows - fix opening paths with special characters #6630
2025-05-01 19:32:52 +05:00
Andrej730
84240c870c
More consistent Windows Bonsai .ifc file association
...
Rely on `winreg` instead of running powershell scripts with cmd commands + .reg file + weird workflow with the need to retype cmd command. Also use HKCU instead of HKCR because it doesn't require admin rights.
If someone hearing about this feature for the first time, here's a short demo - https://imgur.com/a/dfG44pY (icon appears too but after explorer restart).
2025-05-01 19:32:52 +05:00
Andrej730
4483d8e958
Fix typo
2025-05-01 19:32:52 +05:00
Thomas Krijnen
70440050db
Bounds checking in variant array
2025-04-30 20:43:43 +02:00
Thomas Krijnen
bc7527a73b
Defensiveness against empty faces
2025-04-30 20:43:27 +02:00
Thomas Krijnen
c8ad1ba0ee
Fix faceset helper on advanced brep oriented edges #6604
2025-04-30 20:43:13 +02:00
Andrej730
c7a29d5604
Fix invalid IfcGrid cartesian points ( 774a770)
...
They were saved as 4d coordinates, not 2d.
2025-04-30 19:36:22 +05:00
Andrej730
814c16d3ee
IfcGrid - add placement by default to avoid invalid IFC
2025-04-30 19:36:22 +05:00
Andrej730
3bedbfb82c
Operator to run git diff on current ifc file
...
Short demo - https://imgur.com/a/TvnztNy
2025-04-30 19:36:22 +05:00
Andrej730
07f42b9126
typing
2025-04-30 19:36:21 +05:00
Andrej730
5b1da583d9
black .
2025-04-30 19:36:21 +05:00
Thomas Krijnen
c624162f09
partial_success_is_success #6589
2025-04-30 14:53:53 +02:00
FabioPiccinini
bc221cfa99
Use tool.Blender.get_view3d_area() to allow the use of separate windows ( #6617 )
2025-04-30 17:29:05 +05:00
c4rlosdias
5d02afa47e
clear list of entities failed when execute Tester
2025-04-30 17:27:06 +05:00
Andrej730
406962287c
ci-black-formatting - check syntax errors explicitly
2025-04-30 15:22:09 +05:00
Andrej730
241f7679b0
create_axis_curve - fix typo
2025-04-30 14:24:04 +05:00
Thomas Krijnen
0001071185
partial_success_is_success #6589
2025-04-29 22:03:18 +02:00
Thomas Krijnen
8d476c792d
todo notes #6589
2025-04-29 21:43:49 +02:00
Thomas Krijnen
97c7aefad7
One more self-intersection check in cgal kernel #6589
2025-04-29 21:39:08 +02:00
Andrej730
34cafc761a
Use actual text position instead of local pos rendering drawings text decorations
...
E.g. it's important if text is part of parametric array and it's local position may be constant, but it's constrainet by parent's position.
2025-04-29 19:26:43 +05:00
Andrej730
3fbde8db28
mesh.add_grid - display props in Blender project units
...
Example - https://i.imgur.com/koLiH7U.png
2025-04-29 19:26:42 +05:00
Andrej730
0b8fb41ac4
bim.add_array - guard from unexpected element types
...
So we can gradually expand it with the things we do know to support.
2025-04-29 19:26:18 +05:00
Andrej730
dc46afc227
Setup array constraints for annotations that use paramatric arrays
...
Previously you was able to add parametric array to annotations but constraint would be missing on file reload.
2025-04-29 19:26:18 +05:00
Andrej730
b8ee1d4d8d
import_ifc - skip setup_arrays for annotations #6636
2025-04-29 19:26:18 +05:00
Andrej730
ecf461e1e0
typing
2025-04-29 19:26:17 +05:00
Andrej730
1856eeddeb
Fix missed cases of loading unloaded linked files in 9316e0b ( #6403 )
2025-04-29 15:20:45 +05:00
Andrej730
afb2b9fdea
Fix issues printing drawing with projects linked by relative path
...
The fix in f9bf889 wasn't related to this problem and was targetting another bug.
2025-04-29 15:20:45 +05:00
Andrej730
af2cb2896a
Revert f9bf889 #6605
...
As this fix is no longer needed and covered by more general resolve_uri refactor
2025-04-29 15:20:45 +05:00
Andrej730
e792cf8fa0
get_uri, resolve_uri - refactor #6605
...
1) Use pathlib for consistency
2) Ensure consistent output - always use posix format and resolve paths (but keep the symlinks)
2025-04-29 15:20:45 +05:00
Thomas Krijnen
7b71e2ce2a
Don't set xstep.cascade.unit as it appears to result in scaling during export #6623
2025-04-29 10:53:01 +02:00
Thomas Krijnen
ce72337d3a
Mark settings as internal #6623
2025-04-29 10:52:27 +02:00
Bruno Postle
0e9ca541c4
Linux escape double-quotes in filenames #6630
...
Special chars ('#{)$ were already escaped, but " wasn't
2025-04-28 21:34:05 +01:00
Andrej730
784576b249
IFC Join - support joining non-ifc Blender objects into representation items
...
Short demo - https://imgur.com/a/o9MJiIr
2025-04-28 19:14:21 +05:00
Andrej730
5e26e55a8c
edit_meshlike_item - fix missing item object name update
2025-04-28 19:14:21 +05:00
Andrej730
1b110c4a84
reuse ifc.link for meshes
2025-04-28 19:14:20 +05:00
Andrej730
b94629133c
geometry.name_item_object
2025-04-28 19:14:20 +05:00
Andrej730
55e270c135
IFC Join - fix error joining representation items ( 6ce4b5d)
...
It was trying to reaccess already removed ifc_definition_id leading to an error. Now we update id with a new item.
2025-04-28 19:14:20 +05:00
Andrej730
308d628b1e
IFC Join - prevent joining rep items into non items
...
Because it was removing representation item object leaving Bonsai in confusing state, which may lead to errors later
2025-04-28 19:14:20 +05:00
Andrej730
5e16588eb7
IFC Join - prevent possible ghost ifc objects after join
...
Skip ifc objects of different type as they will be ignored by object.join either way and removing them produced ghost ifc objects.
2025-04-28 19:14:20 +05:00
Andrej730
e919a0643f
IFC Join - add description
2025-04-28 19:14:19 +05:00
Andrej730
9835ef977f
IFC Join - add poll check similar to object.join
2025-04-28 19:14:19 +05:00
Andrej730
10f84537de
typing
2025-04-28 19:14:19 +05:00
Massimo Fabbro
f9a0081b33
Fix bug in reload link ifc where in Windows gives an error if relative path is used
2025-04-28 06:22:13 +02:00
Massimo Fabbro
11462c388a
Purge unecessary code
2025-04-28 06:22:13 +02:00
Ryan Schultz
4bcd9639f4
whoops
2025-04-27 16:55:45 -05:00
Ryan Schultz
b856c40fe7
small tweak to previous commit
2025-04-27 16:54:34 -05:00
Ryan Schultz
dd1c529544
Fix #6601 - If you duplicate something it makes the duplicate the active object.
...
also bulk deselect all objects_to_remove to speed things up a little.
2025-04-27 13:12:07 -05:00
Andrej730
c9fbec4d46
Revert "Bump IOS build in Bonsai" #6589
...
This reverts commit 50e7728f95 .
2025-04-25 19:47:17 +05:00
Andrej730
c9437329ef
IFC Mesh Separate - fix bug in 52af302bef separating multiple elements
...
Forgot to clear selection after processing each object, it could have led to incorrect results since mesh.separate is applied to the selection later.
2025-04-25 19:47:17 +05:00
Andrej730
a09e971674
IFC Mesh Separate - fix not updated items decorator after some item was separated
...
Noticed fixing bug from #6285
2025-04-25 19:47:17 +05:00
Andrej730
8ac04e32e5
bim.import_representation_items - add description
2025-04-25 19:47:16 +05:00
Andrej730
0634dc83d4
IFC Mesh Separate - fix bug when separating an item wouldn't change separated item
...
Mentioned by Ryan in #6285
2025-04-25 19:47:16 +05:00
Andrej730
5dc4b18d3f
IFC Mesh Separate - reload representation just once if multiple items got separated
2025-04-25 19:47:16 +05:00
Andrej730
f84bca8017
IFC Mesh Separate - fix bug when new separated mesh wasn't relinked to a new ifc item
2025-04-25 19:47:16 +05:00
Andrej730
31a6c91c4b
core.duplicate_drawing - remove debug print statements and unused code
2025-04-25 19:47:16 +05:00
Andrej730
30242d859e
Fix core test for drawing duplication ( 0b1c049)
2025-04-25 19:47:16 +05:00
Andrej730
330799c799
core tests - very readable error for unpredicted return values
...
Previously:
E TypeError: Object of type Prophecy is not JSON serializable
Now:
E TypeError: Failed to serialize call: '{'name': 'duplicate_ifc_objects', 'args': ([<Prophecy for 'bonsai.core.tool.Ifc'>],), 'kwargs': {}}'.
E Possibly due to unpredicted return value for some call.
E See the list of the recent calls without return values:
E - {'name': 'get_object', 'args': ('annotation',), 'kwargs': {}}
E - {'name': 'run', 'args': ('group.assign_group',), 'kwargs': {'group': 'new_group', 'products': ['new_drawing']}}
E - {'name': 'run', 'args': ('group.edit_group',), 'kwargs': {'group': 'new_group', 'attributes': {'Name': 'unique_name', 'ObjectType': 'DRAWING'}}}
E - {'name': 'run', 'args': ('group.unassign_group',), 'kwargs': {'group': 'group', 'products': ['new_drawing']}}
2025-04-25 19:47:15 +05:00
Andrej730
e2c2234199
core tests - more readable errors
...
E.g. it shows now:
AttributeError: Interface 'bonsai.core.tool.Drawing' has no attribute 'weird_method'.
Instead of:
Prophecy <class 'abc.Drawing'> has no attribute weird_method
2025-04-25 19:47:15 +05:00
Andrej730
34efa9f459
typing
2025-04-25 19:47:15 +05:00
Andrej730
261de9b2be
entity_instance.__getattr__ - document some attributes conversion to Python
2025-04-25 19:47:15 +05:00
Andrej730
52af302bef
IFC Mesh Separate - add to object mode menu too for discoverability + support multiple selected elements
...
Short demo - https://imgur.com/a/PIuJ9Rq
2025-04-24 19:54:36 +05:00
Andrej730
529c74f6a9
create_camera - small optimization with util.shape
2025-04-24 19:54:36 +05:00
Andrej730
fd30a6b5eb
create_camera - small optimization with early return
2025-04-24 19:54:35 +05:00
Andrej730
82f25f50cc
Fix resaving camera to IFC on every drawing activation ( 32899eb)
...
`camera_props.update_representation` basically always returned True leading to `bim.update_representation` call on camera on every drawing activation. It was always True because `create_camera` wasn't setting `representation` and some other related camera props.
Changes:
- create_camera now setting representation
- ortho_scale, rather_x and raster_y now explicitly is tied to width, height and drawing scale props, not on depsgraph update. Depsgraph update wasn't allowing to set these props in time for create_camera to record representation correctly
- depsgraph update now only in charge of ortho_scale (just to be sure user won't touch it by hand) and scene.render resolution
2025-04-24 19:54:35 +05:00
Andrej730
d0dc31588d
typing
2025-04-24 19:54:35 +05:00
Andrej730
68f71c715e
Fix invalid cprops after camera data is recreated
...
Mentioned in #5676 , discoverd after 476604202a .
`bim.update_representation` removes previous `camera.data` and adds a new one making cprops invalid possibly leading to either invalid prop values or crashes (https://projects.blender.org/blender/blender/issues/137889 ).
2025-04-23 19:22:31 +05:00
Andrej730
6913060f0c
bim.expand_target_view - remove trailing space from description
2025-04-23 19:22:31 +05:00
Andrej730
4427c73816
bim.override_mesh_separate - handle possible mode mismatch more gracefully
...
Other options LOOSE_PARTS and MATERIAL do support object mode.
2025-04-22 20:05:32 +05:00
Andrej730
d188155fac
bim.override_mesh_separate - fix bug with skip_save
...
Previously you would use bim.override_mesh_separate from UI with any of the available `type` options, then running operator separately would leading to running this operator from F3 to always choose this options (possibly leading to errors in objects mode)
2025-04-22 20:05:31 +05:00
Andrej730
598dfd75e7
bim.override_origin_set - use operator_enum for menu
2025-04-22 20:05:31 +05:00
Andrej730
5c63cd7981
bim.override_mesh_separate - use operator_enum, hide Blender Separate
...
as it's now integrated in IFC separate and using Blender Separate for ifc elements is not safe
2025-04-22 20:05:31 +05:00
Andrej730
0b22333b69
bim.override_mesh_separate - integrate mesh.separate
...
mesh.separate will be used for all other selected non-ifc objects.
Included some code to support multple objects but there are still a few issue with it, I'll look into soon.
2025-04-22 20:05:31 +05:00
Andrej730
69481c2d63
bim.override_mesh_separate - fix bug separating elements ( 7bc4b51)
...
`obj` variable was used but never passed to `separate_element`
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 458, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\geometry\operator.py", line 105, in _execute
self.separate_element(element)
File "\bonsai\bim\module\geometry\operator.py", line 175, in separate_element
new_objs = [obj]
^^^
NameError: name 'obj' is not defined
```
2025-04-22 20:05:31 +05:00
Andrej730
671c887201
bim.override_mesh_separate - invoke menu if called without argument
...
Mimicking default mesh.separate behaviour.
@Gorgious56 I don't know if you've seen this before, but you might be interested - I've found a way to figure if operator wasn't called without any arguments.
2025-04-22 20:05:30 +05:00
Andrej730
0a6fbeccb0
bim.override_mesh_separate - use original Blender enum and description
2025-04-22 20:05:30 +05:00
Andrej730
4b3ca11c12
typing
2025-04-22 20:05:30 +05:00
Andrej730
f9bf8897bc
Fix error linking ifc files with relative filepaths going upwards
...
Mentioned in https://github.com/IfcOpenShell/IfcOpenShell/pull/6540#issuecomment-2820938852
2025-04-22 16:37:05 +05:00
Andrej730
932939099a
Add target_view prop to camera
...
This property was already set in 50b41f5 but Blender property was missing. Though nowit's not very useful as it just writes value to pset.
2025-04-22 16:37:05 +05:00
Andrej730
8d31d93531
typing
2025-04-22 16:37:05 +05:00
Andrej730
5c4f157624
readable_ifc_duration - add doc-string and note
2025-04-21 19:00:25 +05:00
Andrej730
f87c694432
Fix issue with custom diagram scale ( 1d5891f)
...
It was referring to non-existent prop "custom_diagram_scale"
2025-04-21 19:00:25 +05:00
Andrej730
38eedffd80
tool.Ifc - add some doc-strings
2025-04-21 19:00:25 +05:00
Andrej730
305439d27e
Link.name - fix description
...
After f8828d3 we store linked filepath in .ifc project, so we don't support path relative to .blend anymore.
2025-04-21 19:00:24 +05:00
Andrej730
908bf02098
ifc5d - strip " Cost" suffix when importing csv
...
" Cost" is a suffix is added on export, so it makes to get rid of it on import.
2025-04-21 19:00:24 +05:00
Andrej730
c6176d364f
ifc5d - use filename for imported schedule name
...
So it will be in sync with how export works.
Removed non_sor_fields is unrelated - forgot to remove before.
2025-04-21 19:00:24 +05:00
Andrej730
068814c095
bim.assign_document - add to documents UI
2025-04-21 19:00:24 +05:00
Andrej730
476604202a
typing
2025-04-21 19:00:24 +05:00
Andrej730
558bda1aea
black .
2025-04-21 19:00:23 +05:00
Dion Moult
426f1b91f2
See #2783 . Don't show 0 durations for clarity.
2025-04-21 22:59:14 +10:00
Dion Moult
d1b1b08174
See #2783 . Duration parsing no longer uses isodate to remain faithful to formatting.
2025-04-21 22:39:23 +10:00
Thomas Krijnen
c1513190d4
Debug build_win.yml
2025-04-21 13:17:14 +02:00
Andrej730
50e7728f95
Bump IOS build in Bonsai
...
New build resolves #6529 #6576
2025-04-21 13:57:25 +05:00
Andrej730
4e00a8d596
bonsai Makefile - specify shell explicitly
...
To avoid Windows trying to use cmd
2025-04-21 13:57:25 +05:00
Massimo Fabbro
266cc32336
Add calculating functions for earthworks
2025-04-21 10:48:00 +02:00
Andrej730
f8ad05cb54
Use isodate to parse iso durations #2783
...
Related #6585
Co-Authored-By: sboddy <12862430+sboddy@users.noreply.github.com >
2025-04-21 12:45:40 +05:00
Andrej730
311f9b96e7
black .
2025-04-21 12:45:40 +05:00
Dion Moult
56bfe80b3b
Fix #6501 . Fix #6104 . Fix #6189 . You can now change wall offset convention after drawing walls.
...
People kept on getting confused with the align tool thinking it changed
the baseline to reference line offset whereas it actually just aligned
the object bodies. This tool now does exactly that.
Also start refactoring the "DumbWall" classes into the tools so we can
test them properly.
2025-04-21 17:17:09 +10:00
Dion Moult
2db6b860b2
See #6501 . Fix bug where wall alignment didn't strictly check for poll requirements prior to executing operator.
2025-04-21 15:38:26 +10:00
Ryan Schultz
5af2c3914a
When \n stopped the world. fix previous commit.
...
```
os: Windows
os_version: 10.0.19045
python_version: 3.11.7
architecture: ('64bit', 'WindowsPE')
machine: AMD64
processor: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
blender_version: 4.2.1 LTS
bonsai_version: 0.0.0
bonsai_commit_hash: f8ebc2d
bonsai_commit_date: 2025-04-20T10:30:03-05:00
last_actions:
last_error: Traceback (most recent call last):
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 1003, in finish_loading_project
bpy.ops.bim.load_project_elements()
File "c:\Program Files\Blender Foundation\Blender 4.2\4.2\scripts\modules\bpy\ops.py", line 109, in __call__
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Python: Traceback (most recent call last):
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 1063, in execute
bonsai.bim.schema.reload(self.file.schema_identifier)
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 67, in reload
ifc = IfcSchema(schema_identifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 43, in __init__
self.load_pset_templates()
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 57, in load_pset_templates
self.psetqto.templates.append(ifcopenshell.open(path))
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\__init__.py", line 183, in open
return file(f)
^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 295, in __init__
raise exc(msg)
ifcopenshell.Error: Syntax error during parse, check logs
Location: c:\Program Files\Blender Foundation\Blender 4.2\4.2\scripts\modules\bpy\ops.py:109
ifc: projection lines.ifc
schema: IFC4
preprocessor_version: IfcOpenShell 0.0.0
originating_system: Bonsai 0.8.3-alpha250417-f3228c3
```
2025-04-20 11:20:05 -05:00
Ryan Schultz
f8ebc2d156
Property in EPset_Drawing for SVG classes that 'rise to the top'. per: https://community.osarch.org/discussion/comment/22689/#Comment_22689
2025-04-20 10:30:03 -05:00
Thomas Krijnen
f3228c31f8
Debug build_win.yml
2025-04-20 08:42:03 +02:00
Dion Moult
86d481f4f8
Revert "Fix #4130 . Skip invalid topology."
...
This reverts commit bb598d848a .
2025-04-20 15:07:45 +10:00
Ryan Schultz
05f79c844a
For cut lines through terrain. I still plan to make these a preference, however.
2025-04-19 12:46:52 -05:00
Thomas Krijnen
b87a7b3d0a
cgal kernel - conditionally reorient extrusion basis #6529
2025-04-19 18:50:51 +02:00
Massimo Fabbro
e54acd83f8
See #5149
...
Now it is possible to assign a resource also to a cost item in a schedule of rates
2025-04-19 16:40:47 +02:00
Massimo Fabbro
f8e52c8a12
See #6570 . Add a button to refresh an imported csv file
...
Now the imported csv filepath is stored so it is possible to refresh the cost schedule without the need of reimporting it
2025-04-19 16:40:24 +02:00
Dion Moult
0608f92bc4
See #4699 . Potentially fix crashes by only loading IFC data once and caching in decorator.
2025-04-19 21:19:18 +10:00
Dion Moult
df18108406
Add tests for sheet creation and drawing / sheet generation
2025-04-19 17:36:21 +10:00
Thomas Krijnen
b64dcfd4b8
Fix compilation on schemas prior to ifc4 #6549
2025-04-19 09:21:22 +02:00
Dion Moult
d1493b4234
Fix #5571 . No longer create "RASTER" document references. Process all images at sheet creation time.
...
I think this was overengineered and a bad decision. RASTER is a
technical detail, not a semantic label (in contrast with whether it's a
title or a drawing).
2025-04-19 16:53:14 +10:00
Dion Moult
fb34af9162
Fix #6575 . Regression in moving aggregates.
2025-04-19 15:30:46 +10:00
Dion Moult
bb598d848a
Fix #4130 . Skip invalid topology.
2025-04-19 15:25:13 +10:00
Dion Moult
502cf6f439
Standalone script to generate drawings for debugging
2025-04-19 14:59:54 +10:00
Dion Moult
9875fce579
Revert "See #6574 . Bump IOS."
...
This reverts commit 90198115b6 .
2025-04-19 14:58:07 +10:00
Dion Moult
90198115b6
See #6574 . Bump IOS.
2025-04-19 14:29:20 +10:00
Dion Moult
4896a69981
Add test cases for drawing duplication and shapely fill mode.
2025-04-19 13:42:36 +10:00
Dion Moult
3390f58c88
Fix failing tests
2025-04-19 08:19:25 +10:00
Andrej730
917d28a7b1
ifc5d cost schedule export - guess unit from quantity type
2025-04-18 19:25:46 +05:00
Andrej730
bebaa4d1bd
ifc5d cost import - fix unexpected columns assigned as values
...
Mentioned in #5492 - id, index and lots of others were assigned as values at import.
2025-04-18 19:25:46 +05:00
Andrej730
93a4f4980a
Revert ddd7dff75e
...
I guess after all it's not very reliable idea since it's possible to have a cost schedule without quantities (even non-SoR) and it's giving users false assumptions that they don't need to worry about "Is Schedule of Rates" flag in some cases.
2025-04-18 19:25:46 +05:00
Andrej730
1e30eae1d7
ifc5d - continue refactor
2025-04-18 19:25:46 +05:00
Andrej730
ff90396bcf
typing
2025-04-18 19:25:46 +05:00
Dion Moult
a030b84fc5
Typo
2025-04-18 19:50:03 +10:00
Dion Moult
0b1c049e81
Fix #5137 . Fix bug where duplicated drawings didn't duplicate properly. Duplicating drawings now shares code with regular object duplication.
...
Previously code wasn't shared and duplication was reimplemented in an
incomplete way. Now it's shared which means that it's also more
sophisticated (i.e. does all the linked aggregate magic).
Also the duplicate code seems super complicated especially with arrays
and linked aggregates. Moving it into a tool makes it more reusable and
we can test it more granularly in the future.
2025-04-18 19:47:54 +10:00
Dion Moult
74390c0529
Fix bug where duplication outside IFC projects didn't use native Blender operators.
...
Historically we overrode the operator, so we had to reinvent native
functionality. Now we only override the hotkey, so we can reuse native
functionality. This also means that things we failed to reinvent like
duplicating unlinked animation data now works properly. This bit me when
I was doing animation work and Bonsai's duplicate messed things up.
2025-04-18 18:28:15 +10:00
Thomas Krijnen
21d39d8a23
Use exact topology points at parametric range bounds to guarantee welding #4487
2025-04-18 10:08:57 +02:00
Thomas Krijnen
ad0f62f88f
Don't terminate on invalid placement location #4883
2025-04-18 09:17:19 +02:00
Andrej730
85d8fa49ab
ifc5d - add examples for other formats
2025-04-17 19:07:20 +05:00
Andrej730
c5f4b53555
bim.export_cost_schedules - fix bug with overridden prop value
...
E.g. if you would call this operator for 1 specific cost schedule, Blender would remember it's value and would keep on using it even if operator is going to be called outside this schedule
2025-04-17 18:55:42 +05:00
Andrej730
016cfa94d2
export_cost_schedules - fix confusing filename
...
Mentioned in #6545
Override filename to be always empty, so user won't have an expectation that csvs will be saved as a single file (currently they're always saved to a directory).
2025-04-17 18:55:41 +05:00
Andrej730
007af80234
ifc5d readme - add notes for possible missing columns
2025-04-17 18:55:41 +05:00
Andrej730
576a206d5b
Fix typo
2025-04-17 18:55:41 +05:00
Andrej730
4cf6411a61
ifc5d.csv2ifc - add tests for sample files
2025-04-17 18:55:41 +05:00
Andrej730
37a0b3f6a9
Csv2Ifc - move arguments to init for a simpler setup
2025-04-17 18:55:41 +05:00
Andrej730
209caec49a
csv2ifc import - rename required column from hierarchy to index #5492
...
To prevent confusion with 'Hierarchy' column that's added on the export and make current and export compatible.
Indices now always start from 1 for consistency.
2025-04-17 18:55:41 +05:00
Andrej730
bebb29f486
ifc5d csv export - rename Description column to Name #5492
...
Because actually it is a name and this is the column name that csv2ifc expects.
2025-04-17 18:55:40 +05:00
Andrej730
deb6e3779e
ifc5d - refactor
2025-04-17 18:55:40 +05:00
Andrej730
a6c37771fc
typing
2025-04-17 18:55:40 +05:00
Andrej730
95f754d2df
black .
2025-04-17 18:55:40 +05:00
Thomas Krijnen
030dc6460a
Prevent double free in iterator with output=native
2025-04-17 15:26:18 +02:00
Thomas Krijnen
360e08f268
SVG matrix #5676
2025-04-17 15:25:35 +02:00
Sebastian Friston
dc84d85f7b
ISSUE #6340 check if material is null before trying to get id
2025-04-17 14:33:07 +02:00
Dion Moult
e16d8907f3
See #5676 . Shapely fill calculation on drawings is 100x faster due to Blender raycasting instead of tree.select_ray.
2025-04-17 22:31:23 +10:00
Dion Moult
52cada180b
Fix #4107 . Bug where shapely used incorrect raycast coordinates causing fills to not show.
...
This has been around for 2 years, either it was never noticed or
something changed?
2025-04-17 19:38:31 +10:00
Gorgious56
1999216ea5
Use utilities to fetch collection hierarchy
...
I don't think this offers a noticeable performance gain but feels more idiomatic since it is available with the API.
2025-04-17 09:10:28 +02:00
Dion Moult
5a6476a57f
Fix #3673 . Bug where a split wall broke flipped doors.
...
Instead of regenerating fills upon splitting walls, placements are
preserved exactly.
2025-04-17 16:28:05 +10:00
Bruno Perdigão
c45e3b0099
See #6537 . Fix how OverrideMove works when dealing with multiple levels of aggregates.
2025-04-16 20:46:39 -03:00
Bruno Perdigão
c9fc543e91
See #6537 . Improve how aggregate mode behaves when dealing with multiple levels of aggregates.
2025-04-16 20:23:18 -03:00
Andrej730
9994fec571
ifc5d - fix bug exporting multiple csvs with the same name
2025-04-16 19:24:16 +05:00
Andrej730
b0aeabf2f6
ifc5d .csv cost schedule - save as unicode
...
Previously it was saved using Windows 1252 and importing it would fail with an error like so:
```
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 650: invalid start byte
```
2025-04-16 19:24:16 +05:00
Andrej730
ddd7dff75e
ifc5d csv2ifc - autodetect schedule of rates by the header structure
2025-04-16 19:24:16 +05:00
Andrej730
7acd13cb82
ifc5d readme - mention format examples
2025-04-16 19:24:15 +05:00
Andrej730
6499ac41cf
ifc5d typing and refactor
...
no functional changes
2025-04-16 19:24:15 +05:00
Dion Moult
e8b74245ce
Update VERSION
2025-04-16 16:27:16 +10:00
Andrej730
ecee3781e4
Fix more missing Blender descriptions leading to crashes #6420
2025-04-15 19:43:38 +05:00
Andrej730
52f949b2dc
assign_class - avoid empty geometries and assigning shape reprs to structural items
2025-04-15 19:43:38 +05:00
Andrej730
cb7e04f61a
assign_class - replace object with empty if no representation was added
...
Same goal as ffffcc576e - prevent user confusion when they reload IFC file and see the representation is gone.
2025-04-15 19:43:38 +05:00
Andrej730
b59e5b076d
get_pset, get_psets - don't fail on ifc2x3 profile psets and partially handle ifc2x3 material psets #6538
2025-04-14 18:59:47 +05:00
Andrej730
1516237537
Allow Undefined topology representations for IfcStructuralPointConnection #6459
...
Because apparently it's not invalid IFC.
IfcStructuralPointConnection documentation says that they should have a topology representation with a IfcVertexPoint but it doesn't restict this representation from having Undefined type if it does have a IfcVertexPoint as it's item.
2025-04-14 17:49:17 +05:00
Andrej730
53cd5f834e
add_mesh_representation - reuse shape builder + numpy input support
2025-04-14 16:17:59 +05:00
Andrej730
6dc6fddd0e
add_mesh_representation - expand documentation and typing #6541
2025-04-14 16:17:59 +05:00
Dion Moult
52c8cc0a72
Fix #6140 . You can configure the force snap setting.
...
I can't figure out a more elegant way of doing this. I.e. I don't know
how to detect whether or not the user has explicitly set their own snap
default.
2025-04-13 17:57:08 +10:00
Dion Moult
463473b959
Fix #6359 . No longer sync materials at export sync we have a proper material / style manager now not Blender materials.
2025-04-13 16:09:36 +10:00
Dion Moult
fd0c578995
No longer sync edited objects since we don't defer representation updates anymore due to item mode.
2025-04-13 16:06:15 +10:00
Dion Moult
74fbe94ed4
Update feature_request.yml
2025-04-13 12:10:28 +10:00
Dion Moult
38002e1ee2
Update and rename feature_request.md to feature_request.yml
2025-04-13 12:08:28 +10:00
Dion Moult
58b070d22d
Update and rename bug_report.md to bug_report.yml
2025-04-13 12:06:46 +10:00
Dion Moult
e2b119bf9b
Update feature_request.md
2025-04-13 11:42:53 +10:00
Dion Moult
8cf3807c2c
Update feature_request.md
2025-04-13 11:42:11 +10:00
Dion Moult
ad3d0fecb2
Describe other channels in issue template
2025-04-13 11:38:33 +10:00
Dion Moult
fcfe6f97c3
Update bug_report.md
2025-04-13 11:32:30 +10:00
Dion Moult
c0190b5065
Fix #6452 . Fix #6478 . Disable camera clipping due to unpredictable Blender behaviour (reported upstream).
...
https://projects.blender.org/blender/blender/issues/137384
2025-04-13 11:20:57 +10:00
Andrej730
e596ac6b1b
dev_environment.bat - ensure symlinks are loaded #6473
2025-04-11 19:55:27 +05:00
Andrej730
d9ed6a4950
Fix bim test after 1e3f1e7dfc
2025-04-11 19:55:26 +05:00
Andrej730
a49ccfcfc8
test_append_asset - fix skipped test
...
It wasn't appending library_material so test would never fail
2025-04-11 19:55:26 +05:00
Andrej730
7974d8a0d0
project.append_asset - test assume_asset_uniqueness_by_name=False
2025-04-11 19:55:26 +05:00
Andrej730
f00e77ef6c
bim.validate_ifc_assets Bonsai operator #6243
...
There's now operator to check that all profiles, styles, materials in the current project have a unique name. Which is important since it's used when we append assets to ensure there are no duplicated assets.
Operator location - https://i.imgur.com/bvXjZ8Y.png
Example output:
```
IfcMaterial name 'KnownUnknown' is used by multiple assets:
- # 260=IfcMaterial('KnownUnknown',$,$)
- # 1220=IfcMaterial('KnownUnknown',$,$)
Found issues validating IfcProfileDef assets.
IfcProfileDef name 'DEMO-C' is used by multiple assets:
- # 266=IfcCShapeProfileDef(.AREA.,'DEMO-C',$,0.2,0.1,0.0015,0.03,0.005)
- # 261=IfcIShapeProfileDef(.AREA.,'DEMO-C',$,0.1,0.2,0.005,0.01,0.005,$,$)
Found issues validating IfcPresentationStyle assets.
IfcPresentationStyle name 'Frame' is used by multiple assets:
- # 363=IfcSurfaceStyle('Frame',.BOTH.,(# 362))
- # 1221=IfcSurfaceStyle('Frame',.BOTH.,(# 1222))
```
2025-04-11 19:55:26 +05:00
Andrej730
fc37cca1d0
ExtractElements - expose assume_asset_uniqueness_by_name option #6243
...
I'd much rather not expose this option to ifcpatch but I guess models are different and there should be a way to extract elements even if assets name uniqueness is not ensured (since it's not IFC requirement anyway). But it may cause duplicated assets.
2025-04-11 19:55:26 +05:00
Andrej730
53da00a5b7
append_asset - fix possible errors with assume_asset_uniqueness_by_name=False after f43e33b
...
If `assume_asset_uniqueness_by_name` is `False`, then we don't really need `SafeRemovalContext`.
2025-04-11 19:55:25 +05:00
Andrej730
b5bc53bdf6
Renaming style from UI not to add .xxx Blender suffix to style name
...
Set style name explicitly, this way what user does in UI is what they get in IFC.
Previously confusingly if you set style name to "Glass" and "Glass" already existed, you would get "Glass.001" style internally but "Glass" name in UI.
2025-04-11 19:55:25 +05:00
Andrej730
bc0fbf744a
bim.search - set found object as active
...
As sometimes it's hard of find a selected object in outliner if it's not active.
2025-04-11 19:55:25 +05:00
Andrej730
53b26a9b66
typing
2025-04-11 19:55:25 +05:00
Thomas Krijnen
858e73c9d9
IfcPropertySetDefinitionSet in xml serializer #6330
2025-04-11 15:53:27 +02:00
Thomas Krijnen
952400bd58
Support defined types with instance references in parser (IfcPropertySetDefinitionSet; #6330 )
2025-04-11 15:52:40 +02:00
Andrej730
ffffcc576e
assign_class - reload representation after assignment
...
Just to make sure user will set what was actually saved to IFC right away. To prevent confusion when they see it only after model was reloaded completely.
2025-04-10 19:16:04 +05:00
Andrej730
d8102d848d
Fix bug with the first object rename after class assignment
...
The problem was that during class assignment, it was setting the object name and `is_renaming` flag but only then linking to IFC. Since object wasn't linked to IFC, name callback wasn't triggered and `is_renaming` wasn't reset and first rename wouldn't work.
Now it's just not setting the flag if object is not linked to IFC, as there's no callback then and don't need to protect from it.
2025-04-10 17:44:06 +05:00
Andrej730
9407faf1f9
vs-cfg.md - support cmake 4.0.0
2025-04-10 17:44:06 +05:00
Andrej730
1e3f1e7dfc
Show assign/reference container buttons if container has no elements #6514
2025-04-10 10:54:46 +05:00
Andrej730
8aad28c730
bim.assign_class - skip ifc objects to prevent errors
2025-04-09 18:26:55 +05:00
Andrej730
81943ec9e5
bim.assign_class - apply modifiers
...
Noticed working on #6500
2025-04-09 18:26:55 +05:00
Andrej730
5b15de50b6
bim.assign_class - use blender operators in a more safe way
...
Use temp_override or modify selection not to modify some object by accident, because this operator can also be called not from UI but by providing `object` argument.
2025-04-09 18:26:54 +05:00
Andrej730
4d50dce16d
bim.assign_class - use get_selected_objects
2025-04-09 18:26:54 +05:00
Andrej730
69b5d0940f
bim.assign_class - flip normals if matrix is negative #6500
...
object.transform_apply doesn't preserve normals (https://projects.blender.org/blender/blender/issues/102266 )
2025-04-09 18:26:54 +05:00
Andrej730
273d6c1039
Experimental geo nodes integration
2025-04-09 18:26:54 +05:00
Andrej730
24ef03c96e
bim.assign_container - skip aggregated elements #6514
...
New description - https://i.imgur.com/UeSPtEe.png
2025-04-09 18:26:54 +05:00
Andrej730
cc4553d3c9
bim.aggregate_assign_object - clarification
2025-04-09 18:26:54 +05:00
Andrej730
cf1f74e260
typing
2025-04-09 18:26:53 +05:00
Andrej730
3052c6e578
black .
2025-04-09 18:26:53 +05:00
Bruno Perdigão
0eb70b7fc3
See #6397 - Fix extrusion profile editing issue.
...
Profile transformations now correctly use the perpendicular value of the offset.
2025-04-08 20:07:46 -03:00
Bruno Perdigão
eb863bb2aa
Snap - Filter out 2D bounding boxes that are too far from the camera view.
2025-04-08 18:11:01 -03:00
Andrej730
345a6e72d9
Make referencing in structure more discoverable #6514
...
Didn't wanted to disrupt existing operators, but we probably should deprecate them.
2025-04-08 15:54:41 +05:00
Andrej730
8b775ea30f
bim.assign_container - small clarification
2025-04-08 15:54:41 +05:00
Thomas Krijnen
b712f30ad3
Don't assign material as style when it doesn't have any styles #6314
2025-04-07 21:25:33 +02:00
Andrej730
0bbe1aad5b
Fix UI errors in Blender 4.2 (missing MOUSE_MMB_SCROLL icon)
...
Noticed #6515
2025-04-07 16:20:22 +05:00
Andrej730
29de264b43
ifc5d - remove Qto_BodyGeometryValidation from ifc4x3 base qtos ( 6c04669)
...
As it's not part of base quantities and it would be unexpected for user if some additional qto would start calculating for every IfcProduct.
2025-04-07 16:20:22 +05:00
Andrej730
f4714d2012
ifc5d - avoid overriding results from previous queries after f63d6b8
2025-04-07 16:20:21 +05:00
Andrej730
8bfdabab80
ifc5d IfcOpenShell.calculate - warn on missing formulas
2025-04-07 16:20:21 +05:00
Andrej730
50c1220730
typing
2025-04-07 16:20:21 +05:00
Bruno Perdigão
c280550e30
Measure Tool - fix issue where the area highlight was incorrectly displayed in polyline mode.
2025-04-05 11:55:05 -03:00
Bruno Perdigão
2bf303686c
Snap - Improve how viewport zoom affects snapping.
2025-04-05 11:45:56 -03:00
Bruno Perdigão
bb91416c4e
Snap - Fix creation of 2D bounding boxes
...
Previously, objects with 2D bounding boxes outside the view were still being added. This issue is now resolved.
Additionally, implement simple AABB detection to check if the bounding box is within the viewport.
2025-04-04 20:19:25 -03:00
Bruno Perdigão
47e8b978af
Snap - filter visible objects before creating the 2d bouding box
2025-04-04 18:38:07 -03:00
Andrej730
50eae4ae19
Fix typo, expose Extend To Underside description
2025-04-04 19:04:03 +05:00
Andrej730
979183b64b
Make adding openings more discoverable
...
1) It's back as Shift-O hotkey in BIM tool - https://i.imgur.com/XfmfqNY.png
2) It's always visible in Voids UI - https://i.imgur.com/rO6nOSw.png
2025-04-04 19:04:03 +05:00
Andrej730
dc2f788326
model/wall.py - poll messages
2025-04-04 19:04:03 +05:00
Andrej730
7d12880eb9
BIM Tool - add descriptions to "Align" section buttons
2025-04-04 19:03:08 +05:00
Andrej730
6676c7f62e
typing
2025-04-04 19:03:08 +05:00
Thomas Krijnen
c0e8c3d1b5
Update ci-ifcopenshell-docker.yml - action versions
2025-04-04 14:11:41 +02:00
Andrej730
e9245efd37
bim.browse_external_style - cache enum items #6496 #5673
2025-04-03 19:37:51 +05:00
Andrej730
de287395d2
Bump Blender build in tests to 4.4
2025-04-03 19:18:42 +05:00
Andrej730
938d72ebe3
Fix UI issue with props missing ( 65c99c5)
2025-04-03 18:06:49 +05:00
Andrej730
605c86afc5
Fix void bim tests after bim.add_potential_opening was removed
2025-04-03 18:06:48 +05:00
Andrej730
68cf8ee247
BIM tests - replace some class assignment with PanelSpy version
2025-04-03 18:06:48 +05:00
Andrej730
a452d1d361
Fix failing bim tests after 5b33c60
2025-04-03 18:06:48 +05:00
Andrej730
71067e4a14
Fix style test in Blender 4.4
2025-04-03 18:06:48 +05:00
Andrej730
7bacdbf8dd
typing
2025-04-03 17:45:49 +05:00
Thomas Krijnen
54c1dfdb77
Update ci-ifcopenshell-docker.yml
2025-04-03 09:29:49 +02:00
Thomas Krijnen
834123ad14
Update release.yml - add workflow_dispatch
2025-04-03 09:27:32 +02:00
Andrej730
3cbab975d5
Fix tests after ea84f82
2025-04-02 19:29:43 +05:00
Andrej730
0315542237
geometry.remove_representation_item - add element argument
...
Use explicit element argument instead of props.representation_obj as representation_obj may not be there (e.g. removing rep items without item mode) or some other object might be in item mode and then booleans won't be unmarked.
Found the issue because of the failing test 🥳
2025-04-02 19:29:43 +05:00
Andrej730
156cca5932
representation_obj - add a note
2025-04-02 19:29:43 +05:00
Andrej730
4672fc341f
Fix representation items / booleans UI prioritizing item mode object over active obj
...
It led to confusion when object A would be in Item Mode and you open properties for object B and try to show rep items for B and UI would be unresponsive.
2025-04-02 19:29:43 +05:00
Andrej730
f69b02cad9
bim.override_object_join - a bit more readable error message
...
Use name instead of bpy_struct repr, add a line split.
2025-04-02 19:29:42 +05:00
Andrej730
40af3f0495
Fix bug adding brick namespace in ed0b1c5
...
brick graph has bool evaluation too
2025-04-02 19:29:42 +05:00
Andrej730
0dd42c1fb2
fix core system tests after 5b9ef23
2025-04-02 19:29:42 +05:00
Andrej730
0990dfd372
biim.load_link - error if file does not exist
...
Noticed investigating #6403
2025-04-02 12:42:02 +05:00
Andrej730
9316e0bff0
Skip loading linked models in the drawing if they're unloaded #6403
...
As it's probably unintuitive (user can't see the linked model in viewport but we still load it) and user then have no option to keep model in Links but keep it unloaded.
Also producing traceback below if linked file is missing.
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\drawing\operator.py", line 299, in execute
linework_svg = self.generate_linework(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\drawing\operator.py", line 828, in generate_linework
IfcStore.session_files[link.name] = ifcopenshell.open(link.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\__init__.py", line 162, in open
raise FileNotFoundError(f"File does not exist: '{path}'.")
FileNotFoundError: File does not exist: 'D:\Dropbox\GitLab\OD_Library\BIM\OD_Revit_Template - 2020 - IFC4 - Reference View.ifc'.
```
2025-04-02 12:42:02 +05:00
Andrej730
bc709f06f7
Fix Blender 4.4 crashing on Mac (decorators issues) #6461
2025-04-01 19:16:16 +05:00
Andrej730
cc031a23cb
black .
2025-04-01 19:16:16 +05:00
Andrej730
614b71e0c6
gitignore compiled ifcopenshell_wrapper files on mac/linux #4686
2025-04-01 19:10:05 +05:00
Andrej730
66329f07cb
dev_environment.sh - validate input paths
2025-04-01 19:10:05 +05:00
falken10vdl
0039f376ca
Update operator.py so argv parameters in Windows are correctly parsed
...
Currently teh parameters that have spaces are not properly parsed when invoking os.execv.
Ej:
We start blender with some parameters and then invoke bim.restart_blender:
C:\Users\falke>c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe --debug --python-expr "import bpy; bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc', should_start_fresh_session=True, use_detailed_tooltip=True)"
TBBmalloc: skip allocation functions replacement in ucrtbase.dll: unknown prologue for function _msize
Switching to fully guarded memory allocator.
Blender 4.2.8 LTS
Build: 2025-03-18 01:34:37 Windows Release
argv[0] = c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe
argv[1] = --debug
argv[2] = --python-expr
argv[3] = import bpy; bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc', should_start_fresh_session=True, use_detailed_tooltip=True)
Starting import process :: 0.00
Loading file :: 0.00
Calculate unit scale :: 0.00
Process context filter :: 0.01
Calculate model offset :: 0.00
Set units :: 0.00
Create project :: 0.00
Process element filter :: 0.00
Create styles :: 0.00
Parsing native elements :: 0.00
Done creating geometry
Create native elements :: 0.00
Done creating geometry
Create elements :: 0.03
Create annotations :: 0.00
Create positioning elements :: 0.00
0 / 3 elements processed ...
Create spatial elements :: 0.00
Create structural items :: 0.00
Create element types :: 0.00
Place objects in collections :: 0.00
Setup arrays :: 0.00
Load linked models :: 0.00
Add project to scene :: 0.00
Setting default context :: 0.01
Import finished in 0.06 seconds
No MySQL support
Writing userprefs: "C:\Users\falke\AppData\Roaming\Blender Foundation\Blender\4.2\config\userpref.blend" ok
Info: Preferences saved
TBBmalloc: skip allocation functions replacement in ucrtbase.dll: unknown prologue for function _msize
Switching to fully guarded memory allocator.
Blender 4.2.8 LTS
Build: 2025-03-18 01:34:37 Windows Release
argv[0] = c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe
argv[1] = --debug
argv[2] = --python-expr
argv[3] = import
argv[4] = bpy;
argv[5] = bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc',
argv[6] = should_start_fresh_session=True,
argv[7] = use_detailed_tooltip=True)
C:\Users\falke> File "<string>", line 1
import
^
SyntaxError: invalid syntax
Error: Cannot read file "C:\Users\falke\bpy;": No such file or directory
Error: argument has no '.blend' file extension, not using as new file, exiting! C:\Users\falke\bpy;
Blender quit
By adding the proposed list2cmdline based solution, the commandline is properly formated before invoking os.execv
Thanks!
2025-04-01 18:09:25 +11:00
Dion Moult
c307871d37
Fix #6472 . Typo in IfcTester test cases.
2025-04-01 17:56:51 +11:00
Andrej730
31c9f60bca
Fix errors creating objects if default container is hidden #6456
2025-04-01 11:32:14 +05:00
Dion Moult
93e7d92076
Fix bug where removing a context (used by representations) left invalid representations
2025-04-01 17:28:22 +11:00
Dion Moult
16f09655b8
Bump version numbers in dev scripts
2025-04-01 14:21:34 +11:00
Dion Moult
b6115a6d71
Fix bug where adding objects relying on missing contexts would fail
2025-04-01 14:20:56 +11:00
Richard Brice
f0b5e93737
Fixes problem evaluating gradient and segmented reference curves with start locations offset from start of base curve.
2025-03-31 16:18:05 -07:00
Andrej730
9895302c9d
bim.add_boundary - add description/error reports
...
Example description - https://i.imgur.com/jn3y2KU.png
fyi @steverugi
2025-03-31 19:10:21 +05:00
Andrej730
8f5f346fa4
boundary/create_mesh - small optimizations
2025-03-31 19:10:21 +05:00
Andrej730
6adf5d957a
Fix error adding a space boundary ( a7509db)
2025-03-31 19:10:21 +05:00
Andrej730
e6be79f2ad
assign/unassign type operators - add descriptions
2025-03-31 19:10:20 +05:00
Andrej730
e3228513c0
typing
2025-03-31 19:10:20 +05:00
Andrej730
547506d626
black .
2025-03-31 19:10:20 +05:00
Andrej730
3fe29fa842
Prevent user from trying to assign material style if not style is selected
...
Possibly explains #6462
2025-03-31 14:07:41 +05:00
Andrej730
e18e2caea8
Bonsai - exclude selected non-ifcobjects from type assignment/unsassignment #6454
2025-03-31 14:07:41 +05:00
Andrej730
1cac12dc53
Use fallback elevation value if default container is missing #6470
...
I guess it's always theoretically possible that user end up without a default container.
2025-03-31 13:49:18 +05:00
Andrej730
8d530eba68
Fallback to the aggregate if default container is removed #6470
2025-03-31 13:49:18 +05:00
Andrej730
4593e5aea6
Fix ExportHelper not optional filename_ext #6463 ( 4594f59)
2025-03-31 12:51:37 +05:00
Andrej730
cba6161043
Fix #6467 ( d35a2dc)
2025-03-31 12:05:15 +05:00
Richard Brice
42c49af4e3
Implements business to geometry mapping for alignment cant.
...
Also fixes problems that were created by this work in other files
2025-03-29 15:30:04 -07:00
Andrej730
7bdbfee041
Fix bim.export_cost_schedules #6463 ( 4594f59)
2025-03-29 23:36:37 +05:00
Thomas Krijnen
f37bda2d7c
Add hybrid-cgal-simple-opencascade to CLI help
2025-03-28 20:43:17 +01:00
Andrej730
0bf065c4bd
Fix issue editing item layer when it had a layer previously ( 13a182c)
2025-03-28 17:59:08 +05:00
Andrej730
c58b84ddb5
append_asset - fix duplicated applications/organizations/pao
...
Noticed when starting new project with demo library it had 29 duplicated IfcApplications...
2025-03-28 17:59:07 +05:00
Andrej730
81b5fc30c7
template_file - add a note
2025-03-28 17:59:07 +05:00
Andrej730
fd423f21e2
ifcopenshell.validate - validate IfcApplications
2025-03-28 17:59:07 +05:00
Andrej730
4afed8f2f3
typing
2025-03-28 17:59:07 +05:00
Thomas Krijnen
9254601924
Underscores in geom setting to argparse namespace
2025-03-28 12:11:27 +01:00
Thomas Krijnen
e9460a2c9a
Actually Eigen::Quaterniond arg order is *w* xyz
2025-03-28 12:10:03 +01:00
Thomas Krijnen
5a597d1a84
Fix binary size issue
2025-03-28 12:08:25 +01:00
Thomas Krijnen
61c4797b8f
Fix issue in CurveSegment
2025-03-28 12:08:10 +01:00
Andrej730
f08f9ad310
export_mesh_to_tessellation to consider empty material slots #6453
2025-03-28 12:01:09 +05:00
Andrej730
69ddf52ff0
Add ifc2x3/ifc4/ifc4x3 demo templates as symlinks to repo
...
Example - https://i.imgur.com/d4udENs.png
2025-03-28 10:29:31 +05:00
Andrej730
2fd02e281d
Add IFC2X3, IFC4X3 demo libraries
2025-03-27 19:31:04 +05:00
Andrej730
fdb283b7af
generate_demo_library - sync guid on regeneration
2025-03-27 19:31:04 +05:00
Andrej730
013d7f6659
generate_demo_library - typing and small refactor
2025-03-27 19:31:03 +05:00
Andrej730
5b33c6018a
spatial decomposition ui - use poll_message_set instead of .enabled
...
To give user more descriptive message about what's wrong.
2025-03-27 19:31:03 +05:00
Andrej730
50324a566f
black .
2025-03-27 19:31:03 +05:00
Andrej730
64b8842055
typing
2025-03-27 19:29:45 +05:00
Massimo Fabbro
05be0f69bd
Fix #6305
...
Fix wrong calculation with blender engine for IfcFooting
2025-03-26 22:30:56 +01:00
Andrej730
3f823573cf
Fix broken scroll bar in some UI lists #6439
...
Just found that all scroll bars for UIList kept in sync using `list_id` - it's that second argument for `UILayout.template_list` that I forgot exist, since I've never seen set it to anything besides the empty string.
So in #6439 we were reusing same UIList for multiple collection props and since one of the props was empty, it was constantly resetting scroll bar position.
Was about to report it as a bug to Blender but stumbled upon similar issue https://projects.blender.org/blender/blender/issues/124364
So the solution is make sure each UIList has unique `list_id`.
Fyi @Moult @Gorgious56
2025-03-26 18:49:22 +05:00
Andrej730
a3c5c0ce43
Fix typo in 64f51d7
2025-03-26 18:49:21 +05:00
Andrej730
2e61532919
bim.unassign_material - add description
2025-03-26 18:49:21 +05:00
Andrej730
c3107e37c0
material.remove_material_set to remove usages
...
To prevent them from being invalidated.
Noticed this as a possible issue investigating https://community.osarch.org/discussion/2820/error-message-in-bonsai-bim
2025-03-26 18:49:21 +05:00
Andrej730
c85f9f02ba
Check material override explicitly, not just by name
...
It was inconsistent when it was comparing usage with unnamed layer set and comparing usage with named layer set.
2025-03-26 18:49:21 +05:00
Andrej730
f888a32fa4
reuse get_material_name
2025-03-26 18:49:21 +05:00
Andrej730
d35a2dcf5b
typing
2025-03-26 18:49:21 +05:00
Arjo Nagelhout
244320dd49
add virtual destructor to AbstractKernel base class
...
this fixes a SIGTRAP when destructing the geometry iterator, as that calls delete kernel_.
2025-03-25 20:11:39 +01:00
Andrej730
0d7439c7a5
ifcopenshell.validate to catch invalid entities used in entities attributes #6409
...
Example
```
For instance:
# 1 =IFCCARTESIANPOINT((5.,5.,nan.));
Entity with name 'nan.' not found in schema 'IFC4'
```
2025-03-25 18:15:37 +05:00
Thomas Krijnen
c935b2fc12
Merge branch 'v0.8.0' into tfk-rocksdb-storage
2025-03-25 13:05:45 +01:00
Thomas Krijnen
bd92821b2e
Add file offset to instance reference errors so that they are picked up by ifcopenshell.validate
2025-03-25 11:44:46 +01:00
Thomas Krijnen
3744b81ccd
Only accept finite floats #6409
2025-03-25 10:15:24 +01:00
Andrej730
9311f50206
Fix for 4594f596c2
...
Traceback:
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\project\operator.py", line 127, in execute
self._execute(context)
File "\bonsai\bim\module\project\operator.py", line 143, in _execute
core.create_project(
File "\bonsai\core\project.py", line 108, in create_project
project.append_all_types_from_template(template)
File "\bonsai\tool\project.py", line 55, in append_all_types_from_template
bpy.ops.bim.select_library_file(filepath=filepath.__str__())
File "\Blender\4.4\scripts\modules\bpy\ops.py", line 109, in __call__
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Converting py args to operator properties:: keyword "filepath" unrecognized
```
2025-03-25 12:00:50 +05:00
Thomas Krijnen
eec8c88e6f
Unique ptrs #6417
2025-03-24 14:09:00 +01:00
shmoodyyy
dd53f9b494
style: keep tab indenting consistency
2025-03-24 13:59:58 +01:00
shmoodyyy
c6e3ac4155
fix: memory leak from missing deletes of raw heap allocations; big issue within create_shape() python lib
2025-03-24 13:59:58 +01:00
Andrej730
4594f596c2
Reuse ImportHelper/ExportHelper everywhere possible for consistency
2025-03-24 17:36:27 +05:00
Andrej730
4f091af935
bim.export_ifccsv - clarify description and title
2025-03-24 17:36:27 +05:00
Andrej730
2f34f997dd
Fix api.alignment missing __all__
2025-03-24 17:36:27 +05:00
Andrej730
1600e00295
Fix clash smart groups selection ( 6660ee3)
...
It was using prop `guid` which doesn't exist , so `by_guid(global_id.guid)` would always fail with some exception.
2025-03-24 17:36:26 +05:00
Andrej730
7a55e837f7
typing
2025-03-24 17:36:26 +05:00
Andrej730
595ee3fa47
Provide descriptions to all operators that use fileselect_add #6420
...
I guess all it takes a persistent Blender crash to fill up operators descriptions 😅
2025-03-24 11:36:40 +05:00
Andrej730
c84f8e55a6
Fix typo
2025-03-24 11:36:40 +05:00
Andrej730
b63d9090a1
black .
2025-03-24 11:36:40 +05:00
Dion Moult
58c7976a5e
See #1227 . Fix regression where new wall system didn't preserve existing dimensions when regenerating geometry for an object that previously didn't have a layerset
2025-03-23 23:55:15 +11:00
Dion Moult
384a74734e
Fix regression in split along edge
...
Aren't tests great
2025-03-23 23:36:19 +11:00
Dion Moult
b269a806eb
Improve description for dev setup
...
Be more dogmatic in the setup to prevent confusion.
2025-03-23 23:31:04 +11:00
Bruno Postle
f43e666583
git colourisation fixes
...
Fix bug where uncommitted changes were not fully colourised in the same
way as diffs. Also try and catch more changes, eg. highlight if a
Products Type has changed.
2025-03-23 12:07:41 +00:00
Dion Moult
26b21ddcb3
Fix #6414 . Allow extracting elements from non-standard IFC schemas.
2025-03-23 22:16:42 +11:00
Dion Moult
f1138d1aac
Fix regression in point cloud loading in refactoring the new item mode.
2025-03-23 21:55:57 +11:00
Dion Moult
51eef295c8
Fix models with crazy contexts (which kills the iterator which is context based)
2025-03-23 21:12:46 +11:00
Massimo Fabbro
212da8b6d6
fix #6271
...
Fix wrong length calculation with Blender Engine for IfcDoor and IfcWindows
2025-03-23 07:40:04 +01:00
Thomas Krijnen
f7163b8db8
schema -> schema_identifier #6414
2025-03-22 19:27:50 +01:00
Ryan Schultz
9ee947b730
a better implementation for #3731 - to round to the nearest foot.
2025-03-22 09:53:15 -05:00
Ryan Schultz
328fb8bc0e
fix #3731 - round to the nearest foot
2025-03-22 09:11:41 -05:00
Bruno Postle
75fe548bb0
Remove zombie method reintroduced in 5830573
...
edit_container_attributes() was deleted in e79a85a , but somehow got
dragged back in
2025-03-22 10:17:41 +00:00
Bruno Postle
5830573cda
Create transform orientation slots ( #6215 )
...
Setting the default container switches to an appropriate orientation
slot if the orientation of this container isn't global. eg. if a building is
rotated, selecting to work in a storey will set the orientation to the
building orientation. Closes #6128
2025-03-22 09:01:54 +00:00
Bruno Postle
775106d0a0
Place drawings on sheets
...
When adding a drawing to a sheet, place to the right of the last drawing
if it fits on the sheet - otherwise start a new row below all existing
drawings.
This means that new drawings are no longer just piled up on top of each
other at the top-left, but it does mean that new rows of drawings are
added below the title box when the sheet is full.
2025-03-21 23:37:30 +00:00
sebjf
25b7003d2d
Issue 6385 - Delete IfcGeom::Elements as soon as possible ( #6411 )
...
* ISSUE #6385 Delete iterator elements as soon as they are moved past
* ISSUE #6385 added loop to destructor to clean up initialised elements not yet disposed of by the iterator
2025-03-21 18:52:40 +01:00
Ryan Schultz
c80c1e9e15
fix #5709 - ensure REFLECTED_PLAN_VIEW camera has (-1,-1,-1) scale.
2025-03-21 10:34:33 -05:00
Andrej730
b5c062415d
ifcsverchok.helper - add debug get_selected_nodes method
2025-03-21 18:39:38 +05:00
Andrej730
a98a7ac856
ifcsverchok - add some sockets descriptions, specify types
2025-03-21 18:39:38 +05:00
Andrej730
ee2b836b84
ifcsverchok - add/update node descriptions
2025-03-21 18:39:38 +05:00
Andrej730
e075c32a5a
typing
2025-03-21 18:39:38 +05:00
Andrej730
a567af370b
ifcsverchok - fix missing socket tooltips
...
apparently `tooltip` property doesn't exist but `description` does
2025-03-21 18:39:38 +05:00
Andrej730
544b61b95a
remove debug print
2025-03-21 18:39:37 +05:00
Thomas Krijnen
45c45d6862
ifcopenshell.geom.serializers.guess_from_extension()
2025-03-21 14:35:47 +01:00
Thomas Krijnen
6880e31a66
Add ColladaSerializer to python bindings
2025-03-21 14:35:23 +01:00
Thomas Krijnen
e327932f4e
Fixes to HierarchyHelper #6365
2025-03-21 13:48:59 +01:00
Andrej730
f2283e5895
Fix Blender 4.4 errors starting some operators #6399 #6396
...
Ping @brunoperdigao just in case.
2025-03-21 12:02:53 +05:00
Dion Moult
ea84f829af
The experimental cutting tool now supports a bisect mode for batch cuts
2025-03-21 16:46:42 +11:00
Dion Moult
3231752fef
Minor fix to clipping planes if there is no camera
2025-03-21 16:46:08 +11:00
Dion Moult
963ba5fc30
See #6404 . See #1227 . Create axis context if it does not exist for walls.
2025-03-21 16:45:29 +11:00
Dion Moult
8e1e0aec79
Fix #6404 . See #1227 . Fix IFC2X3 wall creation with new wall engine.
2025-03-21 16:30:56 +11:00
Thomas Krijnen
9c4ec34de3
Some form of circle handling in loop_to_function_item_upgrade_impl() #6381
2025-03-20 20:57:47 +01:00
Thomas Krijnen
4c2844292e
Apply skew in infra lofts #6386
2025-03-20 16:14:12 +01:00
Sebastian Friston
35fe79dfb2
ISSUE #6328 fix in dispatch_token to avoid missing unknown in logicals
2025-03-20 14:03:07 +01:00
Thomas Krijnen
58a5f881e6
Retrieve length unit info from underlying mapping in iterator #6355
2025-03-20 13:57:30 +01:00
Andrej730
4d5a3ec633
ifcsverchok - ifc.write_file_panel to filter .ifc files
2025-03-20 16:28:49 +05:00
Andrej730
1feb00678c
node.sv_ifc_create_file_refresh - fix LB Out bl_label
2025-03-20 16:28:48 +05:00
Andrej730
f10ebe0166
ifcsverchok - remove debug print
2025-03-20 16:28:48 +05:00
Andrej730
5f8fc1ba8c
node.sv_ifc_tooltip - hide title
2025-03-20 16:28:48 +05:00
Andrej730
f8f36cf2f0
typing
2025-03-20 16:28:48 +05:00
Thomas Krijnen
2a2bfea870
Read settings from argparser
2025-03-20 11:47:14 +01:00
Thomas Krijnen
8bdf8369b5
pyodide demo: install shapely
2025-03-20 10:49:41 +01:00
Thomas Krijnen
2bc230919e
Update publish-pyodide-demo-app.yml
2025-03-20 10:44:08 +01:00
Thomas Krijnen
53fd1284b5
Update wheels #6402
2025-03-20 10:42:27 +01:00
Andrej730
3c777a0b85
Blender 4.4 - fix broken UI lists #6396
...
Example error:
```python
RuntimeError: could not create instance of BIM_UL_containers_manager to call callback function 'filter_items'
2025-03-19:16:13:14,001 ERROR [log.py:69] Uncaught exception
RuntimeError: could not create instance of BIM_UL_containers_manager to call callback function 'draw_item'
```
2025-03-19 16:52:50 +05:00
Thomas Krijnen
fa3c57b016
Implement readable setting type retrieval
2025-03-19 11:42:43 +01:00
Thomas Krijnen
e658b00768
Reinstate old bespoke model-offset/rotation parsing in IfcConvert #6290
2025-03-19 11:42:11 +01:00
Thomas Krijnen
26b55216ca
Normalize model-rotation quaternion
2025-03-19 11:40:54 +01:00
Andrej730
d912012f76
Bonsai makefile - fill last_commit_date
...
Also .isoformat(), so string would match exactly with the one git command provides.
2025-03-19 14:15:21 +05:00
Andrej730
d868d8ceac
Fix missing default value for last_commit_date ( 37ec2bf) #6389
...
Which is needed when Bonsai is not using git
2025-03-19 14:14:36 +05:00
Andrej730
8def5ec30b
Use explicit bl_ui_utils.layout import to fix #6389
...
Also related - https://github.com/nutti/fake-bpy-module/issues/352
2025-03-19 14:14:36 +05:00
Andrej730
ad03a0c8d9
debugging docs - add section about debugging addon
2025-03-18 17:43:38 +05:00
Thomas Krijnen
425de7b857
Further small memory optimizations
2025-03-18 10:41:03 +01:00
Richard Brice
09a43f1339
get distance along alignment from station
...
New alignment api function to get the horizontal distance along an alignment from a station value
2025-03-17 09:16:35 -07:00
Dion Moult
c176b9d607
See #1227 . Fix bug where unjoin walls didn't recheck the position.
2025-03-18 01:14:06 +11:00
Dion Moult
6cf5cc002e
Fix #6318 . Fix warnings when decorator cannot convert 3D to 2D screen space location.
2025-03-18 01:06:44 +11:00
Andrej730
0abe6329d6
Quantification to consider Pset_ProfileMechanical.MassPerLength #6344
2025-03-17 18:31:58 +05:00
Andrej730
5109168533
quantification fallback - small clarification
2025-03-17 18:31:57 +05:00
Andrej730
0b4deee73f
typing
2025-03-17 18:31:57 +05:00
Andrej730
1f43f7f807
black .
2025-03-17 18:31:57 +05:00
Jesse Roodhorst
73a83c6d4e
Issue #5130 fix + sheet all expand and contract ( #6379 )
2025-03-17 18:28:03 +05:00
Dion Moult
9c5b1a04ff
Fix #6372 . See #1227 . More reliable layer slicing. Always slice in in 2D, not 3D, where possible.
2025-03-18 00:14:56 +11:00
Dion Moult
e67753eb4f
See #1227 . Clear cache when activating drawings.
2025-03-17 23:05:14 +11:00
Andrej730
778a839e5f
get_shape_aspects to consider element's type #6374
...
See diagram in https://github.com/IfcOpenShell/IfcOpenShell/issues/5839#issuecomment-2661296683 when IfcShapeAspect assigned to IfcRepresentationMap instead of being assigned to IfcProductDefinitionShape directly.
2025-03-17 16:38:12 +05:00
Andrej730
102de32737
Fix UI errors in case of uppercase unit names ( 7af6727)
...
IfcConversionBasedUnit's Name is case insenstive and it was producing UI errors.
Noticed working with file from Revit Ryan attached in #6374
Traceback:
Traceback (most recent call last):
File "\bonsai\bim\module\pset\ui.py", line 456, in poll
ObjectMaterialData.load()
File "\bonsai\bim\module\material\data.py", line 167, in load
cls.data["total_thickness"] = cls.total_thickness()
^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\material\data.py", line 331, in total_thickness
return format_distance(thickness, precision=precision, suppress_zero_inches=True, in_unit_length=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\drawing\helper.py", line 157, in format_distance
unit_length = unit_length_mapping[unit_length]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
KeyError: 'FOOT'
2025-03-17 16:38:12 +05:00
Sayan J. Das
cf3a554b15
Fix #5809 : Add safety check during file.write ( #6292 )
...
Co-authored-by: theseyan <sayanjyotidasworkmail@gmai.com >
2025-03-17 16:17:42 +05:00
Andrej730
a8ff6ecf14
Fix object materials UI #6375 ( ba37754)
2025-03-17 15:11:16 +05:00
Andrej730
55be5cc289
get_length, getget_object_main_axis - simplify
...
1) get_object_main_axis - replace branching with just max between dimensions. There is a small caveat that previously for `x,y,z=1,2,2` it would return 'x' but now it returns 'y', but I'm not sure if 'x' was really intended here.
2) get_length - current implementation does the same as get_linear_length
Ping @maxfb87 just in case.
2025-03-17 14:48:22 +05:00
Andrej730
9af00d4e72
typing
2025-03-17 14:27:52 +05:00
Andrej730
d8592a2a95
get_rectangular_perimeter to use get_x again #6364 ( 4260313)
...
Just restoring original behaviour before 4260313 when get_rectangular_perimeter prioritized x dimension.
2025-03-17 14:07:11 +05:00
Andrej730
16ba10f957
Fix UI error when selected object has no material #6371 ( ba37754)
2025-03-17 12:02:34 +05:00
Andrej730
0d1298aac1
Fix #6367
...
ahh, no idea where I picked up this string during refactoring
2025-03-17 11:57:27 +05:00
Andrej730
210257de8e
black .
2025-03-17 11:57:26 +05:00
Ryan Schultz
37ec2bf0e4
add bonsai_commit_date to error report
2025-03-16 20:04:04 -05:00
Sayanjyoti Das
6e7c8ad640
Fix #6362
2025-03-16 23:32:42 +11:00
Dion Moult
bfc4490c97
See #1227 . Implement wall layers in SVG drawings.
2025-03-16 21:43:59 +11:00
Sayanjyoti Das
d50e8060ac
better comments
2025-03-16 17:48:44 +11:00
Sayanjyoti Das
a21939dc0d
fix error
2025-03-16 17:48:44 +11:00
Sayanjyoti Das
8845440edd
fix #6360
2025-03-16 17:47:44 +11:00
Dion Moult
ba37754068
Fix #6310 . See #1227 . Fix regression with layer ordering.
2025-03-16 14:17:37 +11:00
Dion Moult
ed48afc633
Only clip on visible drawing cameras.
2025-03-16 11:53:35 +11:00
Dion Moult
7262a50184
See #1227 . Merging doubles gives more reliable results in bisection fills.
2025-03-16 11:40:30 +11:00
Bruno Perdigão
67b0ab6685
Fix #6366 . Improve extrusion x_angle and direction handling.
...
This solution brings new questions to #5938 .
Currently, we lack a reliable way to calculate the existing x_angle only based solely on the extrusion direction. For example, a 30 degree angled extrusion with positive direction has the same extrusion direction as a -150 degree angled extrusion with negative direction. The difference lies in the object's rotation.
This means that things can get messy if the user changes the object x angle somehow. We may need to explore alternative approaches.
2025-03-15 21:00:57 -03:00
Dion Moult
2941a4ad1a
See #1227 . Recalculate normals and limited dissolve when layerset slicing and generating underside clipping geom.
2025-03-16 10:56:18 +11:00
Dion Moult
b2e2f765ca
See #1227 . Clip based on active camera for legibility of drawings. Needs polish.
2025-03-16 00:23:47 +11:00
Dion Moult
2270185f8c
See #1227 . Drawing decorator now does material-aware fills for everything, and also basic caching.
2025-03-15 22:56:01 +11:00
Dion Moult
faef2df2a6
See #1227 . Basic uncached implementation of visualising wall layers in drawings
2025-03-15 20:56:56 +11:00
Dion Moult
bef7ff33f7
Prevent errors where decorator is still running and there is no camera
2025-03-15 20:54:15 +11:00
Bruno Perdigão
615ca24825
Fix #6363 . Improve how Curves are handled by the snapping system.
2025-03-14 21:43:26 -03:00
Bruno Perdigão
7e42b10159
Snap - Add face normal intersection to ´mix_snap_and_axis´ function.
2025-03-14 21:33:35 -03:00
Thomas Krijnen
8c466eab00
Remove temp goto
2025-03-14 19:15:08 +01:00
Thomas Krijnen
929611f384
Specific speed-ups
2025-03-14 18:56:27 +01:00
Thomas Krijnen
8af4afa781
Do use merges, much better perf, instantiate inverses directly and generally, no longer copy map
2025-03-14 16:16:25 +01:00
Richard Brice
04e07db0a3
Import alignment from csv ( #6234 )
...
* Start of the official alignment API
* Import alignment into bonsai model using CSV file
2025-03-14 07:31:50 -07:00
Andrej730
eed47c8c87
Display internal ID in calculator functions description
...
Example - https://i.imgur.com/3C3TBCu.png
2025-03-14 18:35:50 +05:00
Andrej730
9ba3b6a61f
add cgal-original-edges option to settings ( 5599e52)
2025-03-14 18:19:08 +05:00
Andrej730
6cfd15e819
Fix mistake in 64f51d7
2025-03-14 18:19:07 +05:00
Andrej730
e55523ce3e
bim.show_loads - add undo for safety
...
In Blender it's unsafe to leave operators without UNDO options if they edit any ID data-block.
2025-03-14 18:19:07 +05:00
Andrej730
f36830d6dc
bim.show_loads - handle absence of structural items
2025-03-14 18:19:07 +05:00
Andrej730
2f87029434
Use schema_identifier to get IFC4X3 schema more precisely
2025-03-14 18:19:07 +05:00
Andrej730
9f78d9881e
ifcopenshell.util.shape - use refs to functions in docs
2025-03-14 18:19:06 +05:00
Andrej730
1d447e6e23
ifc5d.qto.IfcOpenshell - skip None values
...
Just for consistency, in all other cases besides get_segment_length we were only preserving floats anyway
2025-03-14 18:19:06 +05:00
Andrej730
4c53c2ab1f
ifc5d.qto.IfcOpenShell - get_weight function
...
Added support for it in .json for the same elements that support it in IFC4QtoBaseQuantitiesBlender
2025-03-14 18:19:06 +05:00
Andrej730
86ebc968e5
ifcopenshell.util.element.get_element_mass_density
...
Move it from Blender qto calculator as this method can be generally useful
2025-03-14 18:19:06 +05:00
Andrej730
1de67ffd9c
ifc5d.qto - add x,y,z functions just for consistency with ifcopenshell calculator
2025-03-14 18:19:06 +05:00
Andrej730
1408beeac5
ifc5d.qto.Blender - functions descriptions
2025-03-14 18:19:05 +05:00
Andrej730
791a2e40f1
qto - add note on gross and net functions
2025-03-14 18:19:05 +05:00
Andrej730
3f6a9a55cd
bim.calculate_side_formwork_area - expose to ui
2025-03-14 18:19:05 +05:00
Andrej730
ec702e2ec1
Simple quantity calculator - add operators descriptions
2025-03-14 18:19:05 +05:00
Andrej730
4f6dbbe72b
bim.calculate_single_quantity - ifcopenshell calculator to appear first
2025-03-14 18:19:05 +05:00
Andrej730
8ca344259f
bim.perform_quantity_take_off - support fallback calculator in ifc4x3 too
2025-03-14 18:19:04 +05:00
Andrej730
e038f968f2
bim.calculate_single_quantity - add info message
2025-03-14 18:19:04 +05:00
Andrej730
0e8810c1f5
typing
2025-03-14 18:19:02 +05:00
Andrej730
10ecac33b8
black .
2025-03-14 18:19:02 +05:00
Thomas Krijnen
8a3c979172
Speed up toposort with inverse map
2025-03-14 13:11:53 +01:00
Thomas Krijnen
15bbb3b779
Implement rocksdb-based has()
2025-03-14 13:11:30 +01:00
Thomas Krijnen
6cefb2e991
Update .py guess_format()
2025-03-14 10:32:11 +01:00
Thomas Krijnen
10682fb226
Fix python binding
2025-03-14 10:20:22 +01:00
Dion Moult
069b630b16
Minor fix where you'd randomly get incorrect ports connected based on the first birdsong of spring
2025-03-14 14:41:23 +11:00
Bruno Perdigão
8f6cd18288
Add instruction to MeasureFaceArea tool
2025-03-13 21:32:13 -03:00
Bruno Perdigão
7b7108b938
MeasureFaceAreaTool - Fix issue where face with index zero where not being selected
2025-03-13 17:02:40 -03:00
Bruno Perdigão
ebd719783c
black .
2025-03-13 16:56:22 -03:00
Bruno Perdigão
46a31386da
Add "Face Area" option to measure tool. See #6163 .
2025-03-13 16:55:43 -03:00
Bruno Perdigão
c80c7c6d36
Refactor - move mouse_offset from snap.py to raycast.py
2025-03-13 16:55:43 -03:00
Bruno Perdigão
ed7cf248ec
typing
2025-03-13 16:55:43 -03:00
Bruno Perdigão
b40f630783
Refactor - move raycast functions from snap.py to raycast.py
2025-03-13 16:55:37 -03:00
Bruno Perdigão
f99015e123
Polyline tool - move "remove_last_polyline_point" to "handle_inserting_polyline".
2025-03-13 16:54:35 -03:00
Bruno Perdigão
be76d4cb44
Refactor - Update input options display in Polyline tool UI
2025-03-13 16:54:35 -03:00
Bruno Perdigão
6949f9ceae
Refactor - Move filtering logic for snap objects into a separate function
2025-03-13 16:54:35 -03:00
Andrej730
4daf4693f3
selector syntax - note on PredefinedType
2025-03-13 18:43:19 +05:00
Andrej730
edd60a73ca
generate_pset_templates - fix running after ifc4x3 release
...
The error was:
```
Traceback (most recent call last):
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 416, in <module>
templates_generator.parse_ifc4x3_data()
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 94, in parse_ifc4x3_data
self.parse_psets_data("IFC4X3", pset_data_glob, "IFC4X3 Property Set Templates", str(IFC4x3_OUTPUT_PATH))
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 129, in parse_psets_data
schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9037, in schema_by_name
return _ifcopenshell_wrapper.schema_by_name(arg1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: No schema named IFC4X3
```
2025-03-13 18:43:19 +05:00
Andrej730
6c04669543
ifc5d - add ifc4x3 base quantities #6325
2025-03-13 18:43:19 +05:00
Andrej730
4eae112087
not real ifc4x3 quantities, just adding ifc4 quantities for diff
2025-03-13 18:43:18 +05:00
Andrej730
5be076cb96
Reset operator context in 63aada25dd for clarity
2025-03-13 18:43:18 +05:00
Andrej730
ef67d866b6
black .
2025-03-13 18:43:18 +05:00
Thomas Krijnen
df6b7a34f7
Auto-detect filetype
2025-03-13 13:09:39 +01:00
Thomas Krijnen
67932a22c3
Working non-streaming serializer and read-only model
2025-03-13 12:34:54 +01:00
Dion Moult
609f468ce1
Update failing tests
2025-03-13 22:07:00 +11:00
Dion Moult
3852e3c63f
Add tests for new light rendered shadows feature
2025-03-13 22:06:21 +11:00
Dion Moult
5cb9e1c68d
Minor tweak to UI to make the shadow UI more elegant and reflect IFC style types
2025-03-13 11:09:42 +11:00
Dion Moult
52fbe09dd4
Fix syntax error otherwise nothing loads
...
Also PortData is loaded in the authoring tool and there might not be any
active object (e.g. fresh session).
2025-03-13 11:06:56 +11:00
falken10
4cff2f1fc1
Add traverse_transparent property to control sun light traversal through transparent objects
2025-03-13 10:36:43 +11:00
falken10
6517cafd98
Update add_prop_template.py so the properties are sorted
...
This allows to keep the pset properties sorted for easy access
2025-03-13 10:35:40 +11:00
falken10
5114576457
Update profile.py to add MEPGenerator().setup_ports when the profile has only one segment (no DumbProfileJoiner called)
...
When adding a single duct in MEP no ports where attached.
The function create_profiles_from_polyline does not call DumbProfileJoiner (which eventually calls MEPGenerator().setup_ports).
I have added a check so if there is only one segment, the MEPGenerator().setup_ports is called explictily
2025-03-13 10:35:24 +11:00
falken10
9bafe07c36
Update system.py so two ortogonal arrows (in x and y local) are used for MEP systems decorations
...
Currently the flow direction decorations run in the local Y. This means that if one is creating ducts/pipes in the xy plane, the decorations are drawn in planes perpendicular to that one and than means that the arrows are not visible from a top/bottom view.
By adding another set of arrows perpendicular the arrows are always visible no matter what projection is taken
2025-03-13 10:31:27 +11:00
falken10
6b85e9ec85
Update operator.py
...
This will sort the groups by name so it is easy to find them.
2025-03-13 10:31:06 +11:00
Dion Moult
d89957faab
Fix regression in 227f31574 which prevented quantifications
...
The key in the dictionary is not a class name, it's a query string to
allow for complex quantification rules.
2025-03-13 09:18:07 +11:00
Ryan Schultz
ba8753d55e
Updated docs regarding material selector syntax.
2025-03-12 16:27:48 -05:00
Bruno Perdigão
5df9c45795
Improve weight in snapping for "Plane", "Axis" and "Face" type.
2025-03-12 17:16:47 -03:00
Bruno Perdigão
5cc0aa71c7
Fix issues with snapping empties and faceless objects in x-ray mode.
2025-03-12 17:16:47 -03:00
Bruno Perdigão
b06ddbcad4
Remove duplicate line
2025-03-12 17:16:47 -03:00
Ryan Schultz
18431dec31
added material.item.Material.Name.0 to selector syntax
2025-03-12 14:23:43 -05:00
Bruno Perdigão
7e9985758f
Remove debug print statements.
2025-03-12 11:10:14 -03:00
Andrej730
ece91a94db
util.schema.reassign_class to return early if class already assigned
2025-03-12 18:49:26 +05:00
Andrej730
dccfb634d9
Ports UI - cache instead of accesing IFC on draw calls
2025-03-12 18:49:26 +05:00
Andrej730
ffc6c6a7ad
Zones UI - rearrange button to match the Systems UI layout
2025-03-12 18:49:26 +05:00
Andrej730
dbf4a2a5ed
Fix reassign_class on IFC4X3, use ValueError
...
Use ValueError to make it more specific
2025-03-12 18:49:22 +05:00
Andrej730
f6640d3904
typing
2025-03-12 18:49:22 +05:00
Andrej730
63aada25dd
Deprecate LaunchAddElement, LaunchRenameType
...
TIL that it's possible to set invoke context from draw by changing operator_context property in UILayout 😅
2025-03-12 17:08:41 +05:00
Dion Moult
6596f5bc4b
Fix regressions in MEP joins after switching over to numpy from mathutils
2025-03-12 23:05:34 +11:00
Dion Moult
acdc40fb41
See #1227 . Reimplement extending walls to another wall
2025-03-12 23:05:34 +11:00
Andrej730
9be0a60c0a
github issue templates - use comment blocks for instructions
...
As users sometimes tend not to remove the intsruction messages...
2025-03-12 16:29:13 +05:00
Andrej730
e9a3d06352
Document copy and paste workarounds in docs #6327
2025-03-12 16:13:53 +05:00
Andrej730
dfd30fbcaa
black .
2025-03-12 16:13:52 +05:00
Dion Moult
a941eb3f90
Parametric roof geometry is now whitelisted for IfcSlab.ROOF and IfcCovering.ROOFING too.
2025-03-12 18:47:50 +11:00
Dion Moult
226736eb41
Fix #3357 . Remove Shift-E for parametric objects (superseded by tab) and you can now extend to anything not just slabs.
...
This Shift-E still needs more polish as we figure out the best hotkeys
and what's most natural to users when they select different combinations
of objects, so expect the conditionals that govern when Shift-E does
things to still change in the future.
2025-03-12 18:41:18 +11:00
Dion Moult
f5a1c4aae3
See #1227 . Reimplement extend walls to slab (or anything with negative Z faces)
...
There are a few differences to the previous implementation:
1. It is no longer recalculated on wall regeneration. The new wall
regeneration is strict to the spec on the rules of rel connects path,
and so this being a "userdefined" connection we only calculate it
explicitly when the user invokes the operator.
2. It uses meshes instead of clipping planes, so you can clip to
strange shapes or gable roofs or whatever. Nice.
2025-03-12 18:05:57 +11:00
Bruno Perdigão
a7a4198fc1
Polyline tool - add "dm" and "cm" to the input validation.
2025-03-11 17:10:52 -03:00
Bruno Perdigão
6e0e19d690
See #6130 . Fix issue where aggregate mode where not being disabled.
...
The issue was caused by deleting an object outside the aggregate while in
aggregate mode. The selection for these objects are now disabled to prevent
this issue
2025-03-11 16:58:08 -03:00
Bruno Perdigão
72bbf244f2
Fix issue #6221 where crtl+shift+D were not moving the whole copied aggregate.
2025-03-11 16:33:40 -03:00
Bruno Perdigão
41c1c6e8fa
Fix #6291 .
...
When changing slab `x_angle` the rotation matrix now takes into account object's world matrix.
2025-03-11 16:11:47 -03:00
Bruno Perdigão
a32735ac6a
Small fix after 7af672712f
2025-03-11 14:04:34 -03:00
Bruno Perdigão
031540e982
Add #5496 . Objects from linked ifc files can now be snapped.
2025-03-11 12:37:47 -03:00
Bruno Perdigão
db1d8d938f
Allow dimensions to use custom units from BBIM_Dimension Pset.
...
- Implementation of @theoryshaw PR #5922 .
- Note: `IfcPropertyEnumeration` allows multiple choices, but this is not
applicable for this use case. Users must manually deselect other options;
otherwise, it defaults to the first selected option.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
aa478ab359
Fix area measure tool to display first dimension correctly.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
19c103c627
Fix issue where "C" to close polyline where not updating measurement dimension.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
7af672712f
See #6164 . Allow measure tool to work without IFC Project.
2025-03-11 11:56:08 -03:00
Andrej730
6bd8636c92
Revert "Bump IOS"
...
This reverts commit c1bc36ab86 .
2025-03-11 18:46:38 +05:00
Andrej730
a9f7d4ab3b
get_applicable_types in ifc2x3 to prioritize IfcBuildingElementProxyType
...
for occurrence classes without special type.
E.g. previously:
you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType and change this slab's type element to IfcBeamType. IfcBuildingElementProxyType seems more generic and fitting.
2025-03-11 18:37:24 +05:00
Andrej730
977d814d39
bim.reassign_class - fix issue in ifc2x3 when selected product class would be ignored
...
E.g. you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType (which is confusing too but that's another subject) and change this slab's type object to IfcBeamType which consequently change IfcSlab to IfcBeam instead of IfcRoof that was selected originally.
Noticed investigating #5918
2025-03-11 18:37:23 +05:00
Andrej730
5b95bb37e6
Systems UI - cache active system data
2025-03-11 18:37:23 +05:00
Andrej730
85b9906e20
Zones UI - add buttons for unassigning zone from the active objects
2025-03-11 18:37:23 +05:00
Andrej730
64f51d733e
Fixed version of f3f7939c8b + get_element_zones
2025-03-11 18:37:23 +05:00
Andrej730
ed0b1c5009
typing
2025-03-11 18:37:22 +05:00
Dion Moult
c1bc36ab86
Bump IOS
2025-03-11 21:59:53 +11:00
Dion Moult
9cfcaeb587
Fix bug and add boolean tests where if you added a boolean that fully clipped something you couldn't edit it due to lack of item ids.
2025-03-11 21:14:11 +11:00
Dion Moult
d9e48467cd
Fix bug where removing a boolean didn't unmark it as a manual boolean.
2025-03-11 21:13:04 +11:00
Dion Moult
f08dba6483
Improve debug logs when running BDD tests
...
I've been spoilt by tools like Behat and so this make it much nicer
because it tells you exactly the feature/scenario/step where it failed.
2025-03-11 18:40:00 +11:00
Dion Moult
1e97d2c5fa
See #6307 . Prevent user from manually changing the ifc file path.
...
You can still hover over and copy paste if you want.
2025-03-11 18:38:45 +11:00
Dion Moult
bf54132805
Fix #6307 . Warning: critical bug where saving a file broke undo state.
...
Previously, changing props.ifc_file had an update hook to reload
information about the IFC model. But this isn't always correct because
there are two situations:
1. The ifc_file path changed because you saved the file for the first
time or saved as, and this is merely recording a new saved path of the
existing file object.
2. The ifc_file path changed because the user manually changed it or
selected a new file. This could reference an entirely new file object.
This is dangerous because we can't trust anything anymore, including our
undo history.
So the new default situation is that there is no magic hook. If you
change props.ifc_file, that's all it changes ... just a path stored in
Blender with not much significance.
If the user runs select_ifc_file to explicitly relink the file, it now
explicitly purges in that situation and clears the undo history.
Basically now behaviour is explicit, not using magic hooks.
2025-03-11 18:37:53 +11:00
Dion Moult
570513b60b
Revert "util.get_element_systems to consider all kinds of ifcsystems"
...
This reverts commit f3f7939c8b .
2025-03-11 09:13:48 +11:00
Bruno Postle
e1ba98c5f8
fix loading ifc2x3 project libraries
2025-03-10 21:07:18 +00:00
Andrej730
8ed9c32404
Rename systems and zones from UIList
...
example - https://imgur.com/a/8yTzmy3
2025-03-10 18:52:39 +05:00
Andrej730
5b9ef23bdd
bim.assign_system/unassign_system - add info messages
...
Also check whether element is assignable prior to running system.assign_system to avoid scary exceptions.
2025-03-10 18:52:39 +05:00
Andrej730
f3f7939c8b
util.get_element_systems to consider all kinds of ifcsystems
2025-03-10 18:52:39 +05:00
Andrej730
469b4f3502
Systems UI - move buttons to the header to unclutter UI
2025-03-10 18:52:39 +05:00
Andrej730
c4b57eb903
typing
2025-03-10 18:52:39 +05:00
Andrej730
3886c79a2c
black .
2025-03-10 18:52:39 +05:00
Massimo Fabbro
566fe32ab2
Fix wrong wall legth qto calculation
2025-03-10 23:19:12 +11:00
Dion Moult
7fb6adc025
Fix #6296 . See #1227 . More normal fixes in layer set slicing.
2025-03-10 23:15:24 +11:00
Dion Moult
c03cf4ce58
Fix #6303 . I messed up the commit in 1259607a
2025-03-10 23:06:16 +11:00
Dion Moult
41188e26e1
See #1227 . Don't touch manual booleans when regenerating wall body.
2025-03-10 22:54:42 +11:00
Dion Moult
823f27cd6a
Add tests for new element add feature
2025-03-10 22:53:55 +11:00
Massimo Fabbro
4260313a99
Fix #6271
...
Fix the wrong length calculation for beams and columns
2025-03-10 20:09:10 +11:00
Dion Moult
1259607a9f
See #1227 . Fix slicing normal calculation for AXIS3 elements.
2025-03-10 18:10:05 +11:00
Dion Moult
9f1ffe6381
Minor fix where you shouldn't be able to add an element without an IFC project
2025-03-10 18:08:43 +11:00
Dion Moult
ba1b6b5b10
Fix regression where type thumbnails don't refresh properly from ae76d3253
...
The fix in ae76d3253 removed the refresh_ui_data call, so we need to
handle it a bit better. I also heavily simplified the thumbnail loading.
2025-03-10 18:08:30 +11:00
Dion Moult
2318132ea2
Minor refactor add_constr_type_instance is now add_occurrence
2025-03-10 08:23:56 +11:00
Thomas Krijnen
9f49ad5f71
Non-streaming rocksdb serializer nearing completion
2025-03-09 21:20:16 +01:00
Massimo Fabbro
b6b553e726
Fix #6271
...
Fix a bug about wrong net values qto calculation with IfcOpenshell
2025-03-09 22:48:08 +11:00
Dion Moult
076f39e2d6
I think bSDD should use the Name for the property name. See 115a48f
...
It seems correct according to
https://github.com/buildingSMART/bSDD/blob/master/Documentation/bSDD%20JSON%20import%20model.md
2025-03-09 21:35:20 +11:00
Dion Moult
abfe8ec315
Fix failing IOS tests
2025-03-09 20:47:02 +11:00
Dion Moult
9d7fe179cf
See #1227 . Minor fix of incorrect layerset slicing of negative sense slabs.
2025-03-09 19:29:35 +11:00
Dion Moult
8ffb5c56e4
See #1227 . Fix inconsistent layer UI based on direction sense and minor UI cleanup.
...
The UI here looks suspicious in that logic is occuring in the draw call
instead of the cached data object.
2025-03-09 19:28:47 +11:00
Dion Moult
4109b19c3a
See #1227 . Slightly more defensive to make sure ATPATH is between START and END
2025-03-09 18:31:49 +11:00
theseyan
7503530741
Fix #4807
2025-03-09 18:02:59 +11:00
Dion Moult
e78127d54f
See #1227 . Don't move any child at all when regenerating wall body.
2025-03-09 18:00:13 +11:00
Dion Moult
5fa4f2e79b
See #1227 . Reimplement merge walls with new wall body generation code.
2025-03-09 17:32:19 +11:00
Dion Moult
e5027e0be8
See #1227 . Implement updating of object position.
2025-03-09 08:52:05 +11:00
Dion Moult
af2dd1d7c6
See #1227 . Start to integrate into Bonsai. Basic testing of join/unjoin/extend/split/flip done.
2025-03-09 08:25:32 +11:00
Massimo Fabbro
5d9528d791
Fix #6168 . Now reload link button works
...
It is fixed also an inconsistency problem when use relative path is True
2025-03-08 11:47:43 +01:00
Dion Moult
47d11daa15
See #1227 . Small clean up of old sketch-wall based code which we no longer support.
2025-03-08 11:26:27 +11:00
Dion Moult
01ec750814
See #1227 . New connect wall API function since this can be done generically.
...
This will supersede the butt/mitre join functions we used to have.
2025-03-08 11:25:07 +11:00
Dion Moult
8c9a657a8c
See #1227 . Check layer set direction when slicing.
2025-03-08 11:13:26 +11:00
Bruno Perdigão
48acfad8bb
Fix #6213 . Adjust wall clipping from slabs to account for slab offset and direction sense.
2025-03-07 15:49:32 -03:00
Bruno Perdigão
01b63d87d0
Fix issue with updating slab offset with negative direction sense.
2025-03-07 15:42:09 -03:00
Bruno Perdigão
36744d391e
Fix #6236 . Product preview properties were not being cleared when data is empty.
2025-03-07 14:14:28 -03:00
Andrej730
f0e5430daa
bonsai_translations - allow .po files going out of sync
...
We had Chinese translation for Bonsai and some stub file for German and translation.py generation was failing with the error below. Chinese translation is more recent so it has some keys that German file hadn't and some keys were gone in the more recent version. In theory we should make all .po file in sync but let's skip it for now to keep things going.
```
Traceback (most recent call last):
File "/home/runner/work/IfcOpenShell/IfcOpenShell/src/bonsai/scripts/bonsai_translations.py", line 379, in <module>
update_translations_from_po(po_directory=Path(args.input), translations_module=Path(args.output))
File "/home/runner/work/IfcOpenShell/IfcOpenShell/src/bonsai/scripts/bonsai_translations.py", line 203, in update_translations_from_po
if (msgstr := msg.translations[lang]) in (None, ""):
~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'de_DE'
```
2025-03-07 20:48:44 +05:00
Andrej730
197281eb5a
bonsai_translations - use utf-8 for opening files
...
Critical on Windows as it's not using utf-8 by default
2025-03-07 20:48:44 +05:00
Andrej730
7b370e6142
Fix operators missing execute after a663216
2025-03-07 17:13:00 +05:00
Andrej730
71a7d0c086
Fix missing IfcDistributionCircuit and IfcElectricalCircuit #6202
...
When checking if element is assignable to the system.
2025-03-07 17:12:59 +05:00
Andrej730
b86e735530
Fix breaking Systems UI with IfcElectricalCircuits
2025-03-07 17:12:59 +05:00
Andrej730
46104f5bf5
Update Profiles UI profile editing arbitrary profile #6284
2025-03-07 17:12:59 +05:00
Andrej730
d68068a84b
bim.load_profiles - try not to check all inverses for optimization
2025-03-07 17:12:59 +05:00
Andrej730
fc7dd3b234
Preserve ProfileName editing arbitrary profile #6284
2025-03-07 17:12:59 +05:00
Andrej730
85fc97eb84
Profiles UI - add safety check for missing profiles #6284
...
Example - https://imgur.com/a/bVdV5oB
2025-03-07 17:12:59 +05:00
Andrej730
9076deddbc
Consider ifc2x3 in a358cff1b7 #6255
...
In ifc2x3 position is not optional, so we should reset it's coordinates instead.
2025-03-07 17:12:59 +05:00
Andrej730
eb0d3c38b2
ifcopenshell.util - make ifc_file argument optional if it can be deduced from ifc element
2025-03-07 17:12:59 +05:00
Andrej730
590288496e
typing
2025-03-07 17:12:58 +05:00
Andrej730
269e137ea2
black .
2025-03-07 17:12:58 +05:00
Dion Moult
ed722c6f13
See #1227 . Refactor out test waldo script into API function.
2025-03-07 19:05:24 +11:00
Dion Moult
2b9e3d2a2e
See #1227 . Enable layerset slicing.
2025-03-07 19:03:45 +11:00
Dion Moult
7dee888ecf
See #1227 . New util function in shape builder to do an X axis intersection.
2025-03-07 19:00:18 +11:00
Dion Moult
a67927ae67
Automatically merge excessive styles when loading models
...
Came across this problem with some models from 12D
2025-03-07 17:02:05 +11:00
Dion Moult
1271e4b7e3
New IfcPatch recipe to merge identical styles
2025-03-07 17:01:14 +11:00
Andrej730
a44d0e713a
Bump Blender build and fix dead url
2025-03-06 19:11:46 +05:00
Andrej730
a358cff1b7
Fix extrusion position update on OffsetFromReferenceLine changed #6255
...
Also fixed an issue when previously there was an offset and now it was set to 0 but slab did not reset it's position.
2025-03-06 18:43:54 +05:00
Andrej730
188ca3e402
Fix bim.profiles_ui_select button in profiles set ui
...
It was using IfcMaterialProfile id instead of IfcProfileDef id, so profile was never selected
Example - https://imgur.com/a/Sf1ghPO
2025-03-06 18:43:54 +05:00
Andrej730
b5260d3005
copy_class to prevent duplicating profiles #6261
2025-03-06 18:43:54 +05:00
Andrej730
79940641b2
typing
2025-03-06 18:43:54 +05:00
Andrej730
7458040949
Fix ifcpatch unit conversion for lists of ifc entities #6280
2025-03-06 16:14:02 +05:00
Andrej730
14eb543662
TestConvertFileLengthUnits - add attributes conversion tests
2025-03-06 16:14:02 +05:00
Andrej730
e786687882
ConvertFileLengthUnits - unify tests, add ifc4x3 tests
2025-03-06 16:14:02 +05:00
Andrej730
37e131193b
edit_georeferencing - add note on MapUnit data type
2025-03-06 16:14:02 +05:00
Andrej730
dfb00f27bb
Fix georeferencing docs url
2025-03-06 16:14:02 +05:00
Dion Moult
53dea65d8b
See #1227 . Implement joins for sloped walls.
2025-03-06 19:38:46 +11:00
Andrej730
2c16839de7
Fix parametric stairs/railings/roofs not updating ifc link after representation update #6264
...
Related to 3107fd9
2025-03-05 18:53:57 +05:00
Andrej730
c4f2d556f1
Uncomment use of get_edges_representation_item_ids
...
as build was updated awhile ago
2025-03-05 18:53:57 +05:00
Andrej730
74900193ee
merge_identical_objects to use quicker version of get_info
2025-03-05 18:53:57 +05:00
Andrej730
2987d38a31
append_asset - check unique styles based on their name #6269
2025-03-05 18:53:56 +05:00
Andrej730
08b50bb9ea
Library UI - recognize already appended styles
...
Example - https://i.imgur.com/XCXHY4C.png
Noticed investigating #6269
2025-03-05 18:53:56 +05:00
Andrej730
1257eb0872
append_asset - allow using same name for different ifcpresentationstyle types
...
Since they are not used interchangeably typically.
2025-03-05 18:53:56 +05:00
Andrej730
1c8ef176b1
typing
2025-03-05 18:53:56 +05:00
Andrej730
e1e51cbf26
black .
2025-03-05 18:53:56 +05:00
Andrej730
4c97cc8a41
import_ifc - not to break completely on facing breaking mesh #6270
...
create_mesh returns None only in case if it meets some exception and it prints logs in that case, but atleast some breaking mesh won't be in the way of users trying to open some model
2025-03-05 18:53:09 +05:00
Dion Moult
7c6e124fe9
See #1227 . Basic implementation of sloped walls (joins not yet considered)
2025-03-05 22:10:33 +11:00
Andrej730
3fc312752b
Show an error for unsupport curve types #6259
2025-03-04 18:10:42 +05:00
Andrej730
d0cb5456b3
Fix importing IfcPolylines always assuming they're closed
...
Resolved issue during import in #6259 but doesn't completely resolves the issue.
2025-03-04 18:10:42 +05:00
Andrej730
86072079de
draw_image_for_ifc_profile - optimizations using numpy
2025-03-04 18:10:42 +05:00
Andrej730
9440096106
Fix #6260 after 2f6ae17
2025-03-04 18:10:42 +05:00
Andrej730
649a913bbc
add_profile_representation - add test
2025-03-04 18:10:42 +05:00
Andrej730
53a3afaded
typing
2025-03-04 18:10:41 +05:00
Andrej730
33d3984990
add_profile_representation - reuse util.shape methods
2025-03-04 18:10:41 +05:00
Andrej730
5f86c6d1c2
shape_builder.create_axis2_placement_3d_from_matrix - small optimization
...
create_axis2_placement_3d now is fine with numpy arrays
2025-03-03 13:54:57 +05:00
Andrej730
10d5378ee3
TessellateElements - small optimization
...
tolist() supports conversion of multidimensional arrays too
2025-03-03 13:54:57 +05:00
Andrej730
7f27785927
docs fixes
...
1) material.add_profile_set doesn't exist
2) usecase.file is not defined, use `model` instead`
3) Specify material for material.assign_material
2025-03-03 13:54:57 +05:00
Andrej730
fed063a0c6
edit_profile_usage - add test
2025-03-03 13:54:56 +05:00
Andrej730
855062e36b
Quick to select profile from BIM Tool in Profile UI
...
Example - https://imgur.com/a/tJdQUGq
2025-03-03 13:54:56 +05:00
Andrej730
7b74b6c68f
Simplify edit_profile_usage with util.shape
2025-03-03 13:54:56 +05:00
Andrej730
a01278aa8d
ifcopenshell.util.shape to return Python floats if return is just a scalar
2025-03-03 13:54:56 +05:00
Ryan Schultz
99c49736fa
small tweak
2025-03-02 10:31:46 -06:00
Bruno Postle
c1efdbb8ea
black .
2025-03-02 11:37:52 +00:00
Bruno Postle
e240ae2669
Fix bpy.ops.bim.select_by_material() for layersets
...
This operator assumes all material definitions have a Name attribute,
mostly they do except that Material Layer Sets have a LayerSetName
attribute for reasons.
2025-03-02 11:24:07 +00:00
Ryan Schultz
945099b817
Set IfcMaterialLayerSetUsage's DirectionSense/OffsetFromReferenceLine/ReferenceExtent on all selected objects
2025-03-01 18:04:41 -06:00
Bruno Perdigão
f4b0fe6560
Polyline tool - Fix issue where Y and Z axis lock were inverted when in YZ plane.
2025-02-28 13:52:20 -03:00
Bruno Perdigão
efc6842a9d
Improve snapping for empty objects.
2025-02-28 13:44:00 -03:00
Bruno Perdigão
43931e951e
Fix another issue (follows 2609a8293c) with walls created with obtuse x_angle.
2025-02-28 13:19:51 -03:00
Bruno Perdigão
134a480b03
Fix slab preview decorator when using obtuse x_angle.
2025-02-28 13:02:02 -03:00
Bruno Perdigão
0eb32ed7b7
Refactor ChangeExtrusionXAngle to support obtuse x_angle for slabs.
...
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition. This is challenging because
there are a few features that interact with each other to create slabs,
like `depth`, `direction_sense`, `offset` and `x_angle`. In addition,
these interactions can happen in different parts of the code. This
commit addresses `ChangeExtrusionXAngle` in `model/wall.py`.
See e8e88c25fdcef55826443fe6b000aec1baa6f25a for more information.
2025-02-28 13:02:02 -03:00
Bruno Perdigão
1855ac421c
Refactor slab addition to support obtuse x_angle. See #5938
...
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition.
This is challenging because there are a few features that interact
with each other to create slabs, like `depth`, `direction_sense`, `offset`
and `x_angle`. In addition, these interactions can happen in different parts
of the code. This refactor improves the coherence between those different parts.
Files changed:
- `api/geometry/add_slab_representation.py`
- `model/slab.py` - inside the function `change_thickness()`
File to be changed in a following commit:
- `model/wall.py` - inside the operator `ChangeExtrusionXAngle` - To-do
2025-02-28 13:02:02 -03:00
Bruno Perdigão
7a69d6f20e
Fix issue when updating wall x_angle with obtuse angle. See #5938
2025-02-28 13:02:02 -03:00
Bruno Perdigão
2609a8293c
Fix issue where walls are created with obtuse x_angle. See #5938
2025-02-28 13:02:02 -03:00
Bruno Perdigão
e68c47a897
Remove code related to 0104a2cc9f
2025-02-28 13:02:02 -03:00
Andrej730
06fa2b05d6
Fix #6245 after 17642ca
2025-02-28 18:31:14 +05:00
Andrej730
db52e70121
Fix possibility of adding new invalid surface styles
...
1) Add default values for new IfcSurfaceStyleLighting so they won't appear invalid.
2) Temporarily disable starting surface style with a texture style since it requires additional texture UI to be exposed or some default texture to be assigned to keep it valid.
2025-02-28 18:31:14 +05:00
Andrej730
c81fe97cc2
Fix bim.change_cardinal_point breaking if one of objects had no material
2025-02-28 18:31:13 +05:00
Andrej730
b9f4503206
Paramteric doors/windows - detect previously assigned materials when editing is enabled
...
Example - https://imgur.com/a/FEbSBaX
2025-02-28 18:31:13 +05:00
Andrej730
bd4dc501a2
Pamateric doors/windows - add material select shortcut to UI
...
Example - https://i.imgur.com/UfJTjGz.png
2025-02-28 18:31:13 +05:00
Andrej730
8d1255f0bc
Fix toggling wireframe for odd case when there are no objects linked
...
Noticed investigating #6242
2025-02-28 18:31:13 +05:00
Andrej730
cc7abe6a8d
Fix error applying blender offset to read-only matrix (e.g. during linking)
...
Example:
```
File "\bonsai\bim\module\project\operator.py", line 1815, in execute
self.process_occurrence(shape)
File "\bonsai\bim\module\project\operator.py", line 1952, in process_occurrence
obj.matrix_world = tool.Loader.apply_blender_offset_to_matrix_world(obj, mat)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\tool\loader.py", line 952, in apply_blender_offset_to_matrix_world
matrix[0][3] = offset_xyz[0]
~~~~~~~~~^^^
ValueError: assignment destination is read-only
```
Noticed investigating #6242
2025-02-28 18:31:12 +05:00
Andrej730
edfcc3f74b
ifc2sql - change default database name to match default sql_type
...
Co-Authored-By: bsmithuk <68438529+bsmithuk@users.noreply.github.com >
2025-02-28 18:31:12 +05:00
Andrej730
b1c87b1eb4
Set tools hotkeys name to empty string to hide it from tooltip #6238
2025-02-28 18:31:12 +05:00
Andrej730
d37bda6871
cad operators - add descriptions #6238
2025-02-28 18:31:12 +05:00
Andrej730
bb0d156bbf
cad operators - use Blender units for props
2025-02-28 18:31:12 +05:00
Andrej730
b89ffcb6d0
SplitByBuildingStorey - ensure user won't pass a file by accident
2025-02-28 18:31:12 +05:00
Andrej730
323967b9fd
Fix ifc2sql test after 9055f14bb9
2025-02-28 18:31:11 +05:00
Andrej730
4dd10b16e6
SplitByBuildingStorey - Bonsai to recognize filepath argument after cac3d7f
2025-02-28 18:31:11 +05:00
Andrej730
15a0d43180
fix for glob pattern in 62d53ba62d
2025-02-28 18:31:11 +05:00
Andrej730
5a1f7000ec
ifcpatch - add simple test for docs generator
2025-02-28 18:31:11 +05:00
Andrej730
277aaca6c5
typing
2025-02-28 18:31:10 +05:00
Andrej730
9187f2d2b5
Bonsai patcher - small fix for cases when Blender restarts
2025-02-28 18:31:10 +05:00
Thomas Krijnen
ce4407ff3c
Some successes writing and reading
2025-02-27 22:07:31 +01:00
Andrej730
62d53ba62d
Bonsai - recognize ifc2sql database argument as filepath #6227
2025-02-27 18:35:43 +05:00
Andrej730
9055f14bb9
Ifc2Sql - hide IFC output argument as there's already database argument #6227
...
Also handle directory paths more gracefully.
2025-02-27 18:35:43 +05:00
Andrej730
0bd608b6cb
Bonsai - ifcpatch description to include arguments descriptions
...
Also fix a bug with broken patch descriptions if some argument had more than one line for the description.
Example - https://i.imgur.com/1syL4gJ.png
Notcied working on #6227
2025-02-27 18:35:43 +05:00
Andrej730
497542d7a0
ifc2sql - small optimizations
2025-02-27 18:35:43 +05:00
Andrej730
26b2a7d584
typing
2025-02-27 18:35:43 +05:00
Andrej730
2d0bd9782a
Reuse tool.Blender.add_layout_hotkey_operator
...
Now all tools are using a general method and it should be easier to maintain the consistency between the tools.
Fixes #6238 .
ping @trhyder just in case
2025-02-26 17:55:15 +05:00
Andrej730
746a61a199
Add tool.Blender.KEY_MODIFIERS instead of storing it at workspaces
2025-02-26 17:55:15 +05:00
Andrej730
24df52e2f7
Do not purge orphaned IfcDocumentReferences #6117
2025-02-26 17:55:14 +05:00
Andrej730
257f0b11f5
Fix typo
2025-02-26 17:55:13 +05:00
Andrej730
b4f2039367
Fix bim.purge_unused_openings poll
...
It was returning true regardless whether tool.Geometry.has_openings returned True or not.
2025-02-26 17:55:13 +05:00
Thomas Krijnen
c58c8269af
Fix codegen
2025-02-26 09:34:02 +01:00
Thomas Krijnen
c0f148cd3c
Run codegen for header schema
2025-02-26 09:25:04 +01:00
Dion Moult
cfb7d026d1
IfcPatch recipe for Revit 2025 TINs import workaround
...
To understand what's going on, please read the docstring. Then please
take as much alcohol required to erase that memory.
2025-02-26 18:13:29 +11:00
Dion Moult
34acd6de35
See #1227 . Implement ATPATH wall connections (going both ways).
2025-02-26 18:13:29 +11:00
Dion Moult
0f3de599a6
Don't break if no area unit defined
2025-02-26 18:13:28 +11:00
Bruno Perdigão
0104a2cc9f
Remove polyline wall size limit restriction. See #6162
2025-02-25 18:06:42 -03:00
Bruno Perdigão
81f4b08b6d
Fix issue where long lines where not being detected by the snapping system.
2025-02-25 18:06:42 -03:00
Bruno Perdigão
10776b7de8
Remove debug print statement
2025-02-25 18:06:42 -03:00
Bruno Perdigão
b0efb648f2
Make snapping system zoom-dependent. See #6162
...
Refactor the snapping system to better organize the weighting and ordering
of snap distances. This change enhances the "stickiness" of snapping points,
allowing for prioritized control over different types of snapping points.
2025-02-25 18:06:42 -03:00
Thomas Krijnen
1d9dcb3ab7
Add header schema
2025-02-25 21:30:20 +01:00
Thomas Krijnen
a420c4b707
Work towards serialization of data
2025-02-25 21:29:54 +01:00
Andrej730
a20a8a68a6
Smal UI fix - display "Types" instead of "Typess"
2025-02-25 18:32:47 +05:00
Andrej730
f8ec8402fe
Remove test for deprecator operator ( c85eb79)
2025-02-25 18:28:48 +05:00
Andrej730
aaf008f007
Fix adding transom to door #6230 ( d23cfcb)
2025-02-25 18:28:48 +05:00
Andrej730
f63d6b80c5
quantitifaction - not to add empty qto if nothing was quantified
...
It already works that way for ifcopenshell quantitification, making it work the same for Blender quantifications.
Noticed in #6220
2025-02-25 18:28:48 +05:00
Andrej730
2f6ae1745f
typing
2025-02-25 18:28:48 +05:00
Andrej730
5f4098e5d4
Update type_elements_filtered on changing ifc class
...
Needed after 1d815cdb67
2025-02-25 18:28:47 +05:00
Andrej730
b49cc6c5e9
AuthoringData.data["relating_type_data"]
...
Simplify lots of data keys to just one dictionary relating_type_data, so it will be easier to maintain it and update if needed.
2025-02-25 18:28:47 +05:00
Andrej730
dcc681ac74
Revert a428169 to avoid constant reload of cached data
...
The code was recalculating type_elements and relating_type_id every time Blender trying to check enum items.
Couldn't replicate issue when type duplicated, perhaps it's resolved some other way already.
2025-02-25 18:28:47 +05:00
Thomas Krijnen
240c78c12a
Update IfcHierarchyHelper.h
2025-02-25 14:18:10 +01:00
Andrej730
6de409031e
Fix #6222
...
Mentioned in #6223
2025-02-25 14:21:01 +05:00
Bruno Perdigão
ea274588b0
See #6214 . Fix how extrusion existing angle is calculated.
...
The issue happen when the layer has a negative direction sense.
2025-02-24 20:46:37 -03:00
Bruno Perdigão
e46e1512fa
Fix #6160 where axis snapping in polyline tool were not working consistently
2025-02-24 20:46:26 -03:00
Thomas Krijnen
048f77cfed
Getting closer to working SPF again
2025-02-24 20:46:29 +01:00
Thomas Krijnen
70182d943d
Update build_osx.yml
2025-02-24 17:11:01 +01:00
Andrej730
0bd4451ce9
Fix issue not cleaning up the mesh after 76277c35d2
2025-02-24 19:31:36 +05:00
Andrej730
899ada0019
Fix purge unused types test after 3bb4243
2025-02-24 18:52:35 +05:00
Andrej730
f6ae711f6c
Fix feature tests failing due to AuthoringData changes
...
relating_type_id now relies on type_elements which relies on ifc_class_current and they wasn't updated when ifc_class was changed.
Typical failing test looked like "TypeError: bpy_struct: item.attr = val: expected a string enum, not int".
2025-02-24 18:52:35 +05:00
Andrej730
1d815cdb67
Fix issue reloading AuthoringData from workspace at every draw call
...
If data was already loaded for BIMTool ("all") this ` elif ifc_element_type == "all" and AuthoringData.data["ifc_element_type"] is not None:` would always fail and this `AuthoringData.data["ifc_element_type"] != ifc_element_type` would always result to True, constantly recalculating data on every draw call.
This may uncover some issues that were hidden by the constant update (e.g. the bug fixed in the next commit).
Simplified it so now ifc_element_type is almost always referring to either ifc class or None. It's still using "all" in the BIMTool itself but then it's converted to None when passed to draw methods.
2025-02-24 18:52:35 +05:00
Andrej730
ce6339869d
Fix some feature tests
2025-02-24 18:52:35 +05:00
Andrej730
5eb9cb2ee4
len(get_inverse) -> get_total_inverses
2025-02-24 18:52:35 +05:00
Andrej730
6eda4e389c
typing
2025-02-24 18:52:34 +05:00
Andrej730
0783f8082e
black .
2025-02-24 18:52:34 +05:00
Thomas Krijnen
3854afb34d
Update build-all.py; --force when fetch tags
2025-02-24 14:01:48 +01:00
Thomas Krijnen
0b2321f478
Add template keyword
2025-02-24 13:33:53 +01:00
Thomas Krijnen
5510fb1e3c
Add constexpr
2025-02-24 13:30:45 +01:00
Thomas Krijnen
7331f7361f
Workaround explicit in-class specialization to if constexpr #6206
2025-02-24 13:30:24 +01:00
Andrej730
e06684e274
Comment out outdated code #6200
2025-02-24 16:46:32 +05:00
Andrej730
57d6e9b544
Fix error reassigning class for structural items
2025-02-24 15:15:54 +05:00
Andrej730
5fa0aa03e4
util.schema.is_a - use c++ implementation
2025-02-24 15:15:54 +05:00
Andrej730
1d2ac9426d
Fix error during class reassignment after 43cc7a0
2025-02-24 15:15:54 +05:00
Andrej730
e79a85a4fd
bim.edit_container_attributes - remove deprecated operator
...
Currently you can edit container name directly from spatial manager, so this operator is no longer needed (and it also was missing from UI either way).
2025-02-24 15:15:54 +05:00
Andrej730
076a6c152d
fix typo
2025-02-24 15:15:54 +05:00
Andrej730
76277c35d2
Fix for 365393aa07
...
ahh, forgot that representation is already removed at this point
2025-02-24 15:01:00 +05:00
Thomas Krijnen
a81b4a7dbb
Create build_all.yml
2025-02-24 10:30:49 +01:00
Andrej730
ee8a3927b4
Fix displaying some attr types names after e8cb9e7 #6216
2025-02-24 14:20:49 +05:00
Andrej730
365393aa07
Fix #6209 after 67bac44
2025-02-24 14:01:24 +05:00
Thomas Krijnen
9289e1d0cc
Try catch to keep the people happy #6176
2025-02-23 15:50:31 +01:00
Thomas Krijnen
c30b5cbc08
Add std::array typemap #6137 #6191 #6196
2025-02-23 15:22:36 +01:00
Thomas Krijnen
9736345d79
Test case #6173
2025-02-23 14:46:31 +01:00
Thomas Krijnen
5599e52184
Option to retain original edges in cgal for non-boolean non-face-with-voids inputs #6173
2025-02-23 14:46:10 +01:00
Thomas Krijnen
ce26af5a7e
Use ProfileType in mapping #6175
2025-02-23 11:01:17 +01:00
Dion Moult
973c9e2ec9
See #1227 . Implement axis updating for new wall join code.
2025-02-23 18:59:17 +11:00
Dion Moult
29a890662e
See #6201 . Another typing regression fix.
2025-02-23 18:30:58 +11:00
Dion Moult
b42c3ba8c2
See #1227 . Wall layer test script now supports atstart/atend combo test cases and materials.
2025-02-23 17:28:14 +11:00
Dion Moult
a7509dbe29
See #1227 . Experimental support for 3D layerset slicing.
2025-02-23 17:27:32 +11:00
Dion Moult
23158b1b7e
Fix #6201 . Regression in creating drawings due to typing in 67bac441ad
2025-02-23 12:02:50 +11:00
Richard Brice
8c16f394c1
Updates alignment api
...
Fixes mapping of vertical alignment parabola business logic to geometry. Adds creation function of h and v alignment. Adds stationing referent at start of alignment. Fixes utility functions
2025-02-22 16:16:59 -08:00
Richard Brice
12f8a1f769
Adds utility to stringize station values
2025-02-22 16:15:00 -08:00
Richard Brice
7ffd2742d6
Fixes bug mapping geometry for IfcSectionedSolidHorizontal that was introduced in 26ba761
2025-02-22 16:11:10 -08:00
Richard Brice
6429fe34ed
Implements IfcHierarchyHelper.addRelatedObject for IfcRelDefinesByType
2025-02-22 16:11:06 -08:00
Jonas Frei
d38f56e82d
fix: bug in initialization of gltf serialiser fixed
2025-02-22 15:31:45 +01:00
Dion Moult
c549dea943
See #1227 . Test script for priority-aware wall layer joins.
2025-02-22 20:01:17 +11:00
Thomas Krijnen
b4d0cfe0c8
Wim build script
2025-02-21 16:14:48 +01:00
Thomas Krijnen
69139dee5c
Update late bound inst in ifcconvert
2025-02-21 16:14:34 +01:00
Thomas Krijnen
e82cfda6a3
Update CMake
2025-02-21 16:14:01 +01:00
Thomas Krijnen
5c9ff09517
Rerun codegen
2025-02-21 16:13:39 +01:00
Thomas Krijnen
fb1d78b311
Update codegen
2025-02-21 16:13:21 +01:00
Thomas Krijnen
da4e86a1d5
Exploration of using rocksdb as file+instance storage
2025-02-21 16:12:16 +01:00
Andrej730
894c05e138
Fix old typo in 686f4a0
2025-02-21 18:45:23 +05:00
Andrej730
92c2fc0b7f
Fix errors regarding added PredefinedType to IfcAnnotations in IFC4X3 #6200
...
In IFC4X3 IfcAnnotation now has PredefinedType and checking ObjectType isn't enough.
2025-02-21 18:45:23 +05:00
Andrej730
ee2fa739bb
remove_deep2 - fix traversing same element twice
...
(I hope I don't miss anything, no tests seem to fail and performance is increased significantly) but because `subelement_queue` initiated with the `traverse` all `element`'s subelements will be traversed inside `while` loop twice - once as a part of initial queue and another time when `element` is traversed inside the loop and all those elements added to the queue again.
Now we just initiate the `queue` with the `element` and it will be traversed inside the loop like any other element.
2025-02-21 18:45:12 +05:00
Andrej730
f7efbe5924
remove_representation - optimizations
...
1) `do_not_delete` performs best when it's set
2) also_consider when `element` related elements go first, so there will be no need to traverse all other elements to see if they cover `element`'s inverses.
2025-02-21 18:45:11 +05:00
Andrej730
6e20ee9fea
remove_deep2 - also_considered_inverses optimization
...
1) replaced walk with traverse(max_levels=1)
2) early return if there total_inverses == 0
3) early return if also_considered_inverses is enough to cover total_inverses
2025-02-21 18:45:11 +05:00
Andrej730
e6d3396630
typing
2025-02-21 18:45:11 +05:00
Andrej730
cf1647a451
Fix bugs in 17642ca4e9
2025-02-21 17:31:33 +05:00
Andrej730
69535c53e0
Fix typo in 4bb32b252d #6199
...
ahh
2025-02-21 17:31:33 +05:00
Bruno Perdigão
fed8c21625
Polyline tool - Improves the preview fix for #6083 by avoiding overlapping edges.
2025-02-20 22:52:42 -03:00
Bruno Perdigão
0f92c2d26b
Fix #6161
...
Error - cannot access local variable 'snap_point'
2025-02-20 22:21:44 -03:00
Bruno Perdigão
c11060b46a
Fix #6185 issue when trying to create a slab with only two points.
2025-02-20 21:13:39 -03:00
Bruno Perdigão
9f0d408e79
See #6190 . Polyline tool support for XZ and YZ planes for profiles.
2025-02-20 18:46:23 -03:00
Bruno Perdigão
d37baa4e0c
Fix calculation for polyline tool when working with X, Y and Z.
2025-02-20 18:22:10 -03:00
Bruno Perdigão
ae4f125371
Fix auto-angle snapping in polyline tools.
...
When locked to a plane, the mouse will be loosely locked to and angle
that is divided by 15 degrees. This was not working properly for "XZ"
and "YZ" planes.
2025-02-20 18:22:10 -03:00
Andrej730
25d8fff5fd
remove_representation - small optimizations
...
check schema version instead of accessing attribute directly (hasattr under the hood is just doing getattr and checking whether it returns AttributeError), so one less IFC access
Similar thing with element.Item to access IFC just once.
2025-02-20 19:12:24 +05:00
Andrej730
331f491d50
typing
2025-02-20 19:12:24 +05:00
Dion Moult
b19ece18c6
Fix minor regression in linking models due to new tool call.
2025-02-20 23:21:59 +11:00
Andrej730
abddc739fe
Fix UI for 4bb32b252d
2025-02-20 17:19:31 +05:00
Andrej730
174f909137
Fix #6192
2025-02-20 17:01:12 +05:00
Andrej730
a826115803
Project Library UI - allow expanding libraries hierarchy even if there are no assets yet
2025-02-20 14:33:00 +05:00
Andrej730
79abbad796
Project Library UI - fix library asset count not considering assets from sublibraries
...
As a result if all elements were assigned to sublibrary, it was showing that library itself has 0 assets and wasn't allowing to expand to see the sublibraries.
2025-02-20 14:33:00 +05:00
Andrej730
04a20b5c80
small fix for 4bb32b252d
2025-02-20 14:33:00 +05:00
Dion Moult
f4d101788d
Fix insane bug when replacing element that looped through every single element.
2025-02-20 19:18:35 +11:00
Andrej730
4bb32b252d
IFC Delete - add logs to system console
...
In some cases deletion can take ages, so there should be at least some way for user to find out how it's going.
2025-02-19 18:31:30 +05:00
Andrej730
8b92b28dfc
should_clean_mesh - add description
2025-02-19 18:31:09 +05:00
Andrej730
43cc7a0304
Replace direct access to IfcStore with tool.Ifc
2025-02-19 18:31:07 +05:00
Andrej730
67bac441ad
typing
2025-02-19 18:31:06 +05:00
Andrej730
6c511f6b1b
Project library UI - fix missing elements added to parent libraries
...
Previously if there was library A and it had sublibrary B and then some element were directly assigned to library A, UI still wouldn't show this element and would show only elements assigned to the B, the last library in the hierarchy
2025-02-19 17:53:59 +05:00
Dion Moult
deb0a46acb
Fix #6186 . Don't hide filter UI if there are no results.
2025-02-19 17:52:34 +11:00
Dion Moult
ee0599e263
Fix #6136 . Allow setting of custom tmp dir, useful for packaged envs like flatpak
2025-02-19 17:44:48 +11:00
Dion Moult
a8efd53d6b
Fix #6182 . For convenience, precalculate scale value for projected CRS map unit map conversion
2025-02-19 16:41:20 +11:00
Dion Moult
02f0c92a41
Fix bug where updating the null value on an enum property would lead to infinite recursion
2025-02-19 16:39:24 +11:00
Bruno Perdigão
f11e09c7d8
See #6121 . Area measurement tool now uses IFC area unit.
2025-02-18 19:37:22 -03:00
Richard Brice
bb1e00e474
Fixes problems mapping vertical alignment segments business logic to geometry
2025-02-18 12:43:11 -08:00
Andrej730
4efb79e472
fix missing get_spline_points in add_representation
2025-02-18 18:50:35 +05:00
Andrej730
527e0f3dbf
set_element_value - fix error for Python 3.9
...
types.EllipsisType was added only in 3.10
2025-02-18 18:50:35 +05:00
Andrej730
8ea3142451
Fix errors removing layers/constituents after eeac0a2
2025-02-18 18:50:35 +05:00
Andrej730
a68cb74699
ifcopenshell.alignment - fix error in Python 3.9
...
match statement was added only in Python 3.10
2025-02-18 18:50:35 +05:00
Andrej730
17642ca4e9
typing
2025-02-18 18:50:34 +05:00
Andrej730
83a351b1c7
black .
2025-02-18 18:50:33 +05:00
Dion Moult
37baa7a57b
Fix #5845 . Allow non GRAPH_VIEW reference representations. Apparently it's a thing in the docs.
...
If anybody can explain to me how Reference is meant to be used (the
example in the docs is really ambiguous) please do :)
2025-02-18 20:45:05 +11:00
Dion Moult
7ca2c043b5
Fix #6179 . Allow searching for materials in parametric object UI.
2025-02-18 20:37:50 +11:00
Dion Moult
1e3ddce5c2
Fix #6174 . Accommodate invalid index maps, and also implement an early return for single colours.
...
A single colour index map is a waste but some IFCs have it apparently.
2025-02-18 18:39:22 +11:00
Dion Moult
c79020aeab
See #5888 . Debugging undos is hard, so include the operator name in the event log.
2025-02-18 16:31:36 +11:00
Dion Moult
645298e9d6
See #5888 . Fix crash due to improper modal undo handling. It now considers both FINISH and CANCELLED states.
2025-02-18 16:30:27 +11:00
Dion Moult
ae76d3253d
See #5888 . Fix bug where loading type thumbnails made undo history not synced with Blender.
...
If a tool.Ifc.Operator updates a prop, the prop update function will
only call _after_ the operator finishes (and therefore adds an undo step
to the undo stack). If the prop update function then calls another
tool.Ifc.Operator, that will result in another "top-level" operator
call. This second operator _won't_ get added to Blender's undo history,
yet the Bonsai history / IfcOpenShell history will have another undo
step added. Yikes!
TL;DR don't call tool.Ifc.Operator from a prop update function.
2025-02-18 16:27:53 +11:00
Bruno Perdigão
693f7c5397
Fix #6119
2025-02-17 18:03:25 -03:00
Bruno Perdigão
a8960957c0
Fix #6083
2025-02-17 17:09:13 -03:00
Bruno Perdigão
c609aea1de
Black .
2025-02-17 16:46:58 -03:00
Bruno Perdigão
247bff4075
Polyline tool initial support for custom transformations.
...
Still early development. Only works for XY plane.
https://imgur.com/a/qW8gMFW
2025-02-17 16:46:58 -03:00
Bruno Perdigão
5a3a032fe6
Snap - modify intersection plane origin to be related to the view location.
2025-02-17 16:46:58 -03:00
Andrej730
5d8c2f2ec2
deprecate test-safe #5192
2025-02-17 17:58:45 +05:00
Andrej730
93ee92c401
Profiles, Materials UI - indicate in UI currently edited element
2025-02-17 17:58:45 +05:00
Andrej730
8c2d71b306
Rename library references from UI
...
Example - https://imgur.com/a/Ez99d1N
2025-02-17 17:58:45 +05:00
Andrej730
8f1446bfa4
Library UI - rename assets and libraries from UI
...
Example - https://imgur.com/a/0kcQrb2
2025-02-17 17:58:45 +05:00
Andrej730
32608ff194
py -m ifcopenshell.validate to use argparse
...
So command would fail if no arguments provided and there would hints on how to use it.
2025-02-17 17:58:45 +05:00
Andrej730
b0fbea60ae
typing
2025-02-17 17:58:44 +05:00
Dion Moult
8f261be338
See #5839 . More accurately consider the relating product definition when checking for shape aspects.
2025-02-16 17:08:55 +11:00
Dion Moult
42e184c936
Fix #5839 . Appending an asset now also considers shape aspects.
2025-02-16 17:08:34 +11:00
Dion Moult
e0a93626a5
Fix #6038 . Standardardise passing around as_posix() paths
2025-02-16 16:17:18 +11:00
Dion Moult
aaa4be1a94
Fix #5691 . UI tweak to show less colour, more text for usability.
2025-02-16 15:54:28 +11:00
Dion Moult
9f453d54d8
Piles should also default to vertical, just like columns
2025-02-16 15:43:03 +11:00
Dion Moult
b226a79ee8
See #5888 . Fix bug where polyline tools weren't part of the undo system.
2025-02-16 11:48:51 +11:00
Dion Moult
774a770c48
Purge usage of mathutils in grid API functions
...
The only thing left is add_representation which is Blender specific
anyway and is slowly being refactored out.
2025-02-16 08:20:59 +11:00
Dion Moult
aff90e89f7
Don't burn CPU cycles for updating parametric windows
2025-02-16 07:47:03 +11:00
Dion Moult
aad4dad9a7
Migrate documentation for IfcTester and make optional deps mandatory in PyPI
...
I don't like this, but PyPI makes it really, really hard to "discover"
optional deps and what they're used for. So it's just easier to make it
a mandatory dependency and advanced users can always strip it out. This
stops user reports about "it doesn't work out of the box I only did pip
install ifctester"
2025-02-16 07:46:22 +11:00
Dion Moult
6ac6f13018
Fix #5824 . Prioritise 3D over 2D. Only then consider subcontexts.
...
It's unexpected in our 3D default viewing world to have 2D first over
3D.
2025-02-15 19:03:52 +11:00
Dion Moult
d23cfcb2cf
Fix #2981 . Standard case windows can now have different materials and implement shape aspects.
2025-02-15 18:31:25 +11:00
Dion Moult
71668fbaf1
Only switch representation once when creating a door
...
Previously it would switch representation (and sync changes) every
single time a new representation was created (in the
replace_obj_ifc_representation function). I think this is misplaced
responsibility. The function should change the representation, but not
be responsible for switching.
2025-02-15 18:29:13 +11:00
Dion Moult
81b7f3dc30
New API function to set shape aspect constituents
2025-02-15 18:26:13 +11:00
Dion Moult
a0fa861b92
Shape builder can now created triangulated face sets
2025-02-15 16:10:12 +11:00
Dion Moult
a63c8e1d70
Don't burn CPU cycles recalculating the door every draw call in parametric door interface
2025-02-15 16:09:26 +11:00
Andrej730
3e1d1bf7fa
Library UI - tree view
...
Example of tree view with libraries hierarchy - https://imgur.com/a/zPuaoPv
Example of library assignment in non-tree view - https://imgur.com/a/9kZFblj
2025-02-14 17:51:47 +05:00
Andrej730
20e1fc2618
Fix bug in get_container not passing specified ifc_class to the parent #6155
2025-02-14 17:49:51 +05:00
Andrej730
1014487d82
black .
2025-02-14 17:49:47 +05:00
Dion Moult
3832077d0f
Fix recent regression where util.shape.get_vertices returns a read-only array, so you can't edit in place (e.g. for offsets)
2025-02-14 13:06:09 +11:00
Bruno Perdigão
768bf17b05
Small fix in snap.
2025-02-13 18:26:44 -03:00
Bruno Perdigão
fb4ad5290f
Fix mix_snap_and_axis() to ignore intersection too close from polyline.
...
Follows 5fe87bf5aa
2025-02-13 17:20:10 -03:00
Bruno Perdigão
f20bdd0ab6
Fix issue where detected snap vector where being changed by other function.
...
It was probably a reference issue. Copying the vectors solved the issue.
2025-02-13 16:49:37 -03:00
Bruno Perdigão
5fe87bf5aa
Modify mix_snap_and_axis() to select the snapping point closest to the last point.
2025-02-13 14:51:40 -03:00
Bruno Perdigão
c23a20df84
Small fix
2025-02-13 14:51:40 -03:00
Bruno Perdigão
b87cd33b12
Polyline tool a snapping system small refactor.
2025-02-13 14:51:40 -03:00
Bruno Perdigão
8acd5321b0
Fix polyline tool angle lock when using XZ and YZ plane
2025-02-13 14:51:39 -03:00
Bruno Perdigão
1165ef3f33
More refactor of the snapping system, after 7e239ac511e991fd8ccf32add878024d921db38b
2025-02-13 14:51:39 -03:00
Bruno Perdigão
2b7108a1d8
Refactor snapping points data structure.
2025-02-13 14:51:39 -03:00
Bruno Perdigão
33d9e050ec
Fix #6123
2025-02-13 14:51:39 -03:00
Andrej730
b88fd964bc
bim.refresh_library - add missing undo flag
...
It's unsafe in Blender to leave operators that edit blend data without undo flag.
2025-02-13 18:55:44 +05:00
Andrej730
0b32c89c26
use_smooth - use correct buffer length
...
apparently it wasn't creating any issues but still creating larger buffer than necessary
2025-02-13 18:55:44 +05:00
Andrej730
9db1783062
more numpy arrays to match expected buffer type
2025-02-13 18:55:44 +05:00
Dion Moult
2d54a48f8e
Add option for door glazing material
2025-02-13 19:18:17 +11:00
Dion Moult
39a30f2577
Redesign profile edit interface to be consistent like all other list+edit button interfaces
...
I kept on clicking the wrong thing
2025-02-13 19:18:02 +11:00
Dion Moult
1e946fd98e
Fix three small but significant typos in previous fixes.
...
BTW @andrej730 that optimisation is awesome. Here's a timeit:
import bpy
import numpy as np
import timeit
obj = bpy.context.active_object
verts = obj.data.vertices
def foreach_get_method():
coords = np.empty(len(verts) * 3, dtype=np.float32)
obj.data.vertices.foreach_get("co", coords)
coords = coords.reshape(-1, 3)
coords = coords.astype("d")
coords /= 10
return coords
def list_comprehension_method():
coords = [v.co / 10 for v in verts]
return coords
# Number of times each function will be executed
num_runs = 10000
t_listcomp = timeit.timeit(list_comprehension_method, number=num_runs)
t_foreach = timeit.timeit(foreach_get_method, number=num_runs)
print("foreach method: {:.6f} seconds over {} runs".format(t_foreach,
num_runs))
print("List comprehension method: {:.6f} seconds over {}
runs".format(t_listcomp, num_runs))
# foreach method: 0.088656 seconds over 10000 runs
# List comprehension method: 0.644446 seconds over 10000 runs
2025-02-13 13:07:29 +11:00
Richard Brice
79046e2970
Compute horizontal project of vertical spiral curve
2025-02-12 16:47:51 -08:00
Dion Moult
f6c6cc9a1b
Fix #6131 . Fix bug where you could potentially create an invalid composite profile with no profiles.
2025-02-13 07:35:58 +11:00
Dion Moult
af03953ef7
Apparently you couldn't edit composite profile defs. Now you can.
2025-02-13 07:35:58 +11:00
Thomas Krijnen
cdcbc2ad3b
Fix 2d boolean check for periodic curves #6147
2025-02-12 16:08:32 +01:00
Andrej730
ba2456ad36
Move common code to create_mesh_from_shape
2025-02-12 18:39:27 +05:00
Andrej730
299b5bcf6b
Optimize loading meshes using numpy arrays
...
1) avoid calling geometry.xxx multiple times as each time it creates a new copy
2) use numpy arrays with correct data type, so Blender could perform buffer copy significantly reducing overhead
2025-02-12 18:39:27 +05:00
Andrej730
cb95539cb0
reuse get_cartesian_point_offset
2025-02-12 18:39:27 +05:00
Andrej730
7b78ebc0f3
Fix possible float precision issues similar to f6087613f0
2025-02-12 18:39:27 +05:00
Andrej730
f39e6ccb54
typing
2025-02-12 18:39:27 +05:00
Dion Moult
3e1710c6fc
Fix bug where duplicating a curve (which would result in a new curve) didn't go in the same collection nor was linked to the right item due to a typo
2025-02-12 23:53:54 +11:00
Thomas Krijnen
fac5104bd8
Take into account edge orientation also for polygonal edges #6113
2025-02-12 10:57:30 +01:00
Thomas Krijnen
51c4059771
20.04 is closing down
2025-02-12 10:31:14 +01:00
Dion Moult
f24de9d384
Fix bug where you couldn't add a meshlike object in a boolean hierarchy
2025-02-12 15:36:57 +11:00
Dion Moult
1e08a71c5a
Fix bug where disabling item mode didn't also quit from the boolean editing mode
...
These two modes should be tied together.
2025-02-12 15:31:56 +11:00
Dion Moult
24b4be3ea1
Fix bug where item positions weren't synced before changing numeric attributes
2025-02-12 08:40:21 +11:00
Dion Moult
d2420c2e45
Revert "Hotfix for PyPI < python 3.11". Release made.
...
This reverts commit d093d80698 .
2025-02-12 08:03:36 +11:00
Dion Moult
d093d80698
Hotfix for PyPI < python 3.11
2025-02-12 07:53:20 +11:00
Bruno Perdigão
aef972a518
Enable snapping of overlapped objects when viewport is in x-ray mode.
2025-02-11 12:31:24 -03:00
Bruno Perdigão
06c6fa5dff
Fix #6064
...
Slabs offset are now measured perpendicularly.
2025-02-11 10:33:29 -03:00
Andrej730
f6087613f0
add_representation - use numpy arrays for calculations that include model offset
2025-02-11 18:14:45 +05:00
Andrej730
45e36590eb
Add paste buffer to outliner context menu #6139
2025-02-11 18:14:45 +05:00
Andrej730
7f37acfd38
Fix typo
2025-02-11 18:14:44 +05:00
Andrej730
de2329c352
bim.override_paste_buffer - add description
2025-02-11 18:14:44 +05:00
Andrej730
09abf0c7ab
bim.override_paste_buffer - fix issue when ctrl-v might unlink currently selected ifc elements
2025-02-11 18:14:44 +05:00
Andrej730
77c2e626b3
Add info message on paste
...
Original Blender `view3d.pastebuffer` had an info missing and it wasn't displayed in UI since it's coming from suboperator. New info message also mentions that objects were unlinked from IFC
2025-02-11 18:14:44 +05:00
Andrej730
9ea6a1fc75
typing
2025-02-11 18:14:44 +05:00
Andrej730
5b7964f04c
black .
2025-02-11 18:14:44 +05:00
Andrej730
57d7d83ebb
Fix Python <3.10 support #6141
2025-02-11 16:50:07 +05:00
tim
2f4c3de92d
New icons
...
add_from_closed_loop and add_from_perimeter
2025-02-11 21:32:03 +11:00
tim
136270b566
IFC icon in Scene dropdown
...
custom white mode support for IFC icon in scene drop down menu
2025-02-11 21:31:15 +11:00
tim
557a5f03d2
Icon mode for Open-Recent-IFC-Project
...
Added UIData class with function for storing icon color mode. Open Recent IFC Project icons now supports blender dark, blender light, and custom "white" themes
2025-02-11 21:31:15 +11:00
tim
4e1ff8ea6a
Icon mode for IFC Modes
...
Added UIData class with function for storing icon color mode. IFC Mode dropdown now supports blender dark, blender light, and custom "white" themes
2025-02-11 21:31:15 +11:00
tim
08680d8726
Geographic Element Tool Icon
...
My tree was missing
2025-02-11 21:31:15 +11:00
Dion Moult
53cf1ee0a1
Fix UI bug where changing the profile name didn't result in the UI being refreshed
2025-02-11 20:03:50 +11:00
Dion Moult
ddf7d1b0b9
Change default behaviour of remove_representation not to remove named profiles
...
I guess this is a Bonsaism but it makes sense as named profiles are
significant, and it isn't the first time materials and profiles have
been treated as "rooted" in a sense. It's also annoying to keep on
having my profile library drop off when I'm just switching profiles.
2025-02-11 20:01:19 +11:00
Dion Moult
eeac0a2e30
Fix bug where removing material set items weren't consistent in how they purged materials and profiles
...
Previously remove_profile would purge unused materials and profiles, but
remove_layer and remove_constituent wouldn't. This was as subtle
inconsitency. Now everything by default consistently retains materials
and profiles, and has options to change this default.
2025-02-11 20:00:17 +11:00
Dion Moult
1f83b4f7a0
Fix bug where non-columns would still behave like columns if they were profiled which is unintuitive
...
On second thoughts only columns should go up, everything else should go
wherever you click to. Not really a bug, just an unexpected default.
2025-02-11 18:54:45 +11:00
Dion Moult
ada8cc90ef
Very minor docs rst syntax fix
2025-02-11 18:53:32 +11:00
Andrej730
21562d7e7d
Add distinguishable name for arrays constraints
2025-02-11 12:06:40 +05:00
Andrej730
77f9dbf4f0
small fix for 4c0a7e1ca9
...
mentioned in #6129
2025-02-10 19:11:13 +05:00
Andrej730
875dd37579
Save Blender preferences on Blender Restart #6095
2025-02-10 17:41:28 +05:00
Andrej730
e1c49ad317
Fix error adding transom to parametric door #6129
2025-02-10 16:47:14 +05:00
Andrej730
8e9d4be55d
Improve error logs for failing profiles #6131
2025-02-10 16:47:14 +05:00
Andrej730
65d65972ac
Fix occurrence name function prop missing after ce8bdff
2025-02-10 16:47:14 +05:00
Andrej730
b2d66bbb89
Fix bug where selecting element / element type without representation wasn't updating bim tools active type
2025-02-10 16:47:13 +05:00
Andrej730
d8a250f153
Update Annotation Tool types when selecting elements #6134
...
Similar to other BIM Tools
Update handler.py
2025-02-10 16:47:13 +05:00
Andrej730
4c0a7e1ca9
typing
2025-02-10 16:47:13 +05:00
Dion Moult
11c6b55f7c
Revise the modern COBie 2.4 implementation to also allow PointOfContact/WarrantyPeriod
...
Legacy COBie 2.4 allowed this but not sure why it dropped off.
2025-02-10 17:26:51 +11:00
Dion Moult
1d2214efd9
Fix IfcOpenShell-Python on Python 3.10
...
Elipsis is not allowed for generic typing
2025-02-10 17:26:03 +11:00
Dion Moult
cb027c80f9
Fix dev install script - brick schema directory changed
2025-02-10 10:50:25 +11:00
Dion Moult
44c7c6d14e
Bump to 0.8.2
2025-02-09 16:45:44 +11:00
Dion Moult
3e7f244100
Drop Windows 32bit support for this release as it isn't built. We can restore it in the future if needed.
2025-02-09 14:59:15 +11:00
Dion Moult
da1c92c42b
Bump IOS
...
Previous one didn't have the full matrix, so we can't release with it
2025-02-09 14:53:32 +11:00
Dion Moult
17682498da
Minor UI cleanup for reorganised visibility buttons
2025-02-09 14:53:09 +11:00