Dion Moult
d25f57ec40
See #2981 . Adding a door representation now also adds associated shape aspects
...
It doesn't add materials though, that's a separate responsibility right
now
2025-02-01 16:02:57 +11:00
Dion Moult
79e4ba5b19
New usecase to add shape aspect with tests
2025-02-01 00:46:00 +11:00
Andrej730
871710a0aa
Fix remove_representation error #6059
...
After to_delete was explicitly added as an attribute to ifcopenshell.file (previously it was kind of hacky assigned during batch remove).
2025-01-29 16:02:50 +05:00
Bruno Perdigão
c2c2d2d8f3
Revert 87c7309724. I misunderstood the expected behavior.
2025-01-28 17:37:20 -03:00
Bruno Perdigão
87c7309724
See #5938 . Fix bug where x_angle where changing the wall thickness.
2025-01-28 16:28:23 -03:00
Andrej730
c0306fc729
typing
2025-01-28 17:22:26 +05:00
Bruno Perdigão
2b1a59a4f8
Refactor how offset and direction sense interact for wall and slabs.
2025-01-25 16:05:04 -03:00
Andrej730
a774a75509
black .
2025-01-22 16:00:11 +05:00
Bruno Perdigão
c72f17068c
Add support for direction sense and offset in slabs with x_angle
2025-01-21 10:49:29 -03:00
Bruno Perdigão
5cf4740f8e
Add direction sense and offset support for slabs
2025-01-21 10:49:29 -03:00
Andrej730
c0499a2c88
black .
2025-01-20 16:16:38 +05:00
Dion Moult
a57a0eb4eb
See #5972 . Prioritise clipping results where possible.
2025-01-19 01:09:11 +11:00
Dion Moult
e40644c4f6
See #5972 . You can now remove boolean operations in the stack without deleting operands.
2025-01-19 01:08:47 +11:00
Dion Moult
8c746b1a2c
Validate representation type items when leaving item mode.
2025-01-19 00:30:30 +11:00
Dion Moult
8e98aecc0b
Document add boolean API
2025-01-19 00:30:30 +11:00
Dion Moult
a12427e44a
See #5972 . Add tests for adding boolean and check against recursive booleans and invalid boolean items.
2025-01-18 21:13:54 +11:00
Andrej730
521a8183e7
Fix #5953 after d6e6a6d
2025-01-16 17:36:09 +05:00
Dion Moult
8cf7057abc
Fix #5954 . Special automatic movement of features shouldn't then also move children of those features.
...
If you move a wall, and that wall has features (e.g. openings), it's
desirable to also move those openings (because they are invisible). This
is a special exception to `should_transform_children` because the
definition of the feature (opening) is inherently tied to the parent
(wall).
What wasn't considered is that this would typically then also move
subchildren of the features (e.g. fills like doors). I'm surprised
nobody caught this earlier.
I did also consider another approach where if you move a wall, it moves
all unfilled openings, and if you move a door which fills a opening, it
moves the opening too. Intuitively it sounds nice, but it doesn't work
because:
- Openings can have multiple fillings. If you move all fillings, they
all fight to move the openings.
- All logic about children goes one way: a placement may have child
placements relative to it. This breaks the convention (if moving a door
instead moves its opening) which can make brains explode.
- It starts to conflate rules about relative / referenced placements
with spatial decomposition. We assume all IFCs are valid and follows the
convention of relative placement but we cannot guarantee this. This also
leads to brain explosion.
2025-01-13 15:44:52 +11:00
Andrej730
170b6fc67e
typing
2024-12-23 18:59:55 +05:00
Andrej730
9128bf2d47
Fix missing line after f22636d #5896
2024-12-23 15:32:15 +05:00
Andrej730
284ec46b81
add_door_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
d6e6a6d559
add_railing_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
f22636d880
add_window_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
73185293df
Fix long time missing create_cog_representation
...
It was used in the code but method wasn't defined. I believe it was lost during 8b7d968 😁
2024-12-06 18:57:54 +05:00
Andrej730
6d01d71c60
add_representation.create_cartesian_point - fix missing z offset for 0 values
2024-12-06 18:57:54 +05:00
Andrej730
848af67fbb
typing
2024-12-06 18:57:53 +05:00
Andrej730
7475a8f989
add_slab_representation - add api description #5792
2024-11-25 17:30:31 +05:00
Bruno Perdigão
4b558604cc
Remove mathutils dependency from add_slab_representation.py
2024-11-08 10:34:11 -03:00
Andrej730
834be2d6a8
geometry.add_wall_representation - document
2024-10-29 18:16:05 +05:00
Andrej730
af01f6b6c7
geometry.create_2p_wall - document
2024-10-29 18:16:05 +05:00
Bruno Perdigão
0c0225543b
Add polyline tool for slabs.
...
No preview yet.
2024-10-22 17:39:19 -03:00
Dion Moult
4261fdbed6
Rewrite coordinate offset to use np.array not Vector() for precision
2024-09-27 23:09:00 +10:00
Andrej730
8061e22480
geometry.unassign_representation to remove shape aspects
...
previously it was leaving unused shape aspects unconnected to any other elements, now it will purge them
2024-09-13 18:50:54 +05:00
Andrej730
acbdc0ed4c
typing
2024-09-03 18:53:25 +05:00
Andrej730
9f00e8aef0
Use Point RepresentationType for point clouds in ifc4x3
...
PointCloud representation type marked as deprecated in ifc4x3, see https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcShapeRepresentation.htm
2024-08-23 17:25:10 +05:00
Andrej730
3860884db3
bonsai other ifcopenshell packages #5178
2024-08-14 16:49:34 +05:00
Dion Moult
a6286293d8
Run black on IOS-Python
2024-07-26 12:00:57 +10:00
Dion Moult
b616cafa49
Minor typing hint and disable linear position elements from loading
2024-06-28 13:01:15 +10:00
Dion Moult
07060fc769
Replace all ifcopenshell.api.run with ifcopenshell.api static functions.
2024-06-28 12:36:31 +10:00
Andrej730
8b6235f42f
fix TessellateElements ifcpatch recipe
...
TessellateElements patch was failing because it was relying on optionality of `edges` argument. Though argument itself is currently useless and not used in the code.
2024-06-21 17:49:02 +05:00
Dion Moult
cdce612566
Update all geom settings to new v0.8 syntax
2024-06-09 16:15:55 +10:00
Dion Moult
d0058a1bde
Fix #4802 . Fix ability to edit CARTESIAN_POINT offset meshes in offset models.
2024-06-07 14:32:00 +10:00
Andrej730
4a5d1eba0b
specify exported api methods in __all__
...
It's py.types requirement, similar to 6e2edbf
Example issue without __all__:
import ifcopenshell
import ifcopenshell.api.project
# "create_file" is not exported from module "ifcopenshell.api.project"
ifcopenshell.api.project.create_file()
2024-06-03 17:44:05 +05:00
Andrej730
f576aadee1
typing
2024-05-24 19:15:51 +05:00
Andrej730
fffd7360cb
fix for d4ccadb
...
forgot to add it to global namespace
2024-05-24 19:15:43 +05:00
Dion Moult
c405ff1adf
Fix unassign_representation to not incorrectly use remove_deep without first removing known inverses.
...
In theory, it would be possible for the representation map to be used elsewhere, then file.remove(representation_map) would cause problems.
2024-05-23 23:08:53 +10:00
Andrej730
341cdd4ef7
fix error updating curve representations after 3fa573e #4685 #4682
2024-05-17 17:40:13 +05:00
Andrej730
42be4eb064
typing
2024-05-17 17:31:01 +05:00
Andrej730
bb8e84e5ec
typing
2024-05-15 17:18:33 +05:00
Dion Moult
3fa573e3c1
Fix #4615 . Report to user if they are attempting to create an incompatible context-representation combination.
2024-05-11 20:48:38 +10:00