Commit Graph

357 Commits

Author SHA1 Message Date
Sigma Dimensions (Yass) f8651430e6 consolidate constraint utilities into ifcopenshell.util.constraint and refactor 2024-04-16 10:25:00 +02:00
Sigma Dimensions (Yass) 3582ccc1d4 Fix calculating resource work based from parent's productivity and improve UI to show this 2024-04-16 10:24:59 +02:00
Dion Moult 9f42a91045 New util function to format a length value in preparation for custom formatting rules in drawings and schedules. 2024-04-16 10:24:59 +02:00
Andrej730 ca7984e12e mep transitions - correct angle when connected segments share the same dimensions
Basically there are 3 methods to define the transition angle (https://i.imgur.com/AtCIJty.png). Before we supported only the second method, now we support 1 and 3 too.
2024-04-16 10:24:59 +02:00
Dion Moult 94e3627c8c IfcCSV now supports grouping and group operations like concat, sum, min, max, etc. 2024-04-16 10:24:59 +02:00
Dion Moult 641b5e002a Now support custom queries for advanced users in the facet selector (similar to old selector). Also support types and count keys. (e.g. filter by objects with zero types, or zero materials, etc). 2024-04-16 10:24:59 +02:00
Dion Moult 2dd6b164a9 You can now get specific container types via util.element or util.selector. E.g. if you wanted to know what building an object is in or what storey an object is on. 2024-04-16 10:24:59 +02:00
Andrej730 b998e1c927 more work on transitions for MEP
- support transitions from and to circle profiles
- reworked transition length algorithm now it should be more accurate
- added support for creating transitions between profiles that are parallel but not collinear
2024-04-16 10:24:59 +02:00
Dion Moult 6097d4415a Fix #3583. BaseQuantity QTOs in IFC4 can now be set on types. 2024-04-16 10:24:58 +02:00
Dion Moult 331b9cc440 See #3587. IfcCSV now supports custom header titles. 2024-04-16 10:24:58 +02:00
Dion Moult fa3c8b43f6 Add support for converting IFC spaces, systems, and feed / location / part relationships into Brick. Brick utilities can now get downstream equipment, and system util can now take into account port flow direction. 2024-04-16 10:24:57 +02:00
Gorgious56 a3aaa9eeba simplify ifc class suggestions json file and operator 2024-04-16 10:24:57 +02:00
Dion Moult 54eda1a81c Fix #3591. Fix bug where IfcCSV import was not symmetric capability wise. Now you can set all sorts of complex values with the exact same keys you are using to query. 2024-04-16 10:24:57 +02:00
Dion Moult 93031f0fc0 Don't strictly require guids / class filters that exist in new facet selector. 2024-04-16 10:24:56 +02:00
Dion Moult 7038eb887f Fix #3584. Support matching enumerated properties in new facet selector. 2024-04-16 10:24:55 +02:00
Dion Moult faa5a78b39 Fix #3578. Support querying surface styles in tools like IfcCSV. 2024-04-16 10:24:55 +02:00
Andrej730 86b63242d8 bim.add_transition
Added simple operator to add transition between two mep segments (now only rectangular collinear segments are supported).
It also reuses the transition type that was previously used to connect segments of the same type.

Demonstration - https://imgur.com/a/c1AOxj1
2024-04-16 10:24:53 +02:00
Dion Moult dca25e8475 Initial implementation of scale dependent map conversion for IFC4X3 2024-04-16 10:10:51 +02:00
Andrej730 bd6e4fbd64 tests for system.get_connected_to / get_connected_from 2024-04-16 10:10:50 +02:00
Andrej730 a3d1c60375 fixed bug in system.get_connected_to / get_connected_from
import was missing
2024-04-16 10:10:50 +02:00
Andrej730 60d62c2dd4 sort keys in the entity to type mapping 2024-04-16 10:10:50 +02:00
Andrej730 871902de12 More general solution for #3466 2024-04-16 10:10:50 +02:00
Dion Moult 7d03b0017b Fix #3466. Bug in upstream IFC where distribution elements and furnishing elements had no corresponding type and occurrence. 2024-04-16 10:10:50 +02:00
Dion Moult 1426481cf8 Fix #3509. Backport Qto_BodyGeometryValidation to IFC4 (via EQto) and fix bug where there was no way to have custom Qtos show up in the qto dropdown. 2024-04-16 10:05:52 +02:00
Ryan Schultz df699de97d added to ifc_classes_suggestions.json 2024-04-16 10:05:51 +02:00
Dion Moult aa325d521b You can now save, load, and create custom colour legends of properties 2024-04-16 10:05:50 +02:00
Dion Moult 4396f937b5 You can now load and save searches from the search panel 2024-04-16 10:05:50 +02:00
Andrej730 4b03cace3e moving code to shape builder 2024-04-16 10:05:50 +02:00
Gorgious56 274f42993c #3478 : Ifc class name suggestions can now autofill predefined type
If they are correctly filled in the json file :)
2024-04-16 10:05:50 +02:00
Dion Moult 7fec467565 Implement guid facet in facet selector 2024-04-16 10:05:50 +02:00
Dion Moult 62c120e4bb New facet based selector syntax. Proposed to supersede existing selector syntax. 2024-04-16 10:05:50 +02:00
Dion Moult 84570a69f8 Utility function to create rotation matrixes in numpy. 2024-04-16 10:05:49 +02:00
Sigma Dimensions 676c96c6e2 Georeferencing utility to convert an angle in degrees to X Axis Abscissa and Ordinate 2024-04-15 13:30:41 +02:00
Andrej730 5b10923b45 ShapeBuilder.polyline - skip creating segments if they are not needed 2024-04-15 13:30:40 +02:00
Dion Moult f1e3fb38ad See #3334. Fix some get_pset implementation errors in 64516a1 2024-04-15 13:30:40 +02:00
Dion Moult ce8a9293bb See #3334. Optimise pset getting and add simple "broadphase" filtering for all facets for faster validation. 2024-04-15 13:30:40 +02:00
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