Commit Graph

321 Commits

Author SHA1 Message Date
Dion Moult 9af7ddaf56 See #3334. Fix bug where get_pset didn't handle property inheritance correctly. 2024-04-15 13:30:40 +02:00
Andrej730 0d74ffd52f Shape builder - detect AdvancedSweptSolid
To avoid validation errors on creating wall mounted railings

    #143=IfcShapeRepresentation(#15,'Body','SweptSolid',(#116,#126,#129,#139,#142))
Rule IfcShapeRepresentation.CorrectItemsForType:
    IfcShapeRepresentationTypes(self.RepresentationType, self.Items)
Violated by:
    False
     +  where False = IfcShapeRepresentationTypes('SweptSolid', (#116=IfcSweptDiskSolid(#115,10.,$,$,$), #126=IfcExtrudedAreaSolid(#120,#124,#125,20.), #129=IfcSweptDiskSolid(#128,10.,$,$,$), #139=IfcExtrudedAreaSolid(#133,#137,#138,20.), #142=IfcSweptDiskSolid(#141,25.000000372529,$,$,$)))
     +    where 'SweptSolid' = #143=IfcShapeRepresentation(#15,'Body','SweptSolid',(#116,#126,#129,#139,#142)).RepresentationType
     +    and   (#116=IfcSweptDiskSolid(#115,10.,$,$,$), #126=IfcExtrudedAreaSolid(#120,#124,#125,20.), #129=IfcSweptDiskSolid(#128,10.,$,$,$), #139=IfcExtrudedAreaSolid(#133,#137,#138,20.), #142=IfcSweptDiskSolid(#141,25.000000372529,$,$,$)) = #143=IfcShapeRepresentation(#15,'Body','SweptSolid',(#116,#126,#129,#139,#142)).Items
2024-04-15 13:29:28 +02:00
Andrej730 5c1a96c24c Shape builder - avoid duplicated indices in polylines
For example
IfcLineIndex((1,2,3,4,1))
instead of
IfcLineIndex((1,2,2,3,3,4,4,1))
2024-04-15 13:29:28 +02:00
Andrej730 ced6326bfd ShapeBuilder to use IfcPolyline of IfcIndexedPolyCurve to support ifc2x3
needed it to add suport for window/door modifiers in ifc2x3 in the next commit
2024-04-15 13:29:20 +02:00
Dion Moult aafb905199 Build testing prototype of an SQLite based file / entity_instance. 2024-04-15 12:04:43 +02:00
Dion Moult 534247daa1 Fix bug for getting psets of materials and profiles in IFC2X3 2024-04-15 12:04:43 +02:00
Dion Moult 13b80af97e See #3226. New batched remove_deep2() which uses serialisation for faster removal performance on large graphs. 2024-04-15 10:59:03 +02:00
Andrej730 ad4f00648f Blender curves to IfcIndexedPolyCurve #3233
Now blender curves segments saved in IfcIndexedPolyCurves instead of creating individual polygons.
Also changed ShapeBuilder.polyline - now it will try to store points in IfcLineIndex where it's possible (previously it was storing just 2).
2024-04-15 10:59:03 +02:00
Andrej730 2db82371bd Display units for more pset/qset props #3235
Now current project units displayed for area and volume properties too.
https://i.imgur.com/7dgl1pC.png
Also added support for imperial units symbols.
2024-04-15 10:59:03 +02:00
Dion Moult bc76c8497e You can now get decompositions non-recursively in element utilities 2024-04-15 10:59:03 +02:00
Andrej730 58ea6d7de9 same generate_pset_templates.py for ifcopenshell and ifc dev repos
same script will be easier to maintain
2024-04-15 10:59:02 +02:00
Andrej730 98cc0336ec Fixed validation errors in pset templates library
- missing project and IfcRelDeclares guids
- missing RelatingContext in IfcRelDeclares
2024-04-15 10:59:02 +02:00
Andrej730 ce8379b8f7 Fixed missing PrimaryMeasureType for P_LISTVALUE in pset templates #3236
For some reason there is also was missing PrimaryUnit in IFC2X3. But it's unrelated to the changes from this commit (generating pset templates before this commit already has PrimaryUnit there).
2024-04-15 10:59:02 +02:00
Sigma Dimensions 6e3acd8c4a BBIM 5D: Various Cost Schedule UI Improvemements 2024-04-15 10:59:02 +02:00
Dion Moult 30bff7e9c5 Fix #3113. Support regex in selector filter values. 2024-04-15 09:58:26 +02:00
Dion Moult 8bd77b3663 New get_shape_matrix utility. 2024-04-15 09:58:26 +02:00
Andrej730 50e393675a More descriptive exception for reassign_class #3192
Added it because there was no error handling here anyway and later there was another UnboundLocalError:

    for attribute in declaration.all_attributes():
UnboundLocalError: local variable 'declaration' referenced before assignment
2024-04-15 09:58:25 +02:00
Sigma Dimensions f81b8eae87 remove annoying print statement 2024-04-15 09:58:25 +02:00
Gorgious56 078e50423f Fix typo in get_pset docstring 2024-04-15 09:56:51 +02:00
Dion Moult dff827db59 Minor improvements to shape utility. 2024-04-15 09:56:51 +02:00
arun 3ea7e28b12 corrected get_extrusions function 2024-04-15 09:56:51 +02:00
Dion Moult 3b66822fe2 Add shape utility to easily get profiles and extrusions 2024-04-15 09:56:38 +02:00
Dion Moult b8431a8c33 Fix failing tests in preparation for release. 2024-04-15 09:56:38 +02:00
Sigma Dimensions 0b9e7af325 BBIM4D: Enable filtering by active work schedule when retrieve tasks related to objects 2024-04-15 09:56:38 +02:00
Sigma Dimensions 7188d6ea74 BBIM 4D: implement human readable duration to read/edit durations.
new IOS Fuzzy Duration Parsing utility
2024-04-15 09:56:37 +02:00
Dion Moult f6ccfb52b3 See #1676. Space boundary generation now accounts for voids and fills. 2024-04-15 09:56:37 +02:00
Sigma Dimensions 55250aba6d BBIM 4D features & fixes:
- feature to re-order tasks
- fixes for task sorting
- further workSchedule UI/UX improvements
- forgotten bits and bobs
2024-04-15 09:52:38 +02:00
Andrej730 b5d24334fd Fixed bug with wrong position of support in wall mounted railing
The problem was that that support's disk was not rotated according to the railing path.
2024-04-15 09:52:38 +02:00
Dion Moult 0400b72f3e Fix #3052. Deep deletion of large geometries is now thousands of times faster. 2024-04-15 09:52:37 +02:00
Andrej730 1dcf74eb60 WALL_MOUNTED_HANDRAIL type for Railing modifier
Added WALL_MOUNTED_HANDRAIL type for railing modifier. It's still a bit work in progress - still need to add support for different railing termination types.

Here's the short demonstration - https://user-images.githubusercontent.com/9417531/234582621-6c6f948b-9cdc-4be6-b380-17ddbf5803bf.mp4
2024-04-15 09:52:37 +02:00
Dion Moult 4722208fa4 Fix #3038. Fix #3039. Selector should default to none instead for throwing errors if the query doesn't have a result. 2024-04-15 09:49:52 +02:00
arun 8517f808a8 Nesting added to util.get_decomposition function 2024-04-15 09:37:50 +02:00
Thomas Krijnen 77445f9b22 get_mappeditem_transformation() 2024-04-15 09:37:50 +02:00
Thomas Krijnen 0325c49c3d Add util.placement.get_cartesiantransformationoperator3d() 2024-04-15 09:37:50 +02:00
Thomas Krijnen 5f334192db Normalize vectors in a2p() 2024-04-15 09:37:50 +02:00
Andrej730 d2124e1c8b Fixed bugs with furniture library toilets and basins #2976
Bug was introduced in cf6acd5 when `shape_builder.get_rectangle_coords` started returning coords in counter-clockwise order instead of clockwise.
2024-04-15 09:37:49 +02:00
Sigma Dimensions 827b0fe6ac BBIM 4D Features to:
- Display nested task resources/task inputs of the active task
- Show list of tasks related to the current object selection
- Highlight, in the WorkSchedule panel, tasks  related to the current object selection
2024-04-15 09:25:50 +02:00
Dion Moult 9707a2b2f6 Fix #2945. Selector should expand enumerated list properties so that you can match any of them. 2024-04-15 09:25:50 +02:00
Andrej730 5d4ecb7177 Sliding doors - moved annotation arrow to Annotation/PLAN_VIEW #2919 2024-04-15 09:25:49 +02:00
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
Andrej730 e5427583ad Fixed typo in ifcopenshell.util.type 2024-04-15 09:25:47 +02:00
Sigma Dimensions 5b8b68457f ios utility to transform a human readable date or duration from string into objects 2023-03-29 00:47:05 +00:00