Commit Graph

17412 Commits

Author SHA1 Message Date
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 bonsai-0.8.2-alpha2503131344 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
Dion Moult 609f468ce1 Update failing tests bonsai-0.8.2-alpha2503131107 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 bonsai-0.8.2-alpha2503130010 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 bonsai-0.8.2-alpha2503122338 bonsai-0.8.2-alpha2503122335 bonsai-0.8.2-alpha2503122336 bonsai-0.8.2-alpha2503122337 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
bonsai-0.8.2-alpha2503122331
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.
bonsai-0.8.2-alpha2503122218
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. bonsai-0.8.2-alpha2503122017 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. bonsai-0.8.2-alpha2503121410 bonsai-0.8.2-alpha2503121439 2025-03-12 11:10:14 -03:00
Andrej730 ece91a94db util.schema.reassign_class to return early if class already assigned bonsai-0.8.2-alpha2503121350 bonsai-0.8.2-alpha2503121351 bonsai-0.8.2-alpha2503121352 bonsai-0.8.2-alpha2503121353 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 bonsai-0.8.2-alpha2503121114 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. bonsai-0.8.2-alpha2503120748 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.
bonsai-0.8.2-alpha2503120741
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.
bonsai-0.8.2-alpha2503120706
2025-03-12 18:05:57 +11:00
Bruno Perdigão a7a4198fc1 Polyline tool - add "dm" and "cm" to the input validation. bonsai-0.8.2-alpha2503112011 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
bonsai-0.8.2-alpha2503112000
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. bonsai-0.8.2-alpha2503111935 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.
bonsai-0.8.2-alpha2503111914
2025-03-11 16:11:47 -03:00
Bruno Perdigão a32735ac6a Small fix after 7af672712f bonsai-0.8.2-alpha2503111705 2025-03-11 14:04:34 -03:00
Bruno Perdigão 031540e982 Add #5496. Objects from linked ifc files can now be snapped. bonsai-0.8.2-alpha2503111539 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.
bonsai-0.8.2-alpha2503111456
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.
bonsai-0.8.2-alpha2503111347
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