Andrej730
dbf4a2a5ed
Fix reassign_class on IFC4X3, use ValueError
...
Use ValueError to make it more specific
2025-03-12 18:49:22 +05:00
Andrej730
977d814d39
bim.reassign_class - fix issue in ifc2x3 when selected product class would be ignored
...
E.g. you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType (which is confusing too but that's another subject) and change this slab's type object to IfcBeamType which consequently change IfcSlab to IfcBeam instead of IfcRoof that was selected originally.
Noticed investigating #5918
2025-03-11 18:37:23 +05:00
Dion Moult
03bfd828e2
See #5919 . API now has support for features, not just openings. Void module is renamed to feature.
2025-01-28 14:18:17 +11:00
Andrej730
bea837299e
root.reassign_class to handle switching occurrence class <-> type class #5260
...
Kind of experimental. The idea is that it will reassign class e.g. from IfcWindow to IfcWindowType (or vice versa) and will keep the IFC representations and property sets.
Example - https://imgur.com/a/X7MHR0s
2024-09-03 18:53:25 +05:00
Dion Moult
a6286293d8
Run black on IOS-Python
2024-07-26 12:00:57 +10:00
Dion Moult
07060fc769
Replace all ifcopenshell.api.run with ifcopenshell.api static functions.
2024-06-28 12:36:31 +10:00
Andrej730
fdbe74a432
maintain snake in api calls
...
there were only two methods using camel case for arguments
2024-05-15 17:18:34 +05:00
Andrej730
76e6c63a01
ifc2x3 tests - prevent using removed user/application
...
When some test was creating an element and then removing it, it would also remove user and application as they wasn't used anywhere else.
`ifcopenshell.util.element.remove_deep2(file, history)` we use in every api for element deletion can possibly remove user and application which can be unsafe if `get_user` is returning some specific entity that then will become invalid.
Also fixed tests breaking due ifcownerhistory and user/application appearing in ifc2x3.
2024-05-13 18:01:16 +05:00
Dion Moult
811a908cc3
More segfault fixes in test suite (maybe order matters only on Linux?)
2024-05-11 19:01:57 +10:00
Andrej730
1e630ede08
ifc2x3 tests
2024-05-10 19:18:09 +05:00
Andrej730
cbf04546b8
fix many implicit ifcopenshell.guid imports
...
a bit related to 10d30b0de
2024-05-08 18:18:02 +05:00
Andrej730
59cc9c0a16
material.assign_material - support batching #4474
2024-04-12 17:41:37 +05:00
Andrej730
df4943205a
type.assign_type - support batching #4474
2024-04-10 18:58:44 +05:00
Andrej730
e69597f72b
typing
2024-04-10 18:45:36 +05:00
Andrej730
97db95085a
nest.assign_object - support batching #4474
2024-04-09 18:33:25 +05:00
Andrej730
cd11d2de27
aggregate.assign_object - support batching #4474
2024-04-08 17:49:48 +05:00
Andrej730
109787d869
spatial.assign_container - support batching #4474
2024-04-05 17:28:30 +05:00
Andrej730
78abca16e6
black format
2024-04-05 16:47:14 +05:00
Andrej730
931fd9cc9f
reassign_class - cover with tests
2024-02-28 16:54:11 +05:00
Andrej730
5e5de0bbd8
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-02-12 11:40:25 +05:00
Andrej730
6ee4edd0a0
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.
2023-11-21 12:35:35 +05:00
Andrej730
c26988b292
root.remove_product to remove IfcRelFlowControlElements
2023-11-10 12:10:22 +05:00
Andrej730
24eb149221
Support other voiding IfcFeatureElementSubtraction elements #3889
...
Support other voiding IfcFeatureElementSubtraction besides IfcOpeningElement.
2023-10-16 15:31:53 +05:00
Andrej730
fafcd5dfca
root.copy_class to remove connections from previously connected ports
2023-08-15 10:35:36 +05:00
Andrej730
f8ffc97bf5
remove_product to also remove psets for types
2023-08-09 16:37:47 +05:00
Andrej730
2446479d82
remove_product to remove object placement too
...
previously it wasn't deleting object placement when you removed the objects (and related elements like IfcDirections etc) and working on project long enough you might had a bunch of orphaned data in it
2023-08-03 15:54:47 +05:00
Andrej730
cbf8b7f3a2
root.remove_product to remove IfcRelConnectsPorts too
...
previously if you deleted some flow segment that was connected to another the connection would stay resulting in invalid ifc and other bugs
2023-08-01 17:45:17 +05:00
Andrej730
572a8c812e
root.remove_product fix
2023-07-14 18:22:31 +05:00
Andrej730
af4b5e1fe6
oops, forgot to clean up the test name
2023-07-14 18:02:51 +05:00
Andrej730
846dbc341d
root.copy_class to support copying ports in ifc2x3
2023-07-14 15:48:41 +05:00
Andrej730
6810bbff2f
remove_product to remove IfcRelConnectsElements
2023-07-14 14:46:58 +05:00
Dion Moult
f63091ce05
Fix #2974 . Type property sets are now properly copied.
2023-04-13 14:08:02 +10:00
Dion Moult
f291345111
Fix #2924 . IfcElements default to a null predefined type so they can inherit where possible.
2023-04-03 13:54:25 +10:00
Dion Moult
b6aa5c57c0
Fix bug where copying types with parametric materials could lead to invalidly reused material set items.
2023-03-20 20:40:11 +11:00
Dion Moult
3da718a6d1
Fix bug where removing objects could leave orphaned annotation relationships
2023-03-19 15:17:26 +11:00
Dion Moult
03a66d2806
Fix #2787 . Fix creating invalid orphaned property and group relationships when removing systems / groups / elements.
2023-02-21 10:59:47 +11:00
Dion Moult
88bddb9531
See #2520 . You can now duplicate drawings.
2023-02-08 12:29:49 +11:00
Dion Moult
efc3a692cb
Fix #2726 .
2023-01-29 12:27:50 +11:00
Dion Moult
a34c0cb35c
Fix a variety of IFC validation errors in entity creation and asset appending
2022-10-14 18:19:35 +11:00
Dion Moult
32f0911479
Elements with filled openings don't have their openings copied, as it depends on the fill
2022-10-09 22:22:12 +11:00
Dion Moult
7d779130e1
Removing products now handles purging a bunch more inverse relationships
2022-10-08 21:15:01 +11:00
Dion Moult
e97d427e9f
Copying elements with openings now also copies openings
2022-10-05 19:44:32 +11:00
Dion Moult
7545313dee
Removing an element now also purges connection relationships
2022-09-24 14:12:45 +10:00
Dion Moult
b7eaefee50
Fix bug when deleting elements may possibly create an invalid containment relationship
2022-09-23 23:26:29 +10:00
Dion Moult
f139f2ba1e
Fix bug where removing an element in an aggregation could leave the file in an invalid state
2022-09-23 23:00:07 +10:00
Dion Moult
eb48a68dd1
Copying elements do not copy connections to prevent mutually exclusive connectivity
2022-09-20 12:01:40 +10:00
Dion Moult
42edcda8bd
Deleting an element now also auto deletes its associated distribution ports
2022-05-06 10:38:38 +10:00
Dion Moult
53c050c6ed
Port locations now sync relative to their parent even when not actively displayed in the viewport
2022-05-05 18:00:42 +10:00
Dion Moult
9333839267
Copying an element now also copies its distribution ports
2022-05-03 18:05:27 +10:00
Dion Moult
ddb38b2ea0
The IfcOpenShell API now supports adding a distribution port.
2022-01-31 18:28:31 +11:00