Commit Graph

63 Commits

Author SHA1 Message Date
Andrej730 333b6210a4 black . 2026-02-26 17:12:52 +05:00
Dion Moult dffa3515c0 Reimplement sort / reverse / join function to format language, simplify text annotation variables, add tests
Previously, sort, reverse list, and join functionality was implemented
as special cases in Bonsai itself. Given that it has usecases
(especially in material lists, but any sort of list applies) I've moved
this function into the IOS formatting language.

The IOS formatting language previously wasn't capable of this, but the
awesome addition by @falken10vdl made the formatting language accept
queries inline, so that means it can handle lists. I also added tests
for all the new functions and expression syntax (+-*/ operators).

I simplified the code that gets the evaluated text literal - previously
it seems to call format() multiple times.
2026-02-08 19:17:12 +11:00
Dion Moult 02fab6eee2 Fix #7634. Support formatting signed numbers. 2026-02-06 16:35:04 +11:00
Andrej730 dfc91e6639 ifcopenshell-python - clean up unused imports 2026-01-16 17:16:24 +05:00
Andrej730 13be6ccd45 Sort imports 2025-12-19 18:53:14 +05:00
Ryan Schultz abef655482 Fix #6938 - Have parent facet select the parent aggregate as well. 2025-11-11 20:19:38 -06:00
Esteban Dugueperoux b8adddc648 fix test_number_formatting tests and add cases (#7332) 2025-11-11 11:25:00 -06:00
Dion Moult 0d3be9d101 Fix #5108. Selector now supports both GlobalId and Name as filter values. 2025-10-26 22:52:31 +11:00
Andrej730 ff147a4c24 Fallback for queries if no elements filter is provided #5901 2024-12-25 17:40:51 +05:00
Andrej730 c7af55183b set_element_value for enums - add a test 2024-12-06 18:57:54 +05:00
Andrej730 13106d255c int formatting function #5039
Example - https://i.imgur.com/wDGFNci.png
2024-12-05 15:52:27 +05:00
Andrej730 871cd45f53 selector.set_element_value to support 'predefined_type' keyword
See more details in https://community.osarch.org/discussion/comment/22134/#Comment_22134
2024-09-06 18:11:24 +05:00
Dion Moult a6286293d8 Run black on IOS-Python 2024-07-26 12:00:57 +10:00
Dion Moult 07060fc769 Replace all ifcopenshell.api.run with ifcopenshell.api static functions. 2024-06-28 12:36:31 +10:00
Dion Moult f0a19cb054 Fix #4815. Purge deprecated old selector syntax. 2024-06-07 20:08:11 +10:00
Dion Moult 6e30cd2ba7 Fix #4638. You can now filter by parent (in the spatial hierarchy) 2024-06-01 15:10:45 +10:00
Dion Moult 128ffc8fd7 Fix bug where selector didn't handle "not equals" correctly for locations or groups 2024-06-01 14:53:55 +10:00
Dion Moult 8403c32e76 Adjust selector's behaviour to use the elements argument as a filtering subset
This was always the original intention, but never worked as designed. This is so that you don't need to filter the entire file (which can be huge).
2024-05-28 17:30:01 +10:00
Andrej730 25c1a14e64 set_element_value - pass attr value to the next part of the query #4495
E.g. previously set_element_value with query "material.item.Material.Name" would fail with error "Material property is expecting an IFC entity and not a string".

But now it will detect that "Material" property is not a last key in the query and will pass `.Material` value forward and try to set it's `.Name` attribute with value.

The main goal is to make sure get_element_value and set_element_value would have a same result for same queries.
2024-05-17 17:31:01 +05:00
Andrej730 9da4215bac ifcopenshell.util.selector.filter_elements - inherited predefined types
mentioned by @theoryshaw on osarch - https://community.osarch.org/discussion/comment/20126/#Comment_20126
2024-04-19 16:05:33 +05:00
Andrej730 d6e69bd6e9 classification.add_reference - support batching #4474 2024-04-15 17:23:14 +05:00
Andrej730 59cc9c0a16 material.assign_material - support batching #4474 2024-04-12 17:41:37 +05:00
Andrej730 df4943205a type.assign_type - support batching #4474 2024-04-10 18:58:44 +05: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
Andrej730 cd11d2de27 aggregate.assign_object - support batching #4474 2024-04-08 17:49:48 +05:00
Andrej730 109787d869 spatial.assign_container - support batching #4474 2024-04-05 17:28:30 +05:00
Dion Moult 8d7b293381 Fix #4305. Bug where importing spreadsheets into IFC didn't intelligently cast attribute data types 2024-03-29 20:37:34 +11:00
Andrej730 6d6010be3b typing 2024-03-21 11:32:53 +05:00
Andrej730 c35cdcfcad util.selector.set_element_value to work w/o preassigned placement #4439 2024-03-19 17:45:21 +05:00
Andrej730 a755ec99f9 small fix 2024-03-18 17:08:39 +05:00
Andrej730 812389bce2 ifccsv - support for assigning x/y/z coordinates from csv 2024-03-18 17:06:00 +05:00
Andrej730 6881e7d220 utils.filter_elements docs and tests 2024-03-13 15:32:42 +05:00
Dion Moult ca8e014647 Fix #4195. Fix regressions from f840da3 and add support for "contains string" comparisons. 2024-01-13 15:58:57 +11:00
Dion Moult 05f6f4efab Manual booleans are now tracked via a Pset instead of arbitrary class conventions which should fix a bunch of issues. 2023-10-10 17:33:00 +11:00
Dion Moult 62bf8c2287 Fix crash where IFCTester read directly from IFC in the UI 2023-09-19 18:17:24 +10:00
Dion Moult de27554043 New substr formatting function. 2023-09-07 13:02:45 +10:00
Dion Moult 306ee3dfa4 You can now choose both input and output units for imperial formatting 2023-09-07 12:18:43 +10:00
Dion Moult ba4610155f Fix #3705. Fix ambiguity in using commas in unquoted strings in facet selector. 2023-09-06 16:34:39 +10:00
Dion Moult 7baed872c6 Minor fixes, and IfcCSV now uses pandas to import ODS/XLSX for more robust importing. 2023-08-26 18:24:48 +10:00
Dion Moult e9c24a2656 Fix #3587. IfcCSV now supports custom formatting functions. 2023-08-26 15:15:34 +10:00
Dion Moult f523870b57 Fix #3584. Support matching enumerated properties in new facet selector. 2023-08-15 09:59:50 +10:00
Dion Moult 1b71f4f569 Implement guid facet in facet selector 2023-07-20 19:42:34 +10:00
Dion Moult 452089596e New facet based selector syntax. Proposed to supersede existing selector syntax. 2023-07-20 19:22:15 +10:00
Dion Moult f2c757b1bb Fix #3113. Support regex in selector filter values. 2023-05-31 13:23:51 +10:00
Dion Moult 3d441b4ad3 Fix #3038. Fix #3039. Selector should default to none instead for throwing errors if the query doesn't have a result. 2023-04-20 17:41:52 +10:00
Dion Moult 6c5acfc8bb Fix #2945. Selector should expand enumerated list properties so that you can match any of them. 2023-04-06 19:21:22 +10:00
Dion Moult a1acdc0977 See #2881. Allow indices in the selector instead of relying on external evaluations. 2023-04-04 09:58:23 +10:00
Dion Moult c87911f00e IFC selector now uses "class" as a keyword to get the IFC class to disambiguate between "type" and "class". 2023-03-27 21:47:11 +11:00
Dion Moult b9c99b35a5 Fix #2881. Support added for referencing nested relationships and material set items. 2023-03-25 22:07:18 +11:00
Dion Moult 1250a20e35 Fix #2858. Fix #2856. BlenderBIM Add-on drawings and IfcCSV now support the new quoted and escaped selector capabilities. 2023-03-13 11:09:56 +11:00