Andrej730
ed0b1c5009
typing
2025-03-11 18:37:22 +05: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
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
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
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
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
53a3afaded
typing
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
a01278aa8d
ifcopenshell.util.shape to return Python floats if return is just a scalar
2025-03-03 13:54:56 +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
5fa0aa03e4
util.schema.is_a - use c++ implementation
2025-02-24 15:15:54 +05:00
Richard Brice
12f8a1f769
Adds utility to stringize station values
2025-02-22 16:15:00 -08:00
Andrej730
ee2fa739bb
remove_deep2 - fix traversing same element twice
...
(I hope I don't miss anything, no tests seem to fail and performance is increased significantly) but because `subelement_queue` initiated with the `traverse` all `element`'s subelements will be traversed inside `while` loop twice - once as a part of initial queue and another time when `element` is traversed inside the loop and all those elements added to the queue again.
Now we just initiate the `queue` with the `element` and it will be traversed inside the loop like any other element.
2025-02-21 18:45:12 +05:00
Andrej730
f7efbe5924
remove_representation - optimizations
...
1) `do_not_delete` performs best when it's set
2) also_consider when `element` related elements go first, so there will be no need to traverse all other elements to see if they cover `element`'s inverses.
2025-02-21 18:45:11 +05:00
Andrej730
6e20ee9fea
remove_deep2 - also_considered_inverses optimization
...
1) replaced walk with traverse(max_levels=1)
2) early return if there total_inverses == 0
3) early return if also_considered_inverses is enough to cover total_inverses
2025-02-21 18:45:11 +05:00
Andrej730
e6d3396630
typing
2025-02-21 18:45:11 +05:00
Dion Moult
f4d101788d
Fix insane bug when replacing element that looped through every single element.
2025-02-20 19:18:35 +11:00
Andrej730
527e0f3dbf
set_element_value - fix error for Python 3.9
...
types.EllipsisType was added only in 3.10
2025-02-18 18:50:35 +05:00
Andrej730
17642ca4e9
typing
2025-02-18 18:50:34 +05:00
Andrej730
83a351b1c7
black .
2025-02-18 18:50:33 +05:00
Dion Moult
6ac6f13018
Fix #5824 . Prioritise 3D over 2D. Only then consider subcontexts.
...
It's unexpected in our 3D default viewing world to have 2D first over
3D.
2025-02-15 19:03:52 +11:00
Dion Moult
a0fa861b92
Shape builder can now created triangulated face sets
2025-02-15 16:10:12 +11:00
Andrej730
20e1fc2618
Fix bug in get_container not passing specified ifc_class to the parent #6155
2025-02-14 17:49:51 +05:00
Andrej730
f39e6ccb54
typing
2025-02-12 18:39:27 +05:00
Andrej730
57d7d83ebb
Fix Python <3.10 support #6141
2025-02-11 16:50:07 +05:00
Dion Moult
1d2214efd9
Fix IfcOpenShell-Python on Python 3.10
...
Elipsis is not allowed for generic typing
2025-02-10 17:26:03 +11:00
Andrej730
59dd105e99
fix get_applicable_entities / get_applicable_types missing schema #6108
2025-02-08 07:54:49 +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
Andrej730
c16894cabf
Fix bug in 124c028 saving defined unit as defining
2025-02-05 18:27:27 +05:00
Dion Moult
dc79e9e005
More utility functions to jump between representations, styles, and shape aspects
...
It's a bit uncertain where these belong best, we'll find out over time
2025-02-01 16:11:37 +11:00
Dion Moult
1a98504328
Fix bug and typo where getting shape aspects for non-geometric types (e.g. walls) would fail
...
This caused an error when updating a style of a material used in a wall
type
2025-02-01 15:54:57 +11:00
Dion Moult
4e17a2d6de
The shape builder can now create half space solids for convenience
2025-01-30 18:44:38 +11:00
Dion Moult
eaaec4a12d
Fix ridiculous bug where util.element.get_container didn't consider all parents and therefore didn't correctly contain feature elements in the spatial hierarchy
2025-01-30 18:44:27 +11:00
Andrej730
c0306fc729
typing
2025-01-28 17:22:26 +05:00
Dion Moult
8e29e7cdee
Be a bit more forgiving in calculate unit scale to not glitch out on models with no project.
...
It's technically invalid but useful for small snippets.
2025-01-28 10:46:24 +11:00
Dion Moult
6e0954e855
Purge constants file that came from PR.
2025-01-28 10:45:54 +11:00
Andrej730
5fe77b659a
ifcopenshell.util.element.get_elements_by_profile
2025-01-27 17:41:31 +05:00
Dion Moult
3582dc43d9
Add tests for PR #5257 (using cache for fetching units)
2025-01-27 14:40:15 +11:00
Dion Moult
4af6c24314
Completely untested refactor of #5257 .
...
Removes dependency of file to util (util should depend on file, not vice
versa). Removes auxiliary method.
2025-01-26 21:11:11 +11:00
Raj
124c02897c
Feature faster unit method ---> Main ( #5257 )
...
* feature_faster_unit_method > main: added constants
* feature_faster_unit_method > main: extended `file` class to dynamically save unit information
* feature_faster_unit_method > main: refactored `get_property_unit` method
1. split out case that returns the wrong type (dictionary of units) into its own method
2. cleaned up (but preserved) logic
3. refactored common part of all cases (the method which prioritises unit then value-entity then measure_class)
---------
Co-authored-by: raj-open <raj-open@users.noreply.github.com >
Co-authored-by: Dion Moult <dion@thinkmoult.com >
2025-01-26 19:04:49 +11:00
Dion Moult
38835a4092
See #6030 . You can now select elements in groups recursively.
2025-01-25 14:11:42 +11:00
Andrej730
f3fc55f246
Change <logical> primitive data type from bool to enum
...
As it also has a third value "UNKNOWN" which has it's own meanig in IFC and therefore IfcLogical cannot be represented by simple booleans.
Example in Bonsai - https://i.imgur.com/xuPMcwA.png
2025-01-24 18:45:13 +05:00
Andrej730
42d01ac222
Fix append_asset conversion issue after 3ffc0bc #6012
...
Custom file.add wasn't considering IfcLengthMeasure attributes...
2025-01-23 18:14:16 +05:00
Andrej730
74a9669fa8
Fix error tabbing into IfcRevolvedAreaSolid with a boolean + add resolve_base_items
...
resolve_items couldn't find IfcRevolvedAreaSolid inside a boolean result
2025-01-22 16:35:22 +05:00