Andrej730
ece91a94db
util.schema.reassign_class to return early if class already assigned
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
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
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.
2025-03-12 18:05:57 +11:00
Andrej730
6bd8636c92
Revert "Bump IOS"
...
This reverts commit c1bc36ab86 .
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
Andrej730
64f51d733e
Fixed version of f3f7939c8b + get_element_zones
2025-03-11 18:37:23 +05:00
Andrej730
ed0b1c5009
typing
2025-03-11 18:37:22 +05:00
Dion Moult
c1bc36ab86
Bump IOS
2025-03-11 21:59:53 +11:00
Dion Moult
570513b60b
Revert "util.get_element_systems to consider all kinds of ifcsystems"
...
This reverts commit f3f7939c8b .
2025-03-11 09:13:48 +11:00
Andrej730
f3f7939c8b
util.get_element_systems to consider all kinds of ifcsystems
2025-03-10 18:52:39 +05:00
Andrej730
c4b57eb903
typing
2025-03-10 18:52:39 +05:00
Dion Moult
41188e26e1
See #1227 . Don't touch manual booleans when regenerating wall body.
2025-03-10 22:54:42 +11:00
Dion Moult
823f27cd6a
Add tests for new element add feature
2025-03-10 22:53:55 +11:00
Dion Moult
1259607a9f
See #1227 . Fix slicing normal calculation for AXIS3 elements.
2025-03-10 18:10:05 +11:00
Dion Moult
abfe8ec315
Fix failing IOS tests
2025-03-09 20:47:02 +11:00
Dion Moult
4109b19c3a
See #1227 . Slightly more defensive to make sure ATPATH is between START and END
2025-03-09 18:31:49 +11:00
theseyan
7503530741
Fix #4807
2025-03-09 18:02:59 +11:00
Dion Moult
e78127d54f
See #1227 . Don't move any child at all when regenerating wall body.
2025-03-09 18:00:13 +11:00
Dion Moult
e5027e0be8
See #1227 . Implement updating of object position.
2025-03-09 08:52:05 +11:00
Dion Moult
01ec750814
See #1227 . New connect wall API function since this can be done generically.
...
This will supersede the butt/mitre join functions we used to have.
2025-03-08 11:25:07 +11:00
Andrej730
71a7d0c086
Fix missing IfcDistributionCircuit and IfcElectricalCircuit #6202
...
When checking if element is assignable to the system.
2025-03-07 17:12:59 +05:00
Andrej730
eb0d3c38b2
ifcopenshell.util - make ifc_file argument optional if it can be deduced from ifc element
2025-03-07 17:12:59 +05:00
Andrej730
590288496e
typing
2025-03-07 17:12:58 +05:00
Dion Moult
ed722c6f13
See #1227 . Refactor out test waldo script into API function.
2025-03-07 19:05:24 +11:00
Dion Moult
7dee888ecf
See #1227 . New util function in shape builder to do an X axis intersection.
2025-03-07 19:00:18 +11:00
Andrej730
b5260d3005
copy_class to prevent duplicating profiles #6261
2025-03-06 18:43:54 +05:00
Andrej730
79940641b2
typing
2025-03-06 18:43:54 +05:00
Andrej730
7458040949
Fix ifcpatch unit conversion for lists of ifc entities #6280
2025-03-06 16:14:02 +05:00
Andrej730
14eb543662
TestConvertFileLengthUnits - add attributes conversion tests
2025-03-06 16:14:02 +05:00
Andrej730
e786687882
ConvertFileLengthUnits - unify tests, add ifc4x3 tests
2025-03-06 16:14:02 +05:00
Andrej730
37e131193b
edit_georeferencing - add note on MapUnit data type
2025-03-06 16:14:02 +05:00
Andrej730
dfb00f27bb
Fix georeferencing docs url
2025-03-06 16:14:02 +05:00
Andrej730
2987d38a31
append_asset - check unique styles based on their name #6269
2025-03-05 18:53:56 +05:00
Andrej730
1257eb0872
append_asset - allow using same name for different ifcpresentationstyle types
...
Since they are not used interchangeably typically.
2025-03-05 18:53:56 +05:00
Andrej730
1c8ef176b1
typing
2025-03-05 18:53:56 +05:00
Andrej730
e1e51cbf26
black .
2025-03-05 18:53:56 +05:00
Andrej730
649a913bbc
add_profile_representation - add test
2025-03-04 18:10:42 +05:00
Andrej730
53a3afaded
typing
2025-03-04 18:10:41 +05:00
Andrej730
33d3984990
add_profile_representation - reuse util.shape methods
2025-03-04 18:10:41 +05:00
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
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
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
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
2609a8293c
Fix issue where walls are created with obtuse x_angle. See #5938
2025-02-28 13:02:02 -03:00
Andrej730
06fa2b05d6
Fix #6245 after 17642ca
2025-02-28 18:31:14 +05:00