Commit Graph

209 Commits

Author SHA1 Message Date
Andrej730 7af1632c1a fix test files names 2024-04-18 10:48:24 +02:00
Andrej730 48e5d14817 nest.assign_object to support ifc2x3 2024-04-18 10:48:24 +02:00
Andrej730 bea8b2cddc typing 2024-04-18 10:48:24 +02:00
Dion Moult df4478a90a Fix #4290. You can now format custom thousands separators and decimal separators in IfcCSV. 2024-04-18 10:48:24 +02:00
Andrej730 3db33a1071 nest.unassign_object - support batching #4474 2024-04-18 10:48:24 +02:00
Andrej730 d270a4fef8 nest.assign_object - support batching #4474 2024-04-18 10:48:24 +02:00
Andrej730 da838a2c7c deprecate spatial.remove_container in favor of spatial.assign_container
added temporary support for old version with warnings:

WARNING. `spatial.remove_container` api method is deprecated and should be replaced with spatial.unassign_container
WARNING. `product` argument is deprecated for API method "spatial.remove_container" and should be replaced with `products`.
2024-04-18 10:48:24 +02:00
Andrej730 163f5f2611 aggregate.unassign_object - support batching #4474 2024-04-18 10:48:23 +02:00
Andrej730 833f67cf45 aggregate.assign_object - support batching #4474 2024-04-18 10:48:23 +02:00
Andrej730 b106d6a4d1 temporary support for deprecated api arguments #4531 2024-04-18 10:48:23 +02:00
Andrej730 d35f2dd0e9 layer.unassign_layer - support batching #4474 2024-04-18 10:48:23 +02:00
Andrej730 a003bc0018 layer.assign_layer - support batching #4474 2024-04-18 10:48:23 +02:00
Andrej730 eebcc48238 group.unassign_group - support batching #4474 2024-04-18 10:48:23 +02:00
Andrej730 df9a306730 spatial.unassign_container - support batching #4474 2024-04-18 10:48:22 +02:00
Andrej730 52995d1cdd spatial.assign_container - support batching #4474 2024-04-18 10:48:22 +02:00
Andrej730 ee6c7a9fad black format 2024-04-18 10:48:22 +02:00
Dion Moult 33f5db2e26 Use indices instead of WorkTimeDatesInterface
Checking start/end dates are done very, very often in date calculations (often looping through every day in a date range). So I'd prefer more opaque code but less overhead.
2024-04-18 10:48:06 +02:00
Andrej730 ac4669f841 fix duplicated ifcstyleditems using append_asset
since we don't use `file.add` to add inverse items and we use `file.create_entity` it was duplicating new elements, added optional parameter that makes it possible to track already added relationships between `append_asset`s.
2024-04-17 14:42:55 +02:00
Andrej730 1d7c882231 append_asset - keep preexisting contexts valid #4280
issue occurred with ifcpatch ExtractElements - it was adding project from other ifc file (with the contexts) and then adding some elements from it using `append_asset`. During `append_asset` it was considering existing context with the duplicated one and was partially purging it.
2024-04-17 14:42:55 +02:00
Andrej730 a99fbbfdd8 reassign_class - cover with tests 2024-04-17 14:41:52 +02:00
Andrej730 f381dce64d fix tests after a971860 2024-04-17 14:41:52 +02:00
Andrej730 a86ac68e0c Fix #4365
Allowing to add new properties with None values if should_purge is not set to True (and it's False by default)
2024-04-17 13:41:18 +02:00
Andrej730 4ac771a214 Fix #4342 2024-04-16 13:28:46 +02:00
Andrej730 dd27107be8 style.assign_representation_styles to replace previously assigned styles
as probably in the most cases user would want 1 style per 1 representation item

After this it's finally possible in BBIM to assign styles to representation items through the materials: https://imgur.com/a/cgiJ1KV
2024-04-16 13:28:46 +02:00
Andrej730 17da72232d unassign_material_style to handle constituents 2024-04-16 13:28:46 +02:00
Andrej730 c7ca87f9c4 api.unassign_representation_styles 2024-04-16 13:28:46 +02:00
Andrej730 f22369b960 assigning material styles to reuse existing styled item + tests 2024-04-16 13:28:46 +02:00
Andrej730 46eae7a7d2 assign_representation_styles to reuse existing styled item + tests 2024-04-16 13:28:46 +02:00
Andrej730 0077036716 Fix issues editing work time in ifc4x3 #4295 2024-04-16 13:28:45 +02:00
Andrej730 45a23d9371 style.assign_material_style to assign style to related shape aspects 2024-04-16 13:28:45 +02:00
Andrej730 3a9c023d33 Fix issue editing object placement that shares it's axis placement with other placements
If multiple object placements were reusing the same IfcAxis2Placement then editing one of them would remove IfcAxis2Placement ignoring it's inverse references making all other object placements invalid.
2024-04-16 11:38:49 +02:00
Andrej730 075b9e4775 Fix bug in ExtractElements recipe adding a lot unrelated products
if you'd add a type product and it had material that were used in bunch of ther products
example - https://community.osarch.org/discussion/1965/error-extracting-ifcslab-or-ifccolumn
2024-04-16 11:38:20 +02:00
Andrej730 e289f23c40 root.remove_product - fix some cases producing invalid ifc #4313
always remove IfcRelNests
1) if product is RelatingObject
2) if product is the only RelatedObject
2024-04-16 11:35:31 +02:00
Andrej730 e8055ec396 remove_representation to consider representation item's layers too
and purge layers if they are out of items as they become invalid
2024-04-16 11:28:59 +02:00
Dion Moult 33051c0139 Fix #4203. Fix bug where removing nested cost items left orphaned relationships. 2024-04-16 11:26:36 +02:00
Andrej730 3008599eec Clean up IfcIndexedColourMap removing representation #4138
Because we wasn't removing colour map, remove_representation was producing orphaned IfcPolygonalFaceSet that were referred by colour map.
2024-04-16 11:17:07 +02:00
Andrej730 eb30b30186 style.edit_surface_style to support editing IfcSurfaceStyleLighting
It was failing because api method wasn't supporting IfcColourRgb attributes edit in general but only for IfcSurfaceStyleShading.SurfaceColour
2024-04-16 11:16:07 +02:00
Andrej730 b6b0e958b5 style.add_surface_texture to work without blender material provided 2024-04-16 11:16:07 +02:00
Andrej730 518f054cbd edit_object_placement optimization for objects with subchildren #4035
1) We were iterating over same subchildren 2 or more times.
2) There is no need to change subchildren position at all since their parent position is already adjusted.

Explained here in detail - https://github.com/IfcOpenShell/IfcOpenShell/issues/4035#issuecomment-1822824352
2024-04-16 11:05:27 +02:00
Andrej730 6fd629f707 Fixed issue reassigning class to type class with userdefined type #4018
When PredefinedType is not found in the related enum reassign_class is considering it USERDEFINED and trying to set .ObjectType. The problem was it was doing for type classes also, when it should have set .ElementType instead.

Why it crashed BlenderBIM - in IfcClassData.data["has_entity"] we store currently active IFC entity which is recreated during `ifcopenshell.util.schema.reassign_class` making old entity invalid. Since `root.reassign_class` was failing in the process, related BBIM operator was failing too, IfcClassData wasn't updated and removed entity was accessed from UI leading to crash.
2024-04-16 11:05:27 +02:00
Andrej730 1c002c6845 minor fixes
- error in settings poll message for bim.assign_selected_as_product
- test that drawing.assign_product won't create new assignments for the same product
2024-04-16 11:05:26 +02:00
Andrej730 944f8695c7 root.remove_product to remove IfcRelFlowControlElements 2024-04-16 11:05:25 +02:00
Andrej730 72b3f1e967 api for assigning/unassigning flow controls #3981 2024-04-16 11:05:25 +02:00
Andrej730 1bb5a14b65 Fixed typo in control.assign_control, added tests 2024-04-16 11:05:25 +02:00
Dion Moult 142968559d Minor fix 2024-04-16 11:05:24 +02:00
Dion Moult 7f1a500445 Fix #3957. Fix bug where shared properties were not edited independently. 2024-04-16 11:05:24 +02:00
Andrej730 bc9fc0b462 Forgot to fix test after 35d66f5 2024-04-16 11:04:29 +02:00
Andrej730 3c49dd15f7 localize mathutils dependency in tests #3895
replaced shapebuilder with general ifcopenshell code in `test_add_boolean` (the only place besides `test_shape_builder` where it was used), that way mathutils dependency in tests is localized only to `test_shape_builder.py`.

added test-safe option to makefile, so github workflow would ignore `test_shape_builder` tests for now and it wouldn't interrupt the entire workflow
2024-04-16 11:04:28 +02:00
Andrej730 f8a2946355 Support other voiding IfcFeatureElementSubtraction elements #3889
Support other voiding IfcFeatureElementSubtraction besides IfcOpeningElement.
2024-04-16 11:03:55 +02:00
Andrej730 739b793cd7 test for model.get_manual_booleans() #3709
added test that model.get_manual_booleans will ignore IfcBooleanClippings until we find some other solution to distinguish automatic and manual clippings. And some refactor along the way.
2024-04-16 10:55:56 +02:00