Commit Graph

75 Commits

Author SHA1 Message Date
Andrej730 77f9dbf4f0 small fix for 4c0a7e1ca9
mentioned in #6129
2025-02-10 19:11:13 +05:00
Andrej730 4c0a7e1ca9 typing 2025-02-10 16:47:13 +05:00
Dion Moult fcee54c572 Fix regression when removing an active representation.
Some tests removed since they no longer make sense with the new item
editing mode.
2025-02-08 00:21:38 +11:00
Dion Moult 889a9e3891 Tweak failing test to now allow assigning elements to scaled multi-user objects
Previously this was not allowed, but I don't see why not
2025-02-08 00:20:25 +11:00
Dion Moult 7bc1992963 Fix regression where adding a new occurrence should not change your active context back to body if you've switched it. 2025-02-07 23:52:55 +11:00
Dion Moult f11d79f8c1 Fix cost and drawing feature tests 2025-02-07 22:40:17 +11:00
Dion Moult 2cc4f96b7f Fix failing project feature tests. Fix regression where appending an asset might append a named style twice. 2025-02-07 22:02:44 +11:00
Dion Moult bb46a1659d Fix light and georeference feature tests
Not setting the year meant our date calc tests would fail every year :)
2025-02-07 17:19:27 +11:00
Dion Moult 0d3245102f Fix remaining failing tool tests 2025-02-07 13:12:02 +11:00
Dion Moult 4c255cca43 Fix failing model tests and regression 0899a2a8 where switching geometry can invalidate old meshes
The fix in 0899a2a8 ensured that when you switched geometry, all other
elements (sharing the same type or representation) would also switch
alongside it. However it would lead to mesh invalidation which broke
some assumptions in the style code. The style code also repeated a lot
of the logic of switch representation (i.e. finding shared
representations) so this seems simpler.

In general the whole representation part of the code is messy and
hopefully over time it'll get better.
2025-02-07 12:35:08 +11:00
Dion Moult b7fb5c90bc Continue fixing failing tool tests. Fix regression where UV coordinates might have the wrong order. 2025-02-06 17:22:54 +11:00
Dion Moult f457ce8270 Fix failing unit/system/geometry tool tests. Fix regression where object scales weren't applied in the new add element approach. 2025-02-05 18:50:37 +11:00
Dion Moult 590c2e120c Fix failing drawing tool tests. Also consolidate relative paths using tool.Ifc.get_uri.
The same issue of handling relative paths, doing as_posix, checking
drives, etc was solved again and again in slightly different ways. This
centralises it.
2025-02-05 17:17:09 +11:00
Andrej730 d4f44cb0a1 typing 2025-02-04 17:37:55 +05:00
Dion Moult bd2c3a0ca1 Continue fixing tool tests.
Just chipping away at it give me time.
2025-02-04 17:04:29 +11:00
Dion Moult 0c41f0c32c Fix #6094. Fix failing core tests. 2025-02-04 13:36:28 +11:00
Andrej730 305b4c27b5 fix a typo 2025-02-03 11:45:41 +05:00
Dion Moult abec29af7f Fix attribute tests. Turns out latest pytest-bdd is stricter when parsing feature files and fails when encountering our blank demo tutorial file. 2025-01-30 17:59:13 +11:00
Dion Moult 03bfd828e2 See #5919. API now has support for features, not just openings. Void module is renamed to feature. 2025-01-28 14:18:17 +11:00
Andrej730 ad99990f17 typing 2025-01-23 18:14:15 +05:00
Bruno Postle 13b93a9ea8 Move cache_dir from site-packages to local folder (#5856)
Previously cache_dir was located under site-packages, which is managed
by blender and could be read-only. Now location defaults to eg.
~/.cache/bonsai or equivalent location on other platforms. See #5564

Note this adds a dependency on the platformdirs python module
2025-01-20 13:14:51 +05:00
Andrej730 d6da8a7ee1 Support duplicating potential openings and potential/existing booleans 2025-01-15 18:41:20 +05:00
Andrej730 0f25701967 validate_input - add basic tests 2024-12-30 17:07:53 +05:00
Andrej730 51c9e1eaa2 Save loaded paths to linked IFC models in IFC #5899
Short demo - https://imgur.com/a/3LIt9Sr
2024-12-26 18:26:26 +05:00
Andrej730 0e8eeb18ac shape_builder - remove mathutils dependency completely #5192 2024-12-19 18:31:48 +05:00
Andrej730 6cc75c1164 Fix error assigning product to non-text annotations (e.g. dimension)
Error: Python: Traceback (most recent call last):
  File "\bonsai\bim\ifc.py", line 443, in execute_ifc_operator
    result = getattr(operator, "_execute")(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\bonsai\bim\module\drawing\operator.py", line 2960, in _execute
    core.edit_assigned_product(tool.Ifc, tool.Drawing, obj=context.active_object, product=product)
  File "\bonsai\core\drawing.py", line 66, in edit_assigned_product
    drawing.update_text_value(obj)
  File "\bonsai\tool\drawing.py", line 983, in update_text_value
    cls.import_text_attributes(obj)
  File "\bonsai\tool\drawing.py", line 904, in import_text_attributes
    props.font_size = str(text_data["FontSize"])
2024-11-19 20:15:44 +05:00
Andrej730 a1134e83a4 Fix test after 8372e12f8 2024-10-23 18:34:00 +05:00
Andrej730 b61927b460 deprecate Style.get_style
In favor of Ifc.get_entity
2024-10-23 18:34:00 +05:00
Andrej730 a777d67252 bim.generate_space - add a test 2024-10-22 18:20:29 +05:00
Andrej730 8372e12f88 deprecate geometry.is_edited
in favor of ifc.is_edited
2024-10-22 18:20:26 +05:00
Andrej730 76869b0b02 deprecate misc.mark_object_as_edited
in favor of ifc.edit
2024-10-22 18:20:26 +05:00
Andrej730 45b3008b99 bim.edit_style to update representations if Side was edited
Mentioned in #5604. Since IfcSurfaceStyle.Side is used during representation generation, we need to regenerate them if the value was changed. Previously it would require manual update / project reload.
2024-10-21 16:45:50 +05:00
Dion Moult c75e2e3fc0 Fix failing core tests 2024-10-10 21:36:48 +11:00
Andrej730 7b0a792ff7 bim.merge_identical_objects to support merging IfcMaterials 2024-10-04 18:45:36 +05:00
Andrej730 c3e4ebd996 bim.merge_identical_objects for merging identical styles
Button location - https://i.imgur.com/3O8gHUn.png

Could also be used as a temporary workaround for #5446
2024-10-03 17:15:34 +05:00
Andrej730 be9c9b2caa fix missing assert statements 2024-10-03 17:15:34 +05:00
Andrej730 394b24ddfe More realistic test for ca8577a8dd 2024-09-19 18:24:37 +05:00
Andrej730 f184ce5386 Support de08d3726e for ifc2x3 #5420 2024-09-19 18:13:14 +05:00
Andrej730 748fcce3f5 Adding classification reference tests 2024-09-18 18:44:34 +05:00
Andrej730 de08d3726e Bonsai - set active bsdd when loading project
When loading an ifc project it will search it for bsdd ifcclassifications and will set one as active if finds it, so now it will be a bit more convenient working with bsdd classification assignment as it active bsdd previously was always getting reset when you reload ifc file.

Example - https://imgur.com/a/stlJqwm
2024-09-18 18:44:34 +05:00
Andrej730 c75fa70d23 Support for loading face colors from ifc (IfcIndexedColourMap)
example - https://imgur.com/a/l8Yn4Rr
2024-09-16 18:54:13 +05:00
Andrej730 4d149e8a78 Purge unused materials to consider materials with styles and psets #3914
If material has a style or a pset it creates an inverse that shouldn't prevent material from being purged.
2024-09-13 15:15:51 +05:00
Andrej730 81399ffd19 Support loading project without clearing Blender session
It wasn't working anymore after 27a2c94. Importing IFC file as just geometry should be a separate option from 'should_start_fresh_session' and I've added it as 'import_without_ifc_data' property during project load (now both options are also available for users in project load dialog - https://i.imgur.com/Fvbv4Dy.png)
2024-09-13 11:47:49 +05:00
Dion Moult cea4c0c01d Fix #5345. Bug when adding a new representation using "full representation". No temp data is used, so deletion not required. 2024-09-07 14:50:09 +10:00
Andrej730 ffb2ea2be3 bim.unshare_pset - move implementation to core 2024-09-06 11:04:04 +05:00
Andrej730 bea837299e root.reassign_class to handle switching occurrence class <-> type class #5260
Kind of experimental. The idea is that it will reassign class e.g. from IfcWindow to IfcWindowType (or vice versa) and will keep the IFC representations and property sets.

Example - https://imgur.com/a/X7MHR0s
2024-09-03 18:53:25 +05:00
Andrej730 c6e8d2a585 bim.add_material_set to ensure adding valid material sets 2024-09-02 18:41:15 +05:00
Andrej730 ae75acb0b9 Fix test after 521b0ab58d 2024-09-02 17:24:59 +05:00
Andrej730 ccbb253d2c Fix new sheets having non-unique identification
It was checking for the wrong scope "DOCUMENTATION".
Scope "DOCUMENTATION" was left from the old times, now we use scope "SHEET".
2024-09-02 17:04:55 +05:00
Andrej730 7c542418e6 fix create sheet test failing if bonsai and tests are on different disks
It was failing on Windows with something like "ValueError: path is on mount 'L:', start on mount 'C:'".
I guess it doesn't really occur in bonsai as sheets are typically stored next to the titleblocks (we used to use absolute paths awhile ago and now everything is relative to the ifc project)
2024-09-02 17:04:55 +05:00