Commit Graph

10386 Commits

Author SHA1 Message Date
Andrej730 666f8e2459 Bump BBIM ifcopenshell build #4580 2024-05-31 18:28:52 +05:00
Andrej730 c303f216ad Migrate recipe - do not call .migrate twice for each element 2024-05-31 18:20:47 +05:00
Andrej730 162e66b775 typing 2024-05-31 18:20:46 +05:00
Andrej730 c05abc4d5b ifc4x3 support for adding IfcQuantityCount #4776
In IFC4X3 IfcQuantityCount is now more strict and requires only interger values.
Error for a reference:
TypeError: attribute 'CountValue' for entity 'IFC4X3.IfcQuantityCount' is expecting value of type 'INT', got 'float'.
2024-05-31 18:20:46 +05:00
Andrej730 dacb3b101c small docs fix 2024-05-31 18:20:46 +05:00
Andrej730 696c6b09b0 materials ui - preserve selected category on expanding/contracting all categories 2024-05-31 18:20:46 +05:00
Andrej730 6e738a0e3a materials ui - fix bug when it was impossible to contract category
E.g. it was impossible to contract category "TEST" if there was also a material with name "TEST" (and it's category was expanded). It occurred due to a mixup of materials and categories in expanded_categories.

Also changed is_expanded default value to False as it makes more sense (previous value didn't worked for materials and for categories you probably would want it to be False by default.
2024-05-31 18:20:46 +05:00
Andrej730 ba6cdc967c materials ui - shift+click to expand/contract all categories #4771 2024-05-31 18:20:46 +05:00
Andrej730 468baef5c8 materials ui - make expanding/contracting categories more natural
Previously if you had some item active before the category you're trying to expand/cotract it would jump back to that item which was confusing. Now it sets contracted/expanded category as active to prevent that jump.

Before - https://imgur.com/a/87ZDnVq
After - https://imgur.com/a/B9WOn8I

In Blender when we reload materials in collection property it's resetting scroll position in the template_list and setting it based template_list index, so the only way to preserve the scroll position is to manipulate template_list index.
2024-05-31 18:20:46 +05:00
Andrej730 bda9dfd4cc materials ui - avoid having multiple "Uncategorised" categories
Previously it would create multiple same named "Uncategorised" categories for each case when Category was "", None, "Uncategorised", which was confusing and some of them ("" and None) would expand simultaneously when you would try to expand one.

Removed `or "Uncategorised"` from ui.py as there shouldn't be a need for this since all cases are handled when items are added.
2024-05-31 18:20:46 +05:00
Dion Moult 930feb1d52 See #4768. Attempt to use pip for lxml packaging. 2024-05-31 23:06:12 +10:00
Dion Moult e0b11aa66e Fix #4434. User can now explicitly select whether they are choosing a whole or part when changing the aggregate. 2024-05-31 21:38:51 +10:00
Dion Moult b2e7044373 Fix bug where you couldn't change the aggregate of a spatial element (which has been locked during import) 2024-05-31 21:17:51 +10:00
Dion Moult 77abe9a0a5 [BBIM docs] change color of ui breadcrumb on dark background #4777 by @dirkolbrich
Sorry I messed up this merge and did a force push somehow
2024-05-31 21:15:33 +10:00
Dion Moult e2c67c2f37 Revert "fixes #4434"
This reverts commit cdd332d1ee.
2024-05-31 21:11:37 +10:00
Dion Moult a5d123fe83 Map a bunch more qto functions for the IfcOpenShell calculator 2024-05-31 13:09:05 +10:00
Dion Moult b7b99b6db7 Fix #4773. Bug where two materials that shared a style would cause the Blender <-> IFC link to break 2024-05-31 12:54:19 +10:00
Dion Moult 2be0cc697a Fix #4768. Support Python 3.12 version of BBIM. 2024-05-31 11:30:26 +10:00
Dion Moult dc92b973a0 Minor fix 2024-05-31 10:15:03 +10:00
Dion Moult 5466be9b7b Fix #4765. Only run Blender calculator on meshes. blenderbim-240531 2024-05-31 10:09:56 +10:00
Andrej730 b86dab2a76 fix removing aggregate's collections (and possible orphaned ifc data)
Probably have met this issue before - https://i.imgur.com/EOCSGg2.png

It occurred when you would remove e.g. IfcBuildingStorey's (or other aggregate's) collection from outliner. Deletion operator removes objects first and removing aggregate's main object is automatically removing it's collection. Then it would start removing collections and will break meeting an invalid collection.

Most of the times it was scary but harmless since all collections are probably removed either way but it's critical for batch removal as it would be never finished, possibly leaving unlinked ifc data (e.g. representations and it's items) that's not removed completely until batch removal is finalized.

Traceback:
Error: Python: Traceback (most recent call last):
  File "\blenderbim\bim\ifc.py", line 360, in execute_ifc_operator
    result = getattr(operator, "_execute")(context)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\blenderbim\bim\module\geometry\operator.py", line 720, in _execute
    bpy.data.collections.remove(collection)
ReferenceError: StructRNA of type Collection has been removed
blenderbim-240530
2024-05-30 17:40:13 +05:00
Andrej730 a57e063c14 convert_to_blender to also unlink blender material from ifc material 2024-05-30 17:38:14 +05:00
Gorgious c7830e9e5b Using the "Select IFC class" button doesn't throw an error anymore if an object candidate is in an excluded collection
+ use walrus operator in a few instances
2024-05-29 16:23:05 +02:00
Gorgious d533ba1e6b Remove dead code going back to a time immemorial hack 2024-05-29 16:11:35 +02:00
Andrej730 45a1655485 typing 2024-05-29 18:00:44 +05:00
Andrej730 3679fccfbd reload_representation to support multple objects and optimize the process 2024-05-29 17:20:34 +05:00
Andrej730 cf9f792a3b fix issue unlinking objects after d219856
`unlink_style` doesn't need `tool.Style` anymore and `obj` argument was replaced with `style`
2024-05-29 17:20:34 +05:00
Dion Moult d87665de7e Minor fix 2024-05-29 22:03:22 +10:00
Dion Moult 95daf7efa3 Minor fix to expose both net and gross variants of IfcOpenShell Qto calculator 2024-05-29 21:58:02 +10:00
Dion Moult 435ce8d58a New qto tool is now unit aware 2024-05-29 21:46:23 +10:00
Dion Moult f92a2b3c8e Shift-Q QTO shortcut now works again 2024-05-29 19:37:35 +10:00
Dion Moult 5ea1c94822 Expose all previous calculation functions in new Qto UI 2024-05-29 19:29:48 +10:00
Andrej730 ab1bf7592e fix error exporting schedule of rates #4723
Issue occurred when cost item would have no quantities but had controlled objects with quantities.

1) just added a check to ensure that cost_item.CostQuantities are present
2) removed possible None return value in get_cost_item_quantity as it actually will break process_cost_data and it's never used anywhere else
3) has_changed_name was unused
4) fix possible similar issue in cost.data (though _get_object_quantities method is unused)
2024-05-29 11:49:27 +05:00
Dion Moult f4247c3527 Continue purging tools that were specific to base qtos
Base qtos shouldn't be too special, it should be based off a calculation mapping. This means we can also support IFC2X3 better (which has no base qtos)
2024-05-29 15:56:50 +10:00
Dion Moult 8c3d10a2bd Reimplement manual qty calculator using autodetected calculator functions and redo qto UI 2024-05-29 15:14:11 +10:00
Dion Moult 1bda47f76e Migrate calculator to qto module and mapper to Ifc5D. 2024-05-29 12:45:09 +10:00
Dion Moult 9001aa6383 Purge calculate quantities operator - to be replaced with new ifc5d qto tool
The calculate quantities operator assumes a single mapper, not a configurable calculator.
2024-05-29 12:39:05 +10:00
Ryan Schultz 097c5cee3c fix #3802 - Copy array attributes from another array. Big thank you to @brunoperdigao, for the help! 2024-05-28 21:17:23 -05:00
Dion Moult 9d789425ce Purge guess quantity feature. It will be reintroduced as a separate tool. blenderbim-240529 2024-05-29 11:19:33 +10:00
Dion Moult c0b86ea016 Fix incorrect colours in Basic FM template 2024-05-29 08:51:27 +10:00
Dion Moult 6806eb0a05 Create blank ifc4 qto base quantities ruleset 2024-05-29 08:41:43 +10:00
Andrej730 ce26d931c1 regenerate ifc4x3 pset templates after the release
Change log

Different props in pset 'Pset_BuildingCommon':
- new props: ElevationOfTerrain, ElevationOfRefHeight
New template 'Pset_DoorLiningProperties' with props: LiningDepth, LiningThickness, ThresholdDepth, ThresholdThickness, TransomThickness, TransomOffset, LiningOffset, ThresholdOffset, CasingThickness, CasingDepth, LiningToPanelOffsetX, LiningToPanelOffsetY
New template 'Pset_DoorPanelProperties' with props: PanelDepth, PanelOperation, PanelWidth, PanelPosition
New template 'Pset_PermeableCoveringProperties' with props: OperationType, PanelPosition, FrameDepth, FrameThickness
Different props in pset 'Pset_Stationing':
- new props: HasIncreasingStation
New template 'Pset_WindowLiningProperties' with props: LiningDepth, LiningThickness, TransomThickness, MullionThickness, FirstTransomOffset, SecondTransomOffset, FirstMullionOffset, SecondMullionOffset, LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY
New template 'Pset_WindowPanelProperties' with props: OperationType, PanelPosition, FrameDepth, FrameThickness
2024-05-28 18:01:33 +05:00
Andrej730 eeaa0a5530 Fill IfcPropertySetTemplate.TemplateType in ifc2x3 pset templates 2024-05-28 18:00:22 +05:00
Andrej730 a09cb5dee4 typing 2024-05-28 18:00:21 +05:00
Andrej730 6035683492 sync get_base_qto after 70a4af2 2024-05-28 12:59:34 +05:00
Andrej730 f27dbacd28 prioritize qto base psets over other qto_ qsets after 70a4af2 #4740
1) e.g. in ifc4x3 previously for IfcWall it would prioritize Qto_BodyGeometryValidation over Qto_WallBaseQuantities

2) It would also prioritize general Qto_BodyGeometryValidation over Qto_BuildingElementProxyQuantities.

3) removed "Qto_" check as we do qto_only in get_applicable_names
2024-05-28 12:59:34 +05:00
Andrej730 8817a7e6d5 qtocalculator to support backported EQto_BodyGeometryValidation 2024-05-28 12:59:34 +05:00
Dion Moult 80c4c13998 Basic prototype of new Ifc5D QTO tool in Blender. 2024-05-28 17:33:58 +10:00
Dion Moult 5159e2daee Initial attempt at a qto module in Ifc5D
This is a more flexible, non-Blender approach to doing QTO which allows:

 - Doing QTO without Blender
 - Doing QTO using query filters
 - Using config files for QTOs
 - Choosing your calculation engine, either built-in or creating your own
2024-05-28 17:32:51 +10:00
Dion Moult 54951d2102 Add convenience max/min functions for xyz and side_area shape calculations blenderbim-240528 2024-05-28 17:30:01 +10:00