Commit Graph

1074 Commits

Author SHA1 Message Date
Andrej730 5b5dd73684 get_inverse_attributes - added more correct recursive unpacking for aggregates and selections
Not affected the result schemas though
2023-02-23 18:56:24 +05:00
Andrej730 708dc6aca2 IFC4X3/IFC2X3 pset templates library
Generated from xmls from the ISO release of IFC4X3.
Based on https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/annex/annex-a/general-usage/IFC4_ADD2.ifc

Also generated pset templates library for IFC2X3 (also based on similar xmls) but IFC2X3 ifc pset library is using... IFC4X3 schema because IfcPropertySetTemplate and IfcRelDeclares are not available in IFC2X3. Which is okay for our purposes for now.

Will need to update IFC4X3 library if one of the issues will be resolved:
https://github.com/buildingSMART/IFC4.3.x-development/issues/587
https://github.com/buildingSMART/IFC4.3.x-development/issues/586
2023-02-23 18:17:14 +05:00
Dion Moult 2429f507ad Fix #2785. Fix bug where invalid models from Revit that reused material usages could create invalid models. 2023-02-21 13:48:24 +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 147602e107 Fix bug where ifcopenshell express rule validator required a logger with set_state. 2023-02-20 11:26:09 +11:00
Andrej730 ab9a4856ab Update entity-types mapping for ifc4
Added IfcWindowStyle and IfcDoorStyle for suitable StandartCases since StandartCases inherit from IfcDoor and IfcWindow.
2023-02-17 17:57:17 +05:00
Andrej730 d52618277e Ifc4x3 - entity-types mapping
- added mapping entity-types mapping based on iso release of ifc4x3

- added some manual corrections for `generate_util_type_json.py` if someone would regenerate the map for ifc4.

- manual correction in ifc4x3 mapping for IfcCivilElement. It could be removed in the future releases of IFC if https://github.com/buildingSMART/IFC4.3.x-development/issues/583 is resolved

If curious to look what were the changes for mapping between ifc4 and ifc4x3:
https://github.com/IfcOpenShell/IfcOpenShell/commit/da51253fb0a9d08aa93f5fe3c074d3592b3aa997#diff-98f525c91bb47b9820e603fba61cc015d3e6ae7261593d727c51114e3ff73aa7
2023-02-17 17:57:16 +05:00
Sigma Dimensions 8ee60db0df Re-assigning a product type class should also reassign the class of its typed instances 2023-02-15 23:11:30 +01:00
Andrej730 476ab506d0 Added ifc4x3 json schema and it's parser
API for docs works the same way as it worked for ifc2x3 and ifc4.

Besides changing `doc.py` and adding `.json` schemas added `ifc4x3dev_scrape_data_for_docs.py` (it's kind of hacky now and relies on `server.py` code from the further mentioned repo) that's used to parse some entities descriptions from https://github.com/buildingSMART/IFC4.3.x-development for later use in `doc.py`.
2023-02-15 18:38:04 +05:00
CyrilWaechter a6fa6201f7 Fix bugs introduced in cf87852 2023-02-15 10:34:25 +01:00
Thomas Krijnen 785d2e601c Fix after 31cf1127a6 2023-02-15 09:52:21 +01:00
Thomas Krijnen 31cf1127a6 Validation output enhancements 2023-02-14 20:55:14 +01:00
Thomas Krijnen 97385efbca entity_instance.get_info(scalar_only=) 2023-02-14 20:11:24 +01:00
Andrej730 6a87b68c3b Window Modifier - added 2d representation
+ fixed lining offset for door 2d representation
2023-02-14 16:54:43 +05:00
Thomas Krijnen 18670bcbd6 Recompile rules 2023-02-14 10:04:46 +01:00
Thomas Krijnen 27511d362e Use inverse unpacking in rule execution 2023-02-14 10:04:45 +01:00
Thomas Krijnen c634bffa10 Update reverse compilation to eliminate getattr() calls 2023-02-14 10:04:45 +01:00
Thomas Krijnen dffa90bd5d Better conformance wrt indeterminate with AST rewriting and dedicated type 2023-02-14 10:04:45 +01:00
Thomas Krijnen e87524ba11 ifcopenshell.settings.unpack_non_aggregate_inverses 2023-02-14 10:04:44 +01:00
Thomas Krijnen 0b4b45b7c8 Validate bounds of non-aggregate inverses 2023-02-12 15:28:14 +01:00
Dion Moult 82b201a14e Fix #2352. Text styling is now possible with custom classes. 2023-02-12 15:01:47 +11:00
Sigma Dimensions f4b93ef243 You can now duplicate tasks 2023-02-12 00:37:37 +01:00
Andrej730 0d0691a012 Door modifier - double doors type support 2023-02-11 16:09:13 +05:00
Andrej730 5cfc122b79 Door modifier - double swing doors
still no dashed lines in 2d representation
2023-02-11 14:20:04 +05:00
Dion Moult ceaa930aad Fix #2756. Bug where reassigning classes with a enum didn't work. 2023-02-11 11:03:35 +11:00
Sigma Dimensions 6c82e6f889 Fix assign cost value usecase 2023-02-10 21:28:49 +01:00
Thomas Krijnen 531e07767f #2754 latebound schema handling 2023-02-10 21:08:20 +01:00
Thomas Krijnen da39c903f3 Latebound schema handling: Improve error messages 2023-02-10 21:07:25 +01:00
Andrej730 9e383959c8 door black formatting 2023-02-10 16:58:36 +05:00
Andrej730 3654e49f87 Door handles 2023-02-10 16:55:13 +05:00
Dion Moult ae564d1b61 Fix #1040. New utility for geometric shape analysis only requiring numpy. 2023-02-10 16:03:16 +11:00
Dion Moult 50d71d5ea1 Black code and make profile representation optional for windows. 2023-02-09 20:13:14 +11:00
Sigma Dimensions 7fe2634d32 Improve guess schedule date range ( including tasks with input assignements) 2023-02-08 08:18:08 +01:00
Dion Moult 88bddb9531 See #2520. You can now duplicate drawings. 2023-02-08 12:29:49 +11:00
Sigma Dimensions 4e308a6e31 fix api docstring description for nest.unassign_object usecase 2023-02-07 15:35:34 +01:00
Andrej730 4bd7fc5304 Simplified door ifc representation 2023-02-07 16:48:37 +05:00
Andrej730 e1456533f2 Doors - clean up + black format 2023-02-06 18:53:48 +05:00
Andrej730 e57ff19e16 Door - added 2d representation 2023-02-06 18:44:09 +05:00
Andrej730 b2bdbdd8c3 Door modifier - basic setup
Also:
- refactored window modifier code - part of it is now reused building a door and can be used by other module in the future
- fixed bug with window lining intersecting frame when lining_depth < panel_depth
- simplified the way lining is built in ifc - previously it was using 4-6 extrusions, now it's 1-2 which is also better for 2D drawings
2023-02-06 18:44:09 +05:00
Dion Moult e40bbf2525 See #1806. Typed fillings now share the same representation for their openings. 2023-02-06 17:01:29 +11:00
Thomas Krijnen 6b7aeb90c7 Express rules: allow comparison of instances to instances and values 2023-02-05 13:08:55 +01:00
Dion Moult 207093fe99 Fix regression where changing assigned types didn't update the materials. 2023-02-04 22:12:28 +11:00
Dion Moult a7cc58fb50 Update libraries to use Plan/Body/PLAN_VIEW instead of annotations. 2023-02-04 14:09:35 +11:00
Thomas Krijnen c4b77c2a07 Recompile rules 2023-02-03 22:22:40 +01:00
Thomas Krijnen 5526bed4c3 Express rules: allow indexing in sets 2023-02-03 21:17:08 +01:00
Thomas Krijnen 078bf8646a Express rules: enclose rhs of not in parens when needed 2023-02-03 21:10:34 +01:00
Dion Moult e1e4380fc7 Fix 3 bugs related to representations:
* Bug when switching representations when active object not selected.
 * Bug when switching to a non MODEL_VIEW body representation would load the MODEL_VIEW one instead all the time.
 * Add support for plan body representations.
2023-02-03 21:27:25 +11:00
Dion Moult 158a4c5e75 Fix bug where IFC2X3 fallback styles couldn't be assigned. 2023-02-03 13:21:23 +11:00
Dion Moult f72d48aab5 Fix bug where calendar caching meant invalid duration calculations if you edited your calendar after a date calculation. 2023-02-03 10:06:55 +11:00
Dion Moult be26a77ecb Support times specified as ISO strings too in date utils, not just datetimes. 2023-02-02 23:01:49 +11:00