Commit Graph

15424 Commits

Author SHA1 Message Date
Dion Moult ebdfe2bccd Fix #5319. Workaround for upstream bpypolyskel bug where dormer ridges were not flat. 2025-01-20 17:17:37 +11:00
Dion Moult 942c3fec87 Add missing bin directory 2025-01-20 14:35:50 +11:00
Dion Moult 651c24bbfe See #5799. Fix segfault in upstream Blender when unlinking material objects in specific scenario.
I can't explain this one so I'm pretty embarrassed to commit this, but
it crashes (see situation in #5799) on my machine and I can't recreate
it outside this scenario. In any case I think as a general strategy we
should:

 1. Minimise reliance on msgbus
 2. Msgbus listeners themselves should be wary of invalid state (e.g. if
object is now unlinked)
 3. Not clear listeners (don't overreach)
2025-01-20 14:01:11 +11:00
Dion Moult b2213592ea Fix #5799. Also purge presentation style assignment when purging unused styles. 2025-01-20 13:59:00 +11:00
Dion Moult c311b65af5 See #5799. Allow merging unnamed styles.
Styles are special because their names aren't critically semantic. It's
more to do with the style definition.
2025-01-20 13:58:39 +11:00
Dion Moult e8b097e2cb See #5799. Remove slow / unnecessary material criticals that also have a risk of crashing
In general Blender on my machine at least sometimes has huge lag with
material previews.
2025-01-20 13:57:07 +11:00
Dion Moult 193ff1cd0c Mention builds website in docs. 2025-01-20 12:15:49 +11:00
Dion Moult a65aa92c87 See #5999. Revert to older bot build before speed regression. 2025-01-20 12:15:36 +11:00
Dion Moult 6af19bc98d Fix 3x slower major speed regression introduced in 98a9550260
The commit that introduced the problem was trying to optimise rendering
dense meshes with the opening decorator. However, it introduced more
calculation in the initial project load and stored more data on every
object. This resulted in models loading 3x slower for me which is pretty
major. The original problem needs further investigation.
2025-01-20 11:24:19 +11:00
Dion Moult 5769c0d442 Fix #5754. Cosmetic bug where UI was not refreshed when using advanced mode causing incomplete decorators to be drawn. 2025-01-20 00:25:29 +11:00
Dion Moult 5c058dff3e Fix #5766. Bump IOS. 2025-01-19 21:49:51 +11:00
Dion Moult f86e414055 Forgot to add a placement for new elements which is invalid. 2025-01-19 21:38:52 +11:00
Dion Moult c17febac0c Fix #5996. Bug where getting selected or active objects was not clear.
Sometimes we want to fetch selected objects, and that includes the
active object, even if the active object isn't actually highlighted in
the viewport (albiet rare, I think?).

Conversely sometimes we want to get the active object, even if it isn't
actually highlighted. The tool.Blender functions now have kwargs to
distinguish between these.
2025-01-19 17:17:56 +11:00
Dion Moult 2d811a6786 Fix fetching layers in item mode. Apparently the inverse name changes slightly.
Maybe because an item has a single layer whereas the shape is meant to
have many layers?
2025-01-19 17:09:32 +11:00
Dion Moult 6eed5607c4 Fix #5972. Purge old non-item-based boolean code 2025-01-19 17:09:02 +11:00
Dion Moult 0b46a31c25 Add item menu is now tailored for CSG representations.
I find this a bit of a strange behaviour in IFC. Imagine you start with
a Tessellation representation type. You're only allowed meshy things, no
solid extrusion. And vice versa if you have a SweptSolid representation
type.

Now imagine you suddenly create a boolean. Now, you can mix both
tessellations and solids together.
2025-01-19 16:58:10 +11:00
Dion Moult 4d7f078f8b Ensure item decorator is updated when editing things in item mode. 2025-01-19 16:56:31 +11:00
Dion Moult 046f7cbfd2 See #5972. You can now select booleans recursively. 2025-01-19 13:54:40 +11:00
Bruno Postle 4152641d1f Ensure files in libs/bin are executable
When blender extracts wheels it doesn't preserve executable permissions
2025-01-18 21:17:43 +00:00
Bruno Postle ec55c8183f remove duplicate 'libs' folder
The Bonsai installer contained a 'libs' folder in both the ZIP bundle
and the bonsai wheel, but only the one in the wheel was actually used
2025-01-18 19:59:57 +00:00
Bruno Postle b54741dd0b Merge branch 'v0.8.0' of github.com:IfcOpenShell/IfcOpenShell into v0.8.0 2025-01-18 19:18:15 +00:00
Bruno Postle b4190876b0 Actually put ifcmerge in the linux ZIP installer 2025-01-18 19:16:50 +00:00
Bruno Perdigão 864eeb42e9 Add filling objectcs to OverrideMove 2025-01-18 15:15:54 -03:00
Bruno Perdigão 7fcb7c6433 Allow moving the current aggregate/nest when aggregate/nest mode is active 2025-01-18 12:17:28 -03:00
Bruno Perdigão 015d8f6722 Add nest mode operators to workspace UI. 2025-01-18 12:06:00 -03:00
Bruno Perdigão c07c2d7692 Complement changes from abd05e939a 2025-01-18 11:48:37 -03:00
Dion Moult a57a0eb4eb See #5972. Prioritise clipping results where possible. 2025-01-19 01:09:11 +11:00
Dion Moult e40644c4f6 See #5972. You can now remove boolean operations in the stack without deleting operands. 2025-01-19 01:08:47 +11:00
Dion Moult 8c746b1a2c Validate representation type items when leaving item mode. 2025-01-19 00:30:30 +11:00
Dion Moult 8e98aecc0b Document add boolean API 2025-01-19 00:30:30 +11:00
Bruno Postle 34a2d95524 Bonsai offers to install Git and ifcmerge (#5961)
The ZIP installer now contains a `libs/bin` folder that contains
`ifcmerge`. Bonsai on `register()` adds this folder to the system `PATH`
for the current Blender session. Advantage of this is that we don't have
to fiddle with the registry on windows, or install files to
`~/.local/bin` on Linux, it _should_ work on Darwin, updates are
automatic, and we have a mechanism to ship other executables if
required.

(Note that ifcmerge.exe increases the size of the Windows Bonsai ZIP
download by about 7MB)

If Git isn't installed on Windows, the Git panel now offers to install
it from the Windows Package Manager Community Repository using `winget`.
2025-01-18 10:22:45 +00:00
Dion Moult a12427e44a See #5972. Add tests for adding boolean and check against recursive booleans and invalid boolean items. 2025-01-18 21:13:54 +11:00
Dion Moult 35734f4b67 Guess representation type from items based on where rule
Previously we never implemented this in a very strict way so it was
prone to mistakes.
2025-01-18 18:35:13 +11:00
Dion Moult c54ea1e5d2 Shape builder can now create blocks 2025-01-18 18:34:40 +11:00
Bruno Perdigão abd05e939a Add nest decorator 2025-01-17 23:00:05 -03:00
Bruno Perdigão d02c5ca1e6 Rename OverridaAggregateMove to OverrideMove.
It now deals with nests too.
2025-01-17 22:58:29 -03:00
Bruno Perdigão a5afba03ab Add "nest mode" similar to "aggregate mode". 2025-01-17 22:47:11 -03:00
Bruno Perdigão 3f914cdf27 Remove unused handler from AggregateModeDecorator 2025-01-17 22:43:05 -03:00
Bruno Perdigão 1d03e916f3 Fix after c4f85dffa4 2025-01-17 17:45:21 -03:00
Bruno Perdigão fd279234f3 Fix #5818 2025-01-17 16:41:01 -03:00
Bruno Perdigão a44439655c Install Bonsai decorators from Viewport Overlays in load_post. 2025-01-17 16:23:40 -03:00
Bruno Perdigão c4f85dffa4 Fix OverrideMoveAggregate to work for multiple layers of aggregates. 2025-01-17 15:51:26 -03:00
Bruno Perdigão 8d63845f3d Change AddSlabFromWalls to consistently create walls in a counterclockwise direction.
This guarantees that the external face of the walls aligns with the edges of the slab.
2025-01-17 15:09:57 -03:00
Dion Moult 7ee055f4f3 See #5972. You can now add half space solid items in item mode. 2025-01-17 23:02:32 +11:00
Andrej730 1f436bcec6 replace date picker util operators with wm.context_set_string
Since they were just setting a scene property which can be done by a default operator.
2025-01-17 17:00:06 +05:00
Andrej730 468c1a2580 Highlight currently selected date in date picker
Example - https://imgur.com/a/ItNg9sZ
2025-01-17 17:00:06 +05:00
Andrej730 e8cb9e7f3c Date picker to support IfcDateTime
See https://imgur.com/a/9a7JfMO
2025-01-17 17:00:06 +05:00
Andrej730 fa98a7e8f7 black . 2025-01-17 17:00:06 +05:00
Andrej730 686a5e7387 Fix #5988 after 6fb0f5e63a 2025-01-17 15:24:02 +05:00
Dion Moult e1da08579c See #5972. You can now add booleans in item editing mode, with support for all three boolean operators. 2025-01-17 20:55:27 +11:00