Dion Moult
dff33632ae
See #2881 . Allow indices in the selector instead of relying on external evaluations.
2024-04-15 09:25:49 +02:00
Andrej730
be75ef2596
Fixed ifc validation errors for furniture library #2925
...
Fixed bunch of validation errors with furniture library:
- IfcSpaceType PredefinedType wasn't optional
`<attribute PredefinedType: <enumeration IfcSpaceTypeEnum: (EXTERNAL, GFA, INTERNAL, NOTDEFINED, PARKING, SPACE, USERDEFINED)>> Not optional`
- some object had 0.0 depth extrusion
```
Rule IfcPositiveLengthMeasure_WR1:
(self > 0.)
Violated by:
(0.0 > 0.0)
```
- some orphan representations violating:
```
Rule IfcShapeModel_WR11:
((sizeof(self.OfProductRepresentation) == 1) ^ (sizeof(self.RepresentationMap) == 1) ^ (sizeof(ofshapeaspect) == 1))
Violated by:
((0 == 1 ^ 0 == 1) ^ 0 == 1)
+ where 0 = sizeof(())
+ where () = #9091=IfcShapeRepresentation(#15,'Body','SweptSolid',(#9090 )).OfProductRepresentation
+ and 0 = sizeof(())
+ where () = #9091=IfcShapeRepresentation(#15,'Body','SweptSolid',(#9090 )).RepresentationMap
+ and 0 = sizeof(())
```
2024-04-15 09:25:48 +02:00
Andrej730
ec882a1a7d
Fixed validation error for ELEVATION_VIEW curves #2925
...
Error occured because ShapeBuilder was assigning "Curve2D" representation type for elevation view curves when the correct type is "Curve3D".
It use to occur for both doors and windows created with ifc modifier.
```
Validation error text:
2023-04-03:18:21:28,879 ERROR [rule_executor.py:154] On instance:
#135=IfcShapeRepresentation(#21,'Profile','Curve2D',(#134 ))
Rule IfcShapeRepresentation_CorrectItemsForType:
(IfcShapeRepresentationTypes(self.RepresentationType,self.Items))
Violated by:
False
+ where False = IfcShapeRepresentationTypes('Curve2D', (#134=IfcIndexedPolyCurve(#133,(IfcLineIndex((1,2)),IfcLineIndex((2,3)),IfcLineIndex((3,4)),IfcLineIndex((4,1))),$),))
+ where 'Curve2D' = #135=IfcShapeRepresentation(#21,'Profile','Curve2D',(#134 )).RepresentationType
+ and (#134=IfcIndexedPolyCurve(#133,(IfcLineIndex((1,2)),IfcLineIndex((2,3)),IfcLineIndex((3,4)),IfcLineIndex((4,1))),$),) = #135=IfcShapeRepresentation(#21,'Profile','Curve2D',(#134 )).Items
```
2024-04-15 09:25:48 +02:00
Andrej730
3095521e36
Fixed some validation errors for doors and windows #2925
...
Fixed the ones caused by using 3d curves as inner/outer curves in profiles.
2024-04-15 09:25:48 +02:00
Chun
4bdf5475a9
a simplifier workflow and a more consistent coding style
2024-04-15 09:25:48 +02:00
Chun
ab17b85854
Unify variable
2024-04-15 09:25:48 +02:00
Chun
f859f11add
Update functions of get_connected_to and get_connected_from compatible with IFC4 and IFC2X3
2024-04-15 09:25:48 +02:00
Chun
765b4a73d3
Add IFC4 support for functions get_connected_to and get_connected_from in util.system
2024-04-15 09:25:48 +02:00
Chun
9d70b9303b
Add IFC4 support to get_connected_to and get_connected_from functions
2024-04-15 09:25:48 +02:00
Dion Moult
4bd9515bf5
Fix #2924 . IfcElements default to a null predefined type so they can inherit where possible.
2024-04-15 09:25:48 +02:00
Andrej730
e5427583ad
Fixed typo in ifcopenshell.util.type
2024-04-15 09:25:47 +02:00
Andrej730
3429972067
Added arrow to 2d repr of sliding doors ( #2919 )
...
Example - https://i.imgur.com/eJnhDXU.png
2024-04-15 09:25:47 +02:00
Andrej730
7f1bb71c66
IFC Door Modifier - sliding doors
...
Added support for sliding doors in IFC Door Modifier.
The main differences are 2d representation (https://i.imgur.com/VyEH569.png ) and the door panel being placed before the lining, not after
2024-04-15 09:25:22 +02:00
Dion Moult
acf6628f23
Fix #4547 . Handle both null inherited predefined types and disable editing predefined types on occurrences which inherit from a type.
2024-04-15 11:53:37 +10:00
Dion Moult
8a62558575
Fix #4484 . Clarify inheritance rules of predefined types.
2024-04-15 09:27:58 +10:00
Andrej730
eb46de9658
material.unassign_material - support batching #4474
2024-04-12 17:41:37 +05:00
Andrej730
59cc9c0a16
material.assign_material - support batching #4474
2024-04-12 17:41:37 +05:00
Andrej730
32d2f1d629
material.assign_material - update owner history
2024-04-12 17:41:37 +05:00
Andrej730
59b496d4b5
typing
2024-04-12 17:41:36 +05:00
Andrej730
e66ac3d7db
system.unassign_system - support batching #4474
2024-04-11 17:50:31 +05:00
Andrej730
6b48e8b4b9
system.assign_system - support batching #4474
2024-04-11 17:50:31 +05:00
Andrej730
3d243b5eee
system.add_system - fix failing default agrument in ifc2x3
2024-04-11 17:50:31 +05:00
Andrej730
fa0dbac914
new util method ifcopenshell.util.element.get_groups
2024-04-11 17:50:30 +05:00
Andrej730
49e7abb4dc
type.unassign_type - support batching #4474
2024-04-11 17:09:41 +05:00
Andrej730
5098550399
assign_type not to remap if it's type was assigned previously
2024-04-11 17:09:41 +05:00
Andrej730
e12c05eea0
typing
2024-04-11 17:09:41 +05:00
Vukas Pajic
58b39d3926
fix: address test fails
2024-04-11 13:03:13 +02:00
Vukas Pajic
946c868388
fix: cascade_schedule correctly handles timelag with IfcRatioMeasure
2024-04-11 11:35:34 +02:00
Andrej730
df4943205a
type.assign_type - support batching #4474
2024-04-10 18:58:44 +05:00
Andrej730
ba4eb2a891
fix bug in nest.assign_object
2024-04-10 18:58:44 +05:00
Andrej730
81ff9c168e
nest.assign_object to support ifc2x3
2024-04-10 18:45:37 +05:00
Andrej730
239ab5b587
get_pset() fix bug getting inherited psets with psets_only/qtos_only = True
2024-04-10 18:45:37 +05:00
Andrej730
37a33d62d5
further ifcopenshell.util.element optimization
...
and readibility for props addressed by the index
2024-04-10 18:45:37 +05:00
Andrej730
13c6fdd3c6
maintain verbosity getting complex property subproperties
2024-04-10 18:45:36 +05:00
Andrej730
e69597f72b
typing
2024-04-10 18:45:36 +05:00
Alper Kantarci
4d906578c7
Use "gltf" instead of "gtlf" ( #4538 )
...
- Fix "gtlf" typo
2024-04-10 21:02:56 +10:00
Dion Moult
de744dddda
Fix #4290 . You can now format custom thousands separators and decimal separators in IfcCSV.
2024-04-10 17:32:39 +10:00
Dion Moult
bee1e21f0e
Fix #4490 . Fix fundamental bug where get_pset would return none for inherited props with a boolean False value.
2024-04-10 12:57:52 +10:00
Andrej730
153389fe4a
ifcopenshell.util.element optimization
...
Tried to reduce amount of IFC attributes retrieved by reusing already retrieved values.
E.g. previously get_nest() was retrieving same attribute 3 times on each call, now it does it only once and it's 2 times faster (2.4 ms -> 1.2 ms).
2024-04-09 18:36:55 +05:00
Andrej730
06b84cfa24
nest.unassign_object - support batching #4474
2024-04-09 18:33:25 +05:00
Andrej730
97db95085a
nest.assign_object - support batching #4474
2024-04-09 18:33:25 +05:00
Andrej730
d1bcec7a6a
typing
2024-04-09 18:33:25 +05:00
Andrej730
7b46c6a443
black format
2024-04-09 17:05:36 +05:00
Andrej730
6db0c14fa8
ifcopenshell.api.run optimization
...
cache usecase classes instead of importing their modules and getting them each time, makes empty api call twice as fast
2024-04-09 16:18:11 +05:00
Andrej730
d03f9237e2
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-09 16:09:04 +05:00
Andrej730
f14bf8557a
aggregate.unassign_object - support batching #4474
2024-04-08 17:49:48 +05:00
Andrej730
cd11d2de27
aggregate.assign_object - support batching #4474
2024-04-08 17:49:48 +05:00
Andrej730
d764c0af23
temporary support for deprecated api arguments #4531
2024-04-08 17:49:48 +05:00
Andrej730
d24e5df7c1
typing
2024-04-08 17:27:41 +05:00
Andrej730
abe6dbdfc9
layer.unassign_layer - support batching #4474
2024-04-08 16:28:05 +05:00