Andrej
02d359d0e6
Fix Ruff UP035 (also deprecated annotation symbols)
2025-06-09 18:03:19 +05:00
Andrej
a614fac71a
typing
2025-06-04 19:04:31 +05:00
Andrej730
9f78d9881e
ifcopenshell.util.shape - use refs to functions in docs
2025-03-14 18:19:06 +05: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
a01278aa8d
ifcopenshell.util.shape to return Python floats if return is just a scalar
2025-03-03 13:54:56 +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
0601802005
typing
2025-01-13 17:53:01 +05: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
170b6fc67e
typing
2024-12-23 18:59:55 +05:00
Andrej730
cb2895cc41
util.shape for materials and material_ids
2024-10-15 17:57:00 +05:00
Andrej730
dd9de98290
Store edges representation item ids in Triangulation
2024-09-25 19:09:14 +05:00
Andrej730
d4df21c4be
ifcopenshell.util.shape.get_normals
2024-09-20 22:03:19 +05:00
Andrej730
6d8ffc27cc
ifcopenshell.util.shape.get_material_colors
2024-09-16 18:54:13 +05:00
Dion Moult
ba5b27d03c
Support getting 2D coordinates in util.shape.get_vertices
2024-09-09 12:41:40 +10:00
Dion Moult
b01e93161e
Use vertex buffer for more efficient centroids
2024-08-08 08:24:12 +10:00
Dion Moult
4fd802bf3d
More efficient shape bbox and average vertex centroid function
2024-08-07 17:21:49 +10:00
Thomas Krijnen
e95e92356f
Update src/ifcopenshell-python/ifcopenshell/util/shape.py
...
Co-authored-by: Vyacheslav Dobranov <112861900+VDobranov@users.noreply.github.com >
2024-07-22 03:51:12 +02:00
VDobranov
e27980f746
Update shape.py
...
Following the discussion in Live Chat about length of all edges in a given geometry:
https://matrix.to/#/!ssOmSJysZpXBupsgjO:matrix.org/$0ZHjIFCtpwQl06xdGWlQ9ymsiKWpPuLMczVJnNYmN84?via=matrix.org&via=crossbach.de&via=infeeeee.duckdns.org
2024-07-22 03:51:12 +02:00
Andrej730
8e86b3d1d8
util.shape - optimize by using shape buffers and numpy
2024-07-08 18:49:12 +05:00
Andrej730
acf135a6ed
Store item_ids in imported meshes and set them on toggling edit mode
...
It will be used later to add more IFC capabilities to EDIT mode.
Example - https://imgur.com/a/HAkjoCY
2024-07-08 17:46:11 +05:00
Andrej730
51f859d8e4
typing
2024-06-10 17:43:06 +05:00
Dion Moult
03b277626f
See #4832 . Use shape.transformation.matrix in v0.8.0
2024-06-08 14:50:02 +10:00
Dion Moult
e26dae67aa
Convenience function for calculators to get maximum XY length
...
This is useful for 2D profiles
2024-06-01 15:11:29 +10:00
Dion Moult
54951d2102
Add convenience max/min functions for xyz and side_area shape calculations
2024-05-28 17:30:01 +10:00
Dion Moult
93639e9e50
Even more cleaning of documentation references
2024-05-07 19:08:13 +10:00
Andrej730
5b877b549a
fix numpy typing #4579
...
On older numpy versions, np.ndarray was less forgiving and wasn't allowing passing 1 argument instead of required 2.
And turned out numpy doesn't yet have typing for shapes (https://github.com/numpy/numpy/issues/16544 ), so all matrices and other shapes specified as `npt.NDArray[np.float64]`.
Fixed type discrepancies for `get_edges` and `get_faces` and also had to fix `import_ifc` as Blender apparently has problems with storing np.int32 in custom attributes (https://projects.blender.org/blender/blender/issues/121072 ), tested that Blender is okay with np.int32 in other cases we had (addressing BMesh.verts[i] where `i` is np.int32).
2024-04-25 18:05:47 +05:00
Dion Moult
23abf674f3
Minor fix
2024-04-16 14:54:36 +10:00
Andrej730
7132c4e9bf
typing and small refactor
2024-03-22 16:54:42 +05:00
Andrej730
1b1eccb0c1
typing
2024-03-21 15:06:32 +05:00
Dion Moult
3f71efea6d
Fix #4227 . Add shapely as an optional dependency for IOS-Python
2024-01-18 09:22:35 +11:00
mohamadalbaaj
83d364574a
Fixing Dimension Mismatch in Matrix Multiplication
2024-01-14 15:08:08 +11:00
Dion Moult
f0028c0094
get_footprint_area now unions 2D polygons to prevent double counting
2023-10-28 15:54:45 +11:00
Dion Moult
ed3e9f3347
New documentation for shape utility
2023-10-06 13:04:54 +11:00
Dion Moult
eb836436b9
Implement projected surface area calculation function in util.shape
2023-10-06 13:04:34 +11:00
Dion Moult
d3251c5ca1
New get_shape_matrix utility.
2023-05-26 19:31:01 +10:00
Dion Moult
0793a4602d
Minor improvements to shape utility.
2023-05-09 20:51:08 +10:00
arun
4cb6fc05d6
corrected get_extrusions function
2023-05-08 20:18:57 +02:00
Dion Moult
260eb31a69
Add shape utility to easily get profiles and extrusions
2023-05-07 17:32:46 +10:00
Dion Moult
4f6c95b119
See #1676 . Space boundary generation now accounts for voids and fills.
2023-05-04 00:31:24 +10:00
Dion Moult
32f5a77d07
New shape utilities for getting top / bottom elevations and bbox.
2023-03-15 18:51:31 +11:00
Dion Moult
3e2ca328d2
Get side area lets you choose the side axis now in util.shape.
2023-03-09 17:48:42 +11:00
Dion Moult
4282014bfa
Fix #2843 . You can now get the bounding box centroid of geometry.
2023-03-08 20:58:21 +11:00
Dion Moult
ceaa930aad
Fix #2756 . Bug where reassigning classes with a enum didn't work.
2023-02-11 11:03:35 +11:00
Dion Moult
ae564d1b61
Fix #1040 . New utility for geometric shape analysis only requiring numpy.
2023-02-10 16:03:16 +11:00