Commit Graph

15957 Commits

Author SHA1 Message Date
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
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
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