Commit Graph

1766 Commits

Author SHA1 Message Date
Bruno Postle dbe2c541c7 Orientation slot feature now has limited scope
No support for setting up blender orientation slots for multiple
containers or for non-spatial elements.  Setting the default container
switches to an appropriate orientation slot if the orientation of this
container isn't global.
2025-03-22 08:40:20 +00:00
Bruno Postle 7d4a017c15 Don't create orientation slots for all spaces
Trying to create orientation slots for all spaces could potentially
involve a lot of duplicate method calls because blender has no way to
query the list of existing orientation slots, so we can't check to see
if setting a slot is necessary.

So this patch now simply creates/overwrites and uses a single
orientation slot whenever the user switches the default spatial
container, and then only if the spatial orientation is non-world.
2025-03-14 19:17:50 +00:00
Bruno Postle 14f5aa7c4f Merge branch 'v0.8.0' into orientation_slots 2025-02-24 22:07:27 +00:00
Bruno Postle c585c789ac Follow orientation through ContainedInStructure
create_orientation_slots() can be given an element and it will find the
highest matching parent product orientation via elements and/or
spatial elements
2025-02-24 21:53:42 +00:00
Bruno Postle 891752a569 Move blender object manipulation to inner loop
create_orientation_slots() can be called a lot of times recursively, so
only do creation and deletion of dummy objects when absolutely necessary
2025-02-24 19:56:37 +00:00
Bruno Postle 6faef6564e s/element/product/ in create_orientation_slots()
This method should work with anything that has an ObjectPlacement, ie.
an IfcProduct
2025-02-24 19:38:29 +00: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
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 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 76277c35d2 Fix for 365393aa07
ahh, forgot that representation is already removed at this point
2025-02-24 15:01:00 +05: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
Bruno Postle 62bd495a9e Create transform orientation slots #6128
Blender supports named UCS coordinate systems. Refreshing the spatial
decomposition panel now creates orientation slots for each unique
spatial element orientation.

Additionally, setting the default spatial container selects an
appropriate orientation slot. eg. if a building is rotated, selecting to
work in a storey will set the orientation to the building orientation.

These slots are only created/updated in the spatial decomposition panel,
maybe they should also be created when loading the file and other
places.

The blender API doesn't currently allow listing custom orientation slots
for deletion, so if a spatial element is deleted or renamed, the old
orientation slot will persist for the rest of the session.
2025-02-23 22:29:42 +00:00
Andrej730 b93cbbf989 black . 2025-02-23 13:29:12 +00: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
Dion Moult c549dea943 See #1227. Test script for priority-aware wall layer joins. 2025-02-22 20:01:17 +11: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 e6d3396630 typing 2025-02-21 18:45:11 +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 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 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
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