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
Andrej730
391091ad12
typing
2025-01-22 16:34:58 +05:00
Dion Moult
7b62b035c9
Fix #5964 . Only get the unit assignment from the project to prevent ambiguity.
...
I really don't know why I didn't do this before.
2025-01-20 23:50:03 +11:00
Dion Moult
35734f4b67
Guess representation type from items based on where rule
...
Previously we never implemented this in a very strict way so it was
prone to mistakes.
2025-01-18 18:35:13 +11:00
Dion Moult
c54ea1e5d2
Shape builder can now create blocks
2025-01-18 18:34:40 +11:00
Andrej730
133459faec
typo
2025-01-16 17:36:10 +05:00
Andrej730
a52e3615d6
Map ifc2x3 IfcAnnotationOccurrence to IfcStyledItems in ifc4 #5917
2025-01-14 17:41:58 +05:00
Andrej730
b7c18221f4
get_bbox - optimize by using numpy arrays
2025-01-13 17:53:02 +05:00
Andrej730
7a49f1611e
get_shape_matrix - small optimization
...
reuse existing matrix instead of recreating new
2025-01-13 17:53:02 +05:00
Andrej730
a968b61d02
np_matrix_to_euler, np_matrix_normalized
2025-01-13 17:53:01 +05:00
Andrej730
0601802005
typing
2025-01-13 17:53:01 +05:00
Dion Moult
316b9554d4
Fix #5959 . Bug where default selection basket in selector query was not added per facet list.
...
Previously the code looked for additive facets (entity, instance)
anywhere in the query, and then only added the default basket once at
the beginning of the query. This change makes it look for additive
facets in order (that way you could start with a default selection, and
then later use an additive facet) and does it per facet list (so you can
omit the additive facet at the beginning of each list).
2025-01-13 12:46:44 +11:00
LM-Nascimento
80996dee1f
Update unit.py
2025-01-12 17:25:21 +11:00
Thomas Krijnen
ba9693519b
Remove mathutils import from shape_builder.py
2025-01-12 17:05:32 +11:00
Thomas Krijnen
1b6ee26854
Don't fail on empty ReferencedSource in IfcTester
2025-01-05 14:40:27 +01:00
Gorgious56
3a7488d54b
Fix #3261 : You can now purge unused openings that do not intersect with their related building element.
...
It's a naive implementation and very inefficient. Moreover there may be false positives because it's testing overlapping the evaluated mesh element with all openings applied.
2025-01-03 17:37:46 +01:00
Andrej730
d55a291589
get_top_area to calculate area for the roof #5899
2024-12-27 19:43:30 +05:00
Andrej730
6c6e40b07c
get_side_area - add angle argument
2024-12-27 19:43:30 +05:00
Andrej730
ff147a4c24
Fallback for queries if no elements filter is provided #5901
2024-12-25 17:40:51 +05:00
Andrej730
769025e084
typing
2024-12-25 15:20:40 +05:00
Andrej730
170b6fc67e
typing
2024-12-23 18:59:55 +05:00
Andrej730
6edc6cec71
Fix Migrate not migrating ifc file header #5903
2024-12-23 12:33:32 +05:00
Andrej730
31069d6643
Fix error creating polylines in ifc2x3 after 9fbcb39
...
By accident it was providing numpy array instead of ifc points entities.
2024-12-23 12:33:17 +05:00
Andrej730
eae92b55bb
shape_builder - np utils
2024-12-19 18:31:49 +05:00
Andrej730
0e8eeb18ac
shape_builder - remove mathutils dependency completely #5192
2024-12-19 18:31:48 +05:00
Andrej730
b4a0a5df6c
mathutils deprecation - mep_bend_shape #5192
2024-12-19 18:31:48 +05:00
Andrej730
5469d3f9d5
mathutils deprecation - mep_transition_shape #5192
2024-12-19 18:31:48 +05:00
Andrej730
4a68285d1f
mathutils deprecation - meshes #5192
2024-12-19 18:31:48 +05:00
Andrej730
01c2edfd16
mathutils deprecation - extrude #5192
2024-12-19 18:31:47 +05:00
Andrej730
c32616faca
mathutils deprecation - mirror #5192
2024-12-19 18:31:47 +05:00
Andrej730
6e8815eacc
mathutils deprecation - rotate #5192
2024-12-19 18:31:47 +05:00
Andrej730
8250f02866
mahtutils deprecation - translate #5192
2024-12-19 18:31:47 +05:00
Andrej730
c1ec42c95b
mathutils deprecation - circle, plane, placements, curves #5192
2024-12-19 18:31:47 +05:00
Andrej730
63f56d2f21
mathutils -> numpy - polyline, rectangle #5192
2024-12-19 18:31:47 +05:00
civilx64
ad35ceef2a
add missing import for ifcopenshell.api.georeference
2024-12-07 18:17:36 +01:00
Andrej730
2da5f2d61e
set_element_value - optimizations setting enum values
...
1) Identify from previous pset value whether prop was an enum (by checking if previous value is a list), instead of searching through prop templates
2) Compare previous and new enum values - if they match, skip editing IFC.
2024-12-06 18:57:54 +05:00
Andrej730
13106d255c
int formatting function #5039
...
Example - https://i.imgur.com/wDGFNci.png
2024-12-05 15:52:27 +05:00
Andrej730
c9847caa6a
ifccsv - support importing enum values #4608
2024-11-27 18:30:37 +05:00
Andrej730
ab069f431a
typing
2024-11-27 18:30:37 +05:00
Andrej730
12c08b0697
typing
2024-11-26 18:12:05 +05:00
Andrej730
b2e3a4dd82
typing
2024-11-21 18:11:37 +05:00