Andrej730
6d8e513f97
Temporary hack for path tags without 'd' attr #6871 #6876
2025-07-11 18:24:00 +05:00
Andrej730
baeaa073df
dimensionality - add description
2025-07-11 18:24:00 +05:00
Andrej730
f07391181d
context-ids, context-types, context-identifiers - add descriptions
...
Hope I don't miss anything, but couldn't find any references to ContextTypes, ContextIdentifiers and they seem to have no effect.
2025-07-11 18:23:59 +05:00
Andrej730
722f71b3b3
ifcgeom/ConversionSettings.h - fix duplicated ContextIds derived type
...
I guess it only affected how `defineOption` worked. Noticed the issue when was looking through `ifcconvert --help` and `context-ids` were duplicated 3 times.
2025-07-11 18:23:59 +05:00
Andrej730
76e4ec0069
bim.select_uri_attribute - simplify data_path eval
2025-07-11 18:23:59 +05:00
Andrej730
df18124bec
vs-cfg.cmd - update error message
...
To make it a bit more easier to understand what to do in cases like below (the solution is to provide generator explicitly: `run-cmake.bat vs2022-x64 -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON`).
```
run-cmake.bat -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON
vs-cfg.cmd: The used CMake version does not support generator `-DADD_COMMIT_SHA` - cannot proceed.
```
2025-07-11 18:23:59 +05:00
Andrej730
370488cd27
docs conf.py - update year
2025-07-11 18:23:59 +05:00
Andrej730
4bbc463c8f
ifcopenshell-python\docs\requirements.txt
2025-07-11 18:23:59 +05:00
Andrej730
4a11a117ad
Fix bim.activate_model hiding all elements #6893
...
It was an overlook with using by accident bim.disable_status_filters instead of bim.enable_status_filters in bim.activate_status_filters, but it was also kind of unexpectedly introduced in 7858cb1 .
But thinking about it, bim.activate_model shouldn't activate Statuses UI either way, since it might bring their filters they had before but explicitly disabled.
2025-07-11 18:23:58 +05:00
Andrej730
19be8107b3
Fix Ruff UP037 (quoted-annotation)
2025-07-11 18:23:58 +05:00
Andrej730
e1976d5bfd
Fix Ruff UP013 (convert-typed-dict-functional-to-class)
...
Apparently `type` is okay and doesn't break things in even in Python 3.12
2025-07-11 18:23:58 +05:00
Andrej730
0fcc47508a
Structural UI - refactor common code to tool, fix bugs
...
Also revert previous change in UI - `draw_attributes` doesn't cover it and there indeed should be special handling.
2025-07-10 19:42:31 +05:00
Andrej730
76f0b57ff1
Migrate to import_attributes2
2025-07-10 19:42:30 +05:00
Andrej730
1d8ee406af
Fix alignment.__all__ missing create_segment_representations
2025-07-10 19:42:30 +05:00
Andrej730
05cb06a28e
typing
2025-07-10 19:42:30 +05:00
Andrej730
8a6eb1b60f
Update IfcApplication attributes export after 5866994
2025-07-10 19:42:30 +05:00
Andrej730
37d4ee97e7
alignment - fix missing imports
2025-07-10 19:42:29 +05:00
Andrej730
ef5d1448da
Fix is_null not updating when adding new attribute subitems #6869
2025-07-10 19:42:29 +05:00
Massimo Fabbro
eed42b8fac
Fix #6711 . Forgot to change the space elevation
2025-07-09 22:27:31 +02:00
Thomas Krijnen
1f0ac8fdb9
submodule
2025-07-09 20:45:39 +02:00
Andrej730
1b1a1f143a
bim.attribute_search_values - enable it in more places
...
Since this feature can be generally useful, let's try it out to see the cases when it should be disabled.
Additionally to Materials UI, it's now enabled in object attributes, materials, profiles, styles and explorer ui.
2025-07-09 19:02:27 +05:00
Andrej730
9649c23a3b
bim.attribute_search_values - more clear description
2025-07-09 19:02:27 +05:00
Andrej730
0ad5ace35f
bim.attribute_search_values - support not just scene props
2025-07-09 19:02:27 +05:00
Andrej730
f7fdb8cc81
bim.attribute_search_values - rearrange props for readability
2025-07-09 19:02:27 +05:00
Andrej730
41e64781d8
Skip pyradiance import if it fails #6633
2025-07-09 19:02:27 +05:00
Andrej730
6ea7ee84a6
Remove prop.GlobalId
...
It seems it was unused since 6f55cd5
2025-07-09 19:02:27 +05:00
Andrej730
e7b86ae5b0
bim.add_group - use dynamic description to clarify when it's adding subgroups
...
It was kind of confusing since the icon and everything else was the same.
2025-07-09 19:02:27 +05:00
Andrej730
f6035609c9
Groups UI - use natsort
2025-07-09 19:02:27 +05:00
Andrej730
76feeaccc9
typing
2025-07-09 19:02:26 +05:00
Andrej730
af02a6b3a6
Fix UP037 (quoted-annotation)
2025-07-09 19:02:26 +05:00
Andrej730
832e68cb6f
Fix Ruff UP034 (extraneous-parentheses)
2025-07-09 19:02:26 +05:00
Andrej730
a8268e8323
Replace deprecated typing.Sequence ( 40f92d15c)
2025-07-09 19:02:26 +05:00
Andrej730
5a4ad69bf7
black .
2025-07-09 19:02:26 +05:00
Richard Brice
40f92d15c3
Alignment api update ( #6817 )
...
* Some basic COGO survey points functions
* Update alignment api
Includes defining alignment segment by segment, automatic geometry definitions, and automatric stationing and referents
* Fixes bonsai import alignment from csv
* Adds DMS angle conversion functions to COGO api
* Updated per @civilx64 review comments
* Fixes problem with segment representations
* Fixes problem with segment transition codes
* Allows for compound vertical and horizontal curves
* Implements callbacks for referent naming
* Renames angle_from_bearing to bearing2dd for consistency with ifcopenshell.util.geolocation.dms2dd. Removes angle_from_dms because it duplicates dms2dd
* Documents register_referent_name_callback
* Fixes all sorts of problems with Cant/SegRefCurve implementation
* refactor referent unit tests to use a fixture for test setup
* lint with black
---------
Co-authored-by: Scott Lecher <civilx64@gmail.com >
2025-07-08 10:09:14 -07:00
Andrej730
ad8d02bfed
Groups UI - support renaming groups directly from UI
...
Example - https://files.catbox.moe/u4b918.mp4
2025-07-08 21:20:59 +05:00
Andrej730
5866994b84
Intergrate explorer UI to support editing some props like #6869
...
Example - https://files.catbox.moe/ujhlwv.mp4
2025-07-08 21:20:59 +05:00
Andrej730
2ec2ac0e5c
Attributes UI to support attributes with string subitems
...
Example - https://files.catbox.moe/oew1ue.mp4
2025-07-08 21:20:58 +05:00
Andrej730
c7555652d7
Bulk Rename Pset Props - show how many props were affected
2025-07-08 21:20:58 +05:00
Andrej730
5a7ce6d68b
bim.bulk_remove_psets - show how many psets were removed
...
Also removed exception handling to catch that bug sneaking in, if it ever returns.
2025-07-08 21:20:58 +05:00
Andrej730
ad8913a979
Move bulk properties to GlobalPsetProperties
2025-07-08 21:20:58 +05:00
Andrej730
188b6a03a8
Attribute.is_uri - move to Attribute.special_type
2025-07-08 21:20:57 +05:00
Andrej730
7f3860b025
util.attribute - add tests
2025-07-08 21:20:57 +05:00
Andrej730
d08756d1b4
typing
2025-07-08 21:20:57 +05:00
Andrej730
525ef2b77b
Explorer UI - add is_loaded toggle
2025-07-07 19:11:39 +05:00
Andrej730
fca2bf7aa8
Search filters - add example to criteria descriptions
...
To give users some default value to get familiar with the tool.
Example - https://files.catbox.moe/d1zh5n.png
2025-07-07 19:11:39 +05:00
Andrej730
ff82262490
Reuse get_active_sheet_item
2025-07-07 19:11:38 +05:00
Andrej730
c82351476a
SheetBuilder - move references to local scope
...
Previously it was set as sheet builder attribute, but was never used as such.
2025-07-07 19:11:38 +05:00
Andrej730
d4f32802aa
Show warnings if some sheets related files are missing
...
Previously when you would load/open/create sheets and some files were missing you would get traceback errors.
Also removed warnings for missing sheets svgs since they can go missing if someone is opening ifc project and want to regenerate sheets. We'll be able to return them in the future, if needed, but they will need some refinement.
2025-07-07 19:11:38 +05:00
Andrej730
d7668c3e3f
drawing.get_sheet_identification
2025-07-07 19:11:38 +05:00
Andrej730
1445f91289
Fix very old bug with IfcPersonAndOrganization enum not loading ( 6ce8a36)
2025-07-07 19:11:37 +05:00
Andrej730
44e27f706a
Owner UI - further decouple data.py from Blender entities
2025-07-07 19:11:37 +05:00
Andrej730
416ebde333
Fix names lists are not updated immediately
...
Similar to addresses problem in #6869
2025-07-07 19:11:37 +05:00
Andrej730
40dcd393c6
Fix addresses not updating immediately in IfcPerson UI
...
Found by @sboddy in #6869
Caused by trying to remove Blender entities from owner/data.py
2025-07-07 19:11:37 +05:00
Andrej730
4fda916c2f
Fix duplicated assignments
2025-07-07 19:11:37 +05:00
Andrej730
acb9953ce3
dev_environment.py - add comments and small changes
2025-07-07 19:11:36 +05:00
Andrej730
4154356288
bim.operator - document resetting screen behaviour
2025-07-07 19:11:36 +05:00
Andrej730
54488bddbb
bim.attribute_search_values - use enumproperty for data_type
2025-07-07 19:11:36 +05:00
Andrej730
8f21866248
typing
2025-07-07 19:11:36 +05:00
Thomas Krijnen
f3b63aae76
Use should_use_presentation_style_assignment
2025-07-06 18:39:21 +02:00
Thomas Krijnen
3f05bab4e5
Shape builder: allow translate() on tesselated face sets
2025-07-06 18:35:19 +02:00
Thomas Krijnen
8534333092
Update doc comment
2025-07-06 18:34:50 +02:00
Ryan Schultz
5f2b4c96a6
fixes #6874
2025-07-06 10:26:12 -05:00
Massimo Fabbro
00836ec983
Fix #6736 . Better use of non-SI units in creating spaces and coverings
2025-07-05 13:59:04 +02:00
Andrej730
fb78f75541
Basic IFC Entities explorer UI
...
A generic UI to allow editing simple entities like #6869 without creating an entire edit attributes UI inside edit attributes UI.
Still work in progress and should be connected to attributes UI.
Example - https://www.imgchest.com/p/agyv9lpq978
2025-07-04 19:48:12 +05:00
Andrej730
5948282ed0
bim.add_address - display it in more readable way
...
Before - https://cdn.imgchest.com/files/4gdcxp5j9l4.png
After - https://cdn.imgchest.com/files/yrgcnzgj5n4.png
2025-07-04 19:34:12 +05:00
Andrej730
47b81a6f89
bim.save_search - prefer only SEARCH IfcGroups by default #6857
...
Previously it was asking for a name to use to save search and users might type anything they find convenient at the moment, but it was possible that this name was used already by something important (for example drawing's IfcGroup) and would change it's description and assign objects there unexpectedly.
Now it will target IfcGroups with SEARCH ObjectType by default and only if user confirms, it will target all IfcGroups available (to keep the search a powerful tool for advanced users that allows them to populate any IfcGroup they want with items).
There's also a temporary patch in place - when you load/save search Bonsai will try to find old search IfcGroups with ObjectType = None and update their ObjectType, this needed to make sure transition works seamlessly for the simple cases.
2025-07-04 19:34:12 +05:00
Andrej730
8ae08cb90e
bim.save_search - not to fail silently
2025-07-04 19:34:11 +05:00
Andrej730
7796856119
typing
2025-07-04 19:34:11 +05:00
falken10vdl
f75045f0c5
See #6570 . Now it is possible to remove the csv cost file link.
...
This is a followup to that issue. In this particular case, a remove csv link button is added next to the refresh csv link button.
2025-07-04 12:35:17 +02:00
Andrej730
e52af2baad
Iterator.validate_iterator_state to avoid crashes using next() and get()
...
Just to avoid accidental crashes using .get() / .next() when using them from Python - in cases when iterator was initialized but there were no elements or if iterator got exhausted.
2025-07-03 18:49:41 +05:00
Andrej730
da4ae4c2f2
Fix typo in 2a199cf
2025-07-03 18:48:30 +05:00
Andrej730
28043a8e5d
ifc2sql - skip creating geometry if iterator failed to initialize
2025-07-03 18:48:30 +05:00
Andrej730
0e8fb44301
Remove unused Iterator.task_result_index_ ( c78b289)
2025-07-03 18:48:08 +05:00
Andrej730
b97dca5d47
typing
2025-07-03 18:48:08 +05:00
Andrej730
207db459a7
Iterator.h - remove redundant typename ( eeaf04c)
2025-07-03 18:48:07 +05:00
Andrej730
026eebf39b
pyproject.toml - remove enableTypeIgnoreComments
...
As Pylance now allows inserting pyright ignore comments without it 🎉
https://github.com/microsoft/pylance-release/issues/7220
2025-07-03 18:48:07 +05:00
carlopav
5f5c0b41d5
Basic infrastructure for IfcCostSchedule PDF export with typst ( #6860 )
2025-07-03 13:18:03 +00:00
falken10
3055dfa1a6
clean up from developer's feedback + black formatting
2025-07-03 05:51:59 +02:00
falken10
b59bdb585b
Refactor cost documents following developrs advice
2025-07-03 05:51:59 +02:00
falken10
ccd97c66ae
refactor and black formatting
2025-07-03 05:51:59 +02:00
falken10
e6747b258c
Remove CostSchedulesMapping and added csv_filepaths to data.py
2025-07-03 05:51:59 +02:00
falken10
6aa6803490
Added relative CSV file paths
2025-07-03 05:51:59 +02:00
falken10
72fbe3a6d9
Refactor cost schedule CSV filepath to use document references
2025-07-03 05:51:59 +02:00
Andrej730
68a602573b
ifcopenshell.geom.iterator - more descriptive error in __init__ #6865
2025-07-02 18:14:34 +05:00
Andrej730
1e06dfcb76
Fix console errors when project is not loaded
2025-07-02 18:14:34 +05:00
Andrej730
3a0a912022
Use property_unset instead of in and del
2025-07-02 18:14:34 +05:00
Andrej730
b16fb7d917
bim.pip_install - add dynamic description
2025-07-02 18:14:34 +05:00
Andrej730
94d2d32d18
typing
2025-07-02 18:14:34 +05:00
falken10vdl
e743db27f4
Draw attributes with search ( #6849 )
...
See example in #4325
2025-07-02 11:11:29 +05:00
Thomas Krijnen
bb329affb8
settings: DeferProcessingFirstElement, MaxOffset, MaxOffsetDeviation, ApplyOffset; taxonomy: centroid funcs; iterator get_tasks + items() funcs; geom.map_shape()
2025-07-01 21:10:24 +02:00
Bruno Perdigão
6c4e4e5f91
Partial solution for #6775 .
...
The issue happens when a wall has a "ATPATH" connection and has a
negative direction sense. It mixes the profile points in an incorrect
order. This commit seems to fix it, but maybe there is a better solution.
2025-06-30 19:50:41 -03:00
falken10
a31aa6053e
black formatting
2025-06-30 18:25:41 -03:00
falken10
b90f146a68
update gizmo based on selected items
2025-06-30 18:25:41 -03:00
falken10
f67dca8de0
Enhance label rendering in BoundingBoxDecorator to prevent text overlaps
2025-06-30 18:25:41 -03:00
falken10
a686d70908
Updated based on feedback from @brunoperdigao
2025-06-30 18:25:41 -03:00
falken10vdl
38fe7fea65
Update workspace.py cosmetic remove nl from previous edits
2025-06-30 18:25:41 -03:00
falken10
b26890f74b
black formating
2025-06-30 18:25:41 -03:00
falken10
2c16247943
moved to viewport overlays
2025-06-30 18:25:41 -03:00
falken10
53fc7bce0c
clenaup
2025-06-30 18:25:41 -03:00
falken10
f5db905223
Separate decorator from operator to follow other modules in model / project
2025-06-30 18:25:41 -03:00
falken10
3557b11e64
same style as polyline texts
2025-06-30 18:25:41 -03:00
falken10
c420402334
black . formating
2025-06-30 18:25:41 -03:00
falken10
589c562cba
refactor everyting within the class MeasureXYZDimensionsTool
2025-06-30 18:25:41 -03:00
falken10
d3f2711fe4
Moved everything to explore tool
2025-06-30 18:25:41 -03:00
falken10
8b4305360e
updated to cope for multiple selection and better looking using trihedrons
2025-06-30 18:25:41 -03:00
falken10
1213bbdd73
set exact same color for bounding box edges as gizom axis
2025-06-30 18:25:41 -03:00
falken10
c3380daa19
better layout with colored bounding box
2025-06-30 18:25:41 -03:00
falken10
7aa87907d7
Add local orientation operator and UI toggle for colored dimensions
2025-06-30 18:25:41 -03:00
Andrej730
8cfd6b1754
Unify doc-strings (remove type/rtype)
...
As this information is already provided in type hints and we don't need to maintain it in two places.
2025-06-30 18:55:14 +05:00
Andrej730
fc10915d2b
ifcopenshell.validate - remove simple_spf dependency ( 689289b)
...
Moved it to `TYPE_CHECKING` since it's currently used just for typing.
Was breaking validation in Bonsai since it doesn't provide all submodules with IfcOpenShell https://github.com/IfcOpenShell/IfcOpenShell/issues/6723#issuecomment-3016223786
Also added a simple test so github workflow would catch a simple error like this.
2025-06-30 18:08:34 +05:00
Andrej730
c23c21cb88
black .
2025-06-30 18:08:29 +05:00
Geert Hesselink
260bc80a4b
update simple_spf submodule
2025-06-30 10:11:40 +02:00
Thomas Krijnen
d7cf803fdf
Don't use anonymous namespace for geometry_conversion_result
2025-06-29 20:04:44 +02:00
Thomas Krijnen
4488044a68
yum install xz
2025-06-29 19:58:37 +02:00
skemaikin
21a4db7823
serialize roughnessFactor
...
add roughnessFactor for gltf serialization
2025-06-29 14:24:52 +02:00
Ryan Schultz
d300454118
Option to select only immediate children in Spatial Decomposition panel
2025-06-28 15:00:23 -05:00
Ryan Schultz
553003e664
Closes #6748 : An option, when running bim.select_similar_container() to only select those objects in the immediate container
2025-06-28 13:16:51 -05:00
Ryan Schultz
524561a398
similar to #6748 : option to select only immediate children, not recursively
2025-06-28 12:07:22 -05:00
Ryan Schultz
16f82683c8
closes #6843 - made merge by distance a little more tolerable
2025-06-28 10:07:54 -05:00
Ryan Schultz
4dbec59b9c
Fix #6840 : Add search to profile selection, when creating a new extrusion type
2025-06-28 09:17:40 -05:00
falken10vdl
dcf69c46e5
Update PLAN_LEVEL annotation ( #6844 )
...
* Update PLAN_LEVEL annotation
* Length of line segment based on scale
---------
Co-authored-by: Ryan Schultz <ryan@openingdesign.com >
2025-06-27 09:48:12 -05:00
Andrej730
611e83ff1e
Remove unused code for additional ifc files in the drawings
...
Code isn't used for over 3 years now and it's quite simple, so it's easy to restore if we'll need it again.
Noticed when started to investigate what was the use for `include_query` and `exclude_query` and turned out they basically had no effect for all this time.
2025-06-27 18:51:15 +05:00
Andrej730
bdcebd0f98
document.add_information - error handling in case project is not found
2025-06-27 18:51:15 +05:00
Andrej730
9278974d98
Reuse get_linked_models_document
2025-06-27 18:51:15 +05:00
Andrej730
b3a708c06c
typing
2025-06-27 18:51:15 +05:00
falken10vdl
0b05c3bcfc
Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise ( #6845 )
...
* Z-coordinate in PlanLevelDecorator relative to spatial container if exists. Absolute otherwise
2025-06-27 08:20:50 -05:00
Piotr Smolira
fef6ef76ed
Update code_examples.rst
...
Added example to iterate through entire project.
2025-06-27 11:37:47 +02:00
Piotr Smolira
e39d62b35a
Update code_examples.rst
...
Added example about iterating entire model.
2025-06-27 11:37:47 +02:00
Thomas Krijnen
f1827d02ca
Retain non-uniform scaling by assigning to gtrsf mat directly #6841
2025-06-27 09:54:13 +02:00
Andrej730
65ccc635d4
Fix sheeter issue after 7440c321b
2025-06-27 10:58:28 +05:00
falken10vdl
2698ba69d5
Display TargetScale in Contexts UI / edit target scale denominator ( #6816 )
2025-06-27 05:48:14 +00:00
Andrej730
efb3b9d255
Add eevee shadows props to shading_styles.json #6847
2025-06-26 20:19:41 +05:00
Andrej730
b0ec185c34
Fix removing occurrences when removing type object #3931
2025-06-26 19:57:10 +05:00
Andrej730
0ca92f6a1d
Bonsai preferences - add 'bsdd' label to make bsdd props more recognizable
2025-06-26 19:57:09 +05:00
Andrej730
6e4b784652
bsdd props ui - small tweaks
2025-06-26 19:57:09 +05:00
Andrej730
c764da3511
Status Filter - add missing row alignment in UI
2025-06-26 19:57:09 +05:00
Andrej730
c0d97051fd
Status Filters operators - add undo step to prevent Blender crashes
...
In Blender if operator is editing any Blender data it must have `UNDO` option, otherwise undo might lead to a crash.
2025-06-26 19:57:09 +05:00
Andrej730
2a199cf8a7
Status Filters - add explicit button to refresh status filter
...
Button location - https://files.catbox.moe/yuk2e6.png
See the reasoning in https://github.com/IfcOpenShell/IfcOpenShell/pull/6826#issuecomment-3004090797
2025-06-26 19:57:08 +05:00
Andrej730
b5dacfd621
Fix console errors toggling ifc status (same as e92520b77)
2025-06-26 19:57:08 +05:00
Andrej730
1a67ce87a1
light.feature - more test fixes
2025-06-26 19:57:08 +05:00
Andrej730
b7db741474
typing
2025-06-26 19:57:08 +05:00
Andrej730
7b1aa207d8
Add a warning in case user set a large drawing resolution #6686
...
Example - https://files.catbox.moe/0ygukk.png
2025-06-26 16:28:52 +05:00
Stephen Boddy
9b58d4aa47
Minor refinements for 931d8e6
2025-06-26 10:12:55 +05:00
Stephen Boddy
bc2d67220e
Improve fix for #5563 based on feedback:
...
- Remove INFO - No statuses selected,
- Remember and set last status on disable-reenable
- Moved duplicated code into shared tool.Sequence class method
2025-06-26 10:12:55 +05:00
Stephen Boddy
7858cb128e
Fix #5563 inconsistent behaviour of Status filter
2025-06-26 10:12:55 +05:00
Bruno Perdigão
0d859bd4ee
See #6837 . Fix handling of connections when splitting walls.
2025-06-25 19:00:25 -03:00
Andrej730
360afe68aa
sheeter - replace by_id with by_guid
...
No functional changes, just to make it more idiomatic (both `by_id` and `by_guid` end up doing `ifc_file[xxx]` under the hood).
2025-06-25 19:01:41 +05:00
Andrej730
b6af68bfe6
data/templates/titleblocks/README.md
...
Basic readme about folder contents. Will need to move it more general documentation later.
2025-06-25 19:01:41 +05:00
Andrej730
7440c321b6
sheeter - use more strict data access where it's implied
2025-06-25 19:01:41 +05:00
Andrej730
73b5c2f1ae
sheeter - simplify namespace access using constants
2025-06-25 19:01:41 +05:00
Andrej730
485ce22ca7
bim.select_all_sheets - fix a typo
2025-06-25 19:01:41 +05:00
Andrej730
e92520b777
Fix value errors in update callback
...
Blender is requiring update callback to return `None`, otherwise it prints `ValueError: the return value must be None`.
2025-06-25 19:01:40 +05:00
Andrej730
00414a1590
bim.assign_scene_units - expose operator to ui
2025-06-25 19:01:40 +05:00
Andrej730
6b6bf248ff
typing
2025-06-25 19:01:40 +05:00
Andrej730
03fcd59c5a
black .
2025-06-25 19:01:40 +05:00
Andrej730
5e89748ba6
unit - remove unnecessary ifc operators
2025-06-25 19:01:39 +05:00
Stephen Boddy
c5987bca3d
Fix #4588 fix broken rev cloud styles in sheets.
2025-06-25 18:59:42 +05:00
Bruno Perdigão
94f98b1e0e
Fix issue where edge intersection snap were not being calculated.
2025-06-24 18:17:24 -03:00
Thomas Krijnen
38dcdde7ae
submodule
2025-06-24 22:12:38 +02:00
Thomas Krijnen
95f8af01f0
submodule
2025-06-24 22:03:13 +02:00
Thomas Krijnen
8f0d053049
Factor out code into Iterator.cpp
2025-06-24 22:03:13 +02:00
Andrej730
caccfd2516
unit operators - add some descriptions
2025-06-24 19:08:43 +05:00
Andrej730
b4c4efcf5b
unit.unassign_unit - smal doc-string fix
2025-06-24 19:08:43 +05:00
Andrej730
fe81dc7f21
Units UI - match icons in enum with icons in ui list
...
To build a visual association
Example (previously enum had no icons)
https://files.catbox.moe/0ks3jj.png
https://files.catbox.moe/y1yrv5.png
2025-06-24 19:08:42 +05:00
Andrej730
4f77c41bd5
calculate_unit_scale - small optimization
2025-06-24 19:08:42 +05:00
Andrej730
47b077b555
Fix sheets related tests
2025-06-24 19:08:42 +05:00
Andrej730
845e034614
test_feature - fix non-unique function name
2025-06-24 19:08:42 +05:00
Andrej730
82d020b20d
bim light tests - fix after f684a6058
...
Since defaults were updated
2025-06-24 19:08:42 +05:00
Andrej730
cd73f80894
Fix tool test_drawing after 992ad8e
2025-06-24 19:08:41 +05:00
Andrej730
705a924f41
Fix context's TestImportAttributes after e4a50b3
2025-06-24 19:08:41 +05:00
Andrej730
097e03d6f5
Fix TestGenerateSheetIdentification ( b20997d)
2025-06-24 19:08:41 +05:00
Andrej730
4a69df1f6b
Classification source - automatically update on changes in bsdd ui
2025-06-24 19:08:41 +05:00
Andrej730
df69ca27da
Remove duplicated active_dictionary prop ( 22f10e5)
2025-06-24 19:08:41 +05:00
Andrej730
b3778facda
Fix core drawing tests after be65774
2025-06-24 19:08:41 +05:00
Andrej730
c333535ae5
Blender 4.5 - prevent infinite loading of previews
...
Related - https://projects.blender.org/blender/blender/issues/140903
2025-06-24 19:08:40 +05:00
Andrej730
fcaeb920ec
typing
2025-06-24 19:08:40 +05:00
Andrej730
50d3cab1ec
Fix regression with thumbnails update #6839 ( be1836f)
2025-06-24 19:08:40 +05:00
Andrej730
4574351817
Light UI - detect Sun Position addon activation/deactivation more reliably
2025-06-23 19:06:16 +05:00
Andrej730
623997b40d
Revert unintended prop_with_search change ( 98c479f1b)
2025-06-23 19:06:16 +05:00
Andrej730
8f7b965a58
Light UI - add our own 'coordinates' property
...
To ensure when it's changed - latitude and longitude update will follow. Previously we were just displaying sun position addon's `coordinates' prop.
2025-06-23 19:06:16 +05:00
Andrej730
c1e6e7d736
light module true_north prop - use Blender angle subtype
2025-06-23 19:06:16 +05:00
Andrej730
f684a6058c
Light UI - quickly select current time/pick location from Google Maps
...
Location - https://files.catbox.moe/ew9tgd.png ("Now" and "Pick" buttons)
2025-06-23 19:06:15 +05:00
Andrej730
1a80e3f1a1
bim.enum_property_search - note on activate_init
2025-06-23 19:06:15 +05:00
Andrej730
a76af3c2ba
validate IfcApplication.UR2 - check that both version and app name are not None ( 263d238f9)
...
Otherwise it will be caught by regular validation checks
2025-06-23 19:06:15 +05:00
Andrej730
28bee52dff
Blender 4.5 - deprecate GPUShader constructor
...
Now it should be replaced with `gpu.shader.create_from_info`
2025-06-23 19:06:15 +05:00
Andrej730
58449368fb
radiance_exporter_properties -> BIMRadianceExporeterProperies
...
For consistency with other props
2025-06-23 19:06:15 +05:00
Andrej730
30c33518f0
typing
2025-06-23 19:06:14 +05:00
Andrej730
3a06afae25
black .
2025-06-23 19:06:14 +05:00
falken10vdl
98c479f1bd
Create instance context menu ( #6830 )
2025-06-22 07:09:57 -05:00
Ryan Schultz
d875baefde
#5709 - Partly addresses RCP camera flipping around. (still hacky though)
2025-06-21 10:14:09 -05:00
Ryan Schultz
9149bb0fdc
whoops, accidently pushed.
2025-06-21 08:11:01 -05:00
Ryan Schultz
f3c86d7fcc
added a few to ifc_classes_suggestions.json
2025-06-21 08:08:50 -05:00
Ryan Schultz
64aeef7103
Automatically detect bonsai_path
2025-06-21 07:59:51 -05:00
Andrej730
cd1bda5311
regenerate_wall_representation - remove debug prints
2025-06-20 18:48:38 +05:00
Andrej730
67ae9fced0
bim.extend_walls_to_polyline_point - fix poll errors selecting non-ifc objects
...
E.g.
```
File "\bonsai\bim\module\model\wall.py", line 142, in poll
if not tool.Ifc.get_entity(obj).is_a("IfcWall"):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'is_a'
```
2025-06-20 18:48:37 +05:00
Andrej730
22fdb324ac
Restore daily builds
2025-06-20 18:48:37 +05:00
Andrej730
263d238f9c
ifcopenshell.validate - fix IfcApplication.UR2 validation
...
Previously we were checking for just ApplicationFullName, without considering Version.
https://github.com/buildingSMART/IFC4.3.x-development/issues/966
2025-06-20 18:48:37 +05:00
Andrej730
c6fd02869b
ifcopenshell.validate - check json_logger more explicitly
2025-06-20 18:48:37 +05:00
Andrej730
b4d41790a5
ifcopenshell.validate - fix mixed up rule names (IfcApplication.UR)
2025-06-20 18:48:37 +05:00
Andrej730
e18346d4ea
bim.remove_application - remove unneccessery info from the tooltip
...
Since now user can edit applications and see that info there.
2025-06-20 18:48:36 +05:00
Andrej730
c724b2a888
Applications UI - also show app versions
...
So apps with different version would be identifiable by a glance.
2025-06-20 18:48:36 +05:00
Andrej730
d05f320665
Bonsai - prevent duplicating IfcOpenShell organization for new IfcApplications
2025-06-20 18:48:36 +05:00
Andrej730
6599f74d11
Make Bonsai IfcApplication identifier unique
...
To avoid validation errors.
2025-06-20 18:48:36 +05:00
Andrej730
4f03c7e03e
OwnerData.can_add_user - remove as unnecessary
2025-06-20 18:48:36 +05:00
Andrej730
946cae4065
ifcgit.git_diff - save diff to temp file on alt-click
2025-06-20 18:48:35 +05:00
Andrej730
98145fbbd9
Purge/merge IfcPersonAndOrganizations
2025-06-20 18:48:35 +05:00
Andrej730
74598b805b
Purge/merge IfcPerson entities
2025-06-20 18:48:35 +05:00
Andrej730
90ab846a18
typing
2025-06-20 18:48:34 +05:00
Andrej730
5ec77b1b1c
black .
2025-06-20 18:48:34 +05:00
Bruno Perdigão
8d079ce0cb
Remove unused code.
2025-06-19 16:38:22 -03:00
Bruno Perdigão
fb9edb733b
Refactor MeasureDecorator to use model PolylineDecorator code.
2025-06-19 16:33:51 -03:00
Andrej730
42b777b1f0
application ui - support changing organization
2025-06-19 19:28:34 +05:00
Andrej730
a968cad4cc
core/tool tests for application methods
2025-06-19 19:28:34 +05:00
Andrej730
7ab03109b9
typing
2025-06-19 19:28:33 +05:00
Andrej730
6782729ed8
black .
2025-06-19 19:28:33 +05:00
Ryan Schultz
9dc75ece44
Fix #6593 - preference to turn on/off cut decorator
2025-06-18 21:36:04 -05:00
Andrej730
cbd78506ce
Fix mistake in 96bdda305 - expose IfcApplication purge to UI
...
Noticed a mistake when merge was included twice for applications, instead of including purge+merge.
2025-06-18 19:13:59 +05:00
Andrej730
9af15aeb0b
Simple application UI for editing attributes
...
Example - https://files.catbox.moe/i0wgid.png
Previously before 71d469a27 we produced a lot of IfcApplications on live-builds because of the version differences, now it's possible to edit them from UI - fix the differences and merge them using 106323847
2025-06-18 19:12:12 +05:00
Andrej730
934c9e1485
test_edit_organisation - add ifc4x3 tests
2025-06-18 19:12:12 +05:00
Andrej730
bbebdd56ca
owner.edit_application
2025-06-18 19:12:12 +05:00
Andrej730
b1bfe5c3b3
tool.ifc.run - replace with direct api calls
2025-06-18 19:12:11 +05:00
Andrej730
a72e1231f2
test_ids - use more generic exception to fix tests on xmlschema>=4.0
...
In xmlschema 4.0 it started to throw a more generic XMLSchemaValidationError - I guess there are many things that can trigger validation check and in the new version some other issue gets there first.
2025-06-18 19:12:11 +05:00
Andrej730
47da4ef3ae
Fix overlook in 67b539aba
2025-06-18 19:12:11 +05:00
Andrej730
08a8afba5b
ifcopenshell-python - fix 3.9 support (replace match statements)
2025-06-18 19:12:10 +05:00
Andrej730
44e5f89119
ruff 0.12 - ignore UP045
...
Kind of acts the same as UP007 asking to convert all Optional[xxx] to X | None
2025-06-18 19:12:10 +05:00
Andrej730
c68b0c7280
typing
2025-06-18 19:12:10 +05:00
Andrej730
8c5affaae6
linter github workflow - use uv for acquiring black
2025-06-18 19:12:09 +05:00
Andrej730
bd4b80bdc2
linter github workflow - use correct minimum required versions
...
Previously it was using Python 3.12 for everything, therefore syntax errors from Python 3.9 (e.g. `match` statement in ifcopenshell-python) went under the radar.
2025-06-18 19:12:09 +05:00
Andrej730
21f5363c74
Bonsai - cache get_user and get_application for a speed-up
2025-06-17 18:44:32 +05:00
Andrej730
71d469a271
Bonsai - use main version part to avoid creating too many IfcApplications
2025-06-17 18:41:20 +05:00
Andrej730
96bdda305e
Bonsai - purge unused IfcApplications and IfcOrganizations
2025-06-17 18:41:20 +05:00
Andrej730
1063238479
Bonsai - merge identical IfcOrganizations, IfcApplications
...
Added an utility to merge organizations and application that have exactly the same data. Noticed working with different files that sometimes they have these data duplicated - I guess reasons vary (revit exporter, our bug - c58b84d ), but it's nice to be able to clean up redundant data.
Though still need to add some UI to change IfcApplications, so user could also get rid of them in case if they have small differences.
Feature location - https://files.catbox.moe/pwymx1.png
@theoryshaw in file from #6784 there were 2481 identical organizations and 1234 identical applications 😅
2025-06-17 18:41:20 +05:00
Andrej730
d1337cff02
Refresh applications UI on changes ( bd1871bd4)
2025-06-17 18:41:19 +05:00
Andrej730
f26f2780e9
owner.ui - check props explicitly instead of relying on ifc data update
2025-06-17 18:41:19 +05:00
Andrej730
2e3c733c0d
IfcParseWrapper - exclude instances_by_reference
...
As it does exactly the same as get_inverse()
2025-06-17 18:41:19 +05:00
Andrej730
ff09cd0a56
IfcParseWrapper - instance_by_guid -> by_guid
...
It seems they have exactly the same signatures and it makes sense to just rename instance_by_guid to by_guid, instead of implementing it separately.
2025-06-17 18:41:19 +05:00
Andrej730
df91f475c1
entity_instance constructor - skip setting None value
2025-06-17 18:41:19 +05:00
Andrej730
a733f36576
CMake - set C++17 as the minimum required version ( 34676a567)
...
Currently IfcOpenShell doesn't compile for C++14 (it stumbles upon `invoke_result_t` in XmlSerializer.cpp) and I'm not sure if it's needed.
2025-06-17 18:41:18 +05:00
Andrej730
9282ccabb3
typing
2025-06-17 18:41:18 +05:00
Thomas Krijnen
404c39873d
Update WASM example app
2025-06-17 11:50:02 +02:00
Thomas Krijnen
34a1bc6f04
WASM build changes #6794
2025-06-16 21:18:14 +02:00
Andrej730
15112211c1
add_application not to add deprecated IfcTelecomAddress in ifc4x3 #6806
2025-06-16 19:57:00 +05:00
Andrej730
e3bbec6394
entity_instance constructor and destructor micro optimizations
2025-06-16 19:55:25 +05:00
Andrej730
bd1871bd44
Basic IfcApplications UI
...
Just so you can view IfcApplications in the project from UI
Example - https://files.catbox.moe/15a72n.png
2025-06-16 19:55:25 +05:00
Andrej730
a75f6a5804
typing
2025-06-16 19:55:25 +05:00
Andrej730
a12bb343ca
Fix RUF015 (next() instead of list comprehensions[0])
...
https://docs.astral.sh/ruff/rules/-iterable-allocation-for-first-element/
2025-06-16 19:55:25 +05:00
Thomas Krijnen
b486b32c8d
WASM build changes
2025-06-14 18:05:29 +02:00
Thomas Krijnen
5e7893dbb3
Update build-all.py
2025-06-14 15:38:28 +02:00
Thomas Krijnen
c8d74a560c
Nix build retry downloads
2025-06-13 18:15:23 +02:00
Andrej730
9b8357c5ec
entity_instance.__hash__ - reuse id() value for optimization
2025-06-13 19:33:30 +05:00
Andrej730
67b539aba1
remove_representation - optimization
...
In some cases remove_representation got 2x times faster (when there were a lot representation items that are not IfcTessellatedFaceSets).
getattr with attribute that might not be present on the element could be much slower then checking it's class explicitly.
2025-06-13 19:33:29 +05:00
Andrej730
176c5cc0fb
typing
2025-06-13 19:33:29 +05:00
Thomas Krijnen
152c94a7d6
Update cgal for compilation on clang 19 https://github.com/CGAL/cgal/pull/8330
2025-06-13 16:06:08 +02:00
Thomas Krijnen
4b92d7d076
cgal: Dont proceed when not valid after triangulation #6735
2025-06-13 13:33:42 +02:00
Cristian Ritter
d10c176bb6
re-adding u32string if ASCII instead of use only Boost.Locale
2025-06-13 10:39:59 +02:00
Bruno Postle
3503d41b3f
Minor fix for the CMake package_source target
2025-06-13 09:11:09 +01:00
Esteban DUGUEPEROUX
34676a567e
#6803 : Update IfcOffsetCurveByDistance to be compitable on Windows with MSVC and C++20
...
In addition add option to be able to build IfcOpenShell against other C++ standard than C++17
2025-06-13 09:43:13 +02:00
Thomas Krijnen
f5a46ffb7c
pyodide: try 0.28.0a3
2025-06-12 20:48:52 +02:00
Cristian Ritter
94452b4a7a
change deprecated wstring_convert to Boost.Locale and fix #6779 issue
2025-06-12 08:52:38 +02:00
Thomas Krijnen
2c0b1691ae
-lexceptions.js #6794
2025-06-11 16:45:06 +02:00
Andrej
60c71c145b
IfcFile::inverse_attr_record - add a note
2025-06-11 19:39:46 +05:00
Andrej
d0f4dd00c7
getInverse -> get_inverses_by_declaration
...
Similar to getTotalInverses rename, to prevent confusing with get_inverse.
2025-06-11 19:39:46 +05:00
Andrej
eee94f53a4
get_inverse, get_inverse_indices, get_total_inverses - prevent possible crashes
...
When passing entity without an id (e.g. IfcBaseType)
2025-06-11 19:39:46 +05:00
Andrej
6bb028696d
getTotalInverses -> get_total_inverses_by_id
...
Rename method to avoid confusion with get_total_inverses
2025-06-11 19:39:46 +05:00
Andrej
3499c50d7d
entity_instance.__getattr__ - small optimization for inverse attrs
...
Stop iterating early and don't build a list to make it a bit more optimized.
Though I'm unsure if anyone is really using `unpack_non_aggregate_inverses`
2025-06-11 19:39:46 +05:00
Andrej
cd952d7e54
typing
2025-06-11 19:38:24 +05:00
Thomas Krijnen
2741acf4fe
Fix compilation
2025-06-11 10:39:02 +02:00
Thomas Krijnen
69b6c41791
Use u32string throughout in character decoder
2025-06-10 20:33:21 +02:00
myoualid
d1306d7a27
pyodide fatal error example #6794
2025-06-10 19:31:09 +01:00
Andrej
2bb373c1b2
bim.remove_representation - show operator time if it took more than 10 sec #6784
2025-06-10 18:54:37 +05:00
Andrej
b4bc7ec371
remove_deep2 optimization for cases when the same entity is referenced by multiple other in the subgraph #6784
2025-06-10 18:54:37 +05:00
Andrej
1fecd77121
Fix a typo
2025-06-10 18:54:37 +05:00
Andrej
c9b41a1499
Warning for joining non-mesh-like representation items #6793
2025-06-10 18:54:36 +05:00
Andrej
b1ae213349
Fix bim.unassign_structural_load_case (redundant argument)
2025-06-10 18:54:36 +05:00
Andrej
5d632eae3d
opencdeserver - fix bug with DocumentVersions initialization
2025-06-10 18:54:36 +05:00
Andrej
1608677d40
ifcopenshell.api.run to use explicit kwargs instead of unpacking
2025-06-10 18:54:35 +05:00
Andrej
a37d46ca3d
typing
2025-06-10 18:54:33 +05:00
Thomas Krijnen
862119834f
Submodule
2025-06-09 21:37:13 +02:00
Thomas Krijnen
4d7453f9a4
Increase SVG precision to prevent self-intersections on detailed polygons
2025-06-09 21:31:55 +02:00
Thomas Krijnen
a4f06f69cc
Update pyodide to 0.27.7 #6794
2025-06-09 20:36:37 +02:00
Andrej
24f693e0bb
ExpandedGroups - encapsulate in BIMGroupProperties
2025-06-09 18:03:25 +05:00
Andrej
32088fb95a
Bonsai - fix cjio dependency ( 3d77fc7)
2025-06-09 18:03:22 +05:00
Andrej
812baa1c04
ifctester pyproject.toml - document flask dependency
2025-06-09 18:03:22 +05:00
Andrej
6862523c75
pyproject black - select all src folders by default, exclude explicitly
2025-06-09 18:03:22 +05:00
Andrej
8b4683aef1
replace api.run with static methods
2025-06-09 18:03:19 +05:00
Andrej
02d359d0e6
Fix Ruff UP035 (also deprecated annotation symbols)
2025-06-09 18:03:19 +05:00
Andrej
7d4176d105
Fix Ruff UP006 (deprecated annotation symbols)
2025-06-09 18:03:18 +05:00
Andrej
6eb45917fe
fix typo
2025-06-09 18:03:15 +05:00
Andrej
3f4656600e
typing
2025-06-09 18:03:15 +05:00
Andrej
7034c0b18a
Fix typo ( 5ba82d7)
2025-06-09 18:03:14 +05:00
Andrej
97ece7c20b
black .
2025-06-09 18:03:14 +05:00
Massimo Fabbro
5ba82d7764
See #5155 . Update doc accordingly
2025-06-08 10:29:28 +02:00
falken10
8e8b44a744
Resource should not increment quantity in cost schedule
2025-06-08 10:23:00 +02:00
Massimo Fabbro
8b9927b77b
See #6570 . Better variable name
2025-06-08 10:22:12 +02:00
Andrej
09f6991565
cost items ui - update current index on item deletion
...
To make it less awkward to remove multiple items starting from the last.
Before - https://files.catbox.moe/wce56c.mp4
After - https://files.catbox.moe/wv1jhs.mp4
2025-06-06 19:06:47 +05:00
Andrej
14e8fad841
bim.contract / expand cost items - remove unused prop
2025-06-06 19:06:47 +05:00
Andrej
c76785e02c
tool.cost - refactor expand/contract rates methods
...
So they will be more similar
2025-06-06 19:06:46 +05:00
Andrej
7808dd535d
Fix contracted cost item removal logic
...
It was removing checking for cost item index, though container is storing cost item ids.
2025-06-06 19:06:46 +05:00
Andrej
72cf77690e
Prevent removing rel when is still valid after IfcCostItem removal #6769
2025-06-06 19:06:46 +05:00
Andrej
bf4a3f074f
typing
2025-06-06 19:06:46 +05:00
Andrej
a374a7e3ff
bonsai pyproject.toml - document dev dependencies
2025-06-06 13:11:59 +05:00
Andrej
b6267e4ad1
Fix issue with occurrences when reassigning IfcTypeProduct class #6781 ( 977d814)
2025-06-06 13:11:59 +05:00
Andrej
f21b34ffc1
reassign_class - safe check to prevent errors like #6781
2025-06-06 13:11:58 +05:00
Andrej
6de16bf658
bim.reassign_class - add simple test to cover cases like #6781
2025-06-06 13:11:58 +05:00
Andrej
9f17b9fd86
reassign_class - calculate occurrence_class just once for the entire loop
2025-06-06 13:11:58 +05:00
Andrej
781df9e3d8
Fix incorrect glob separator ( 8c9ccfd)
2025-06-06 11:57:46 +05:00
Andrej
8c9ccfdaae
Fix #6760
2025-06-06 11:22:05 +05:00
Andrej
3892ac56a4
Skip 26b21dd test if non-standard schema is not available (e.g. in github ci)
2025-06-05 19:05:28 +05:00
Andrej
ba6674299c
ifocpenshell-python makefile - shortcut to get current build urls
2025-06-05 19:05:28 +05:00
Andrej
fc0624692f
test_sql - use Ifc2Sql patcher for readability
2025-06-05 19:05:28 +05:00
Andrej
d6b5c73d4a
ifcpatch - fix doc-string ( b07b0e4be)
2025-06-05 19:05:28 +05:00
Andrej
f622d2f961
ifc2sql - consider .ifcsqlite suffix
2025-06-05 19:05:27 +05:00
Andrej
3a66a1c754
geom settings - add new settings from 439f9c1
2025-06-05 19:05:27 +05:00
Andrej
d0741cd495
Fix error using X hotkey on empty collection #6696
2025-06-05 19:05:27 +05:00
Andrej
0d39f8df28
Safer BlendData access
...
To avoid issues like #6771 when we by accident find an ID data-block from linked .blend file.
2025-06-05 19:05:27 +05:00
Andrej
87265d052b
typing
2025-06-05 19:05:27 +05:00
Thomas Krijnen
5af7c9a32d
Clarify Compound of Solids behaviour in create_solid_from_faces() #6780
2025-06-05 10:22:28 +02:00
Andrej
1ce9a4c68e
ifc2sql - fix mysql errors inserting values into shape table
2025-06-04 19:10:52 +05:00
Andrej
930d58cf69
ifc2sql - fix issue inserting mysql json attributes
...
It seems mysql doesn't have automatic conversion from other types to json, so we stringify it for compatibility.
2025-06-04 19:10:51 +05:00
Andrej
926785c5ec
ifc2sql - fix should_get_inverses for mysql
2025-06-04 19:10:51 +05:00
Andrej
274e19dcb9
ifc2sql - warn user if ifc database already exists
2025-06-04 19:10:51 +05:00
Andrej
7f0f93f726
ifc2sql - close cursor too
...
Important on Windows if someone is using Patcher explicitly and `self.c` is not garbage collected and file stays locked and cannot be moved.
2025-06-04 19:10:51 +05:00
Andrej
b07b0e4bea
ifc2sql - fix regression with missing resulting database filepath ( 9055f14) #6758
2025-06-04 19:10:50 +05:00
Andrej
a0e4bdcbef
ifcpatch - fix ifc2x3 bootstrap ( c58b84d)
...
After c58b84d append_asset requires user to be a valid IFC entity.
2025-06-04 19:04:32 +05:00
Andrej
2da183bfa6
bpy._typing -> bpy.stub_internal
...
https://github.com/nutti/fake-bpy-module/issues/362
2025-06-04 19:04:31 +05:00
Andrej
adf8a1f4e0
ci - run all ifcopenshell packages tests regardless of errors in some
2025-06-04 19:04:31 +05:00
Andrej
e1ec422bb1
common.mk - explicitly specify sh as default shell
2025-06-04 19:04:31 +05:00
Andrej
c51e36dbca
ifcpatch - a static way to use ifcpatch
2025-06-04 19:04:31 +05:00
Andrej
b393c120f1
ifcpatch pyproject - list optional dependencies
2025-06-04 19:04:31 +05:00
Andrej
3c7e938d90
IfcGeomWrapper - add missing property for edges_item_ids
2025-06-04 19:04:31 +05:00
Andrej
a614fac71a
typing
2025-06-04 19:04:31 +05:00
Andrej
5a211c67eb
black .
2025-06-04 19:04:30 +05:00
Andrej
6ea53d54ba
ruff to ignore src/ifcconvert/cityjson submodule
2025-06-04 11:02:08 +05:00
Dion Moult
b9b5aefd5e
Fix bSDD to properly use names and codes
2025-06-04 12:11:34 +10:00
Ryan Schultz
e1c1b828ad
Have save/cancel filter on top as well--helps with long filters.
2025-06-03 07:29:19 -05:00
Thomas Krijnen
3180004a28
WKT serializer: adapt section height to geometry height and emit height as geo:length
2025-06-02 13:30:06 +02:00
Thomas Krijnen
2ea2dc303c
OSX action: try with pip's awscli
2025-06-02 11:28:19 +02:00
Thomas Krijnen
0aae57620f
Temporary Python 3.9 compatibility
2025-06-02 08:42:47 +02:00
Thomas Krijnen
5c681d729c
vc path
2025-06-01 13:55:53 +02:00
Thomas Krijnen
802ab8c296
vs2022
2025-06-01 13:39:00 +02:00
Thomas Krijnen
2ebe7046d3
windows-2022
2025-06-01 10:00:33 +02:00
Thomas Krijnen
3562d89f01
Win S3 upload: try without --recursive but loop in ps
2025-06-01 09:53:17 +02:00
Thomas Krijnen
1155b52375
Black
2025-06-01 09:23:10 +02:00
Thomas Krijnen
2d67440085
Draw.py don't assert just only take outer boundary in arrangement
2025-06-01 09:22:40 +02:00
Thomas Krijnen
cc3f2aa28d
Expose mirror-y in draw.py
2025-06-01 09:21:59 +02:00
Massimo Fabbro
390349aa7a
See #6570 . Better cost item rate identification
...
Now show cost item rate shows the Identification and not the ID for better understanding
2025-05-31 15:58:42 +02:00
Massimo Fabbro
eade620581
Add calculating functions for Qto_CourseBaseQuantities for IfcCourse elements
2025-05-31 14:57:46 +02:00
Thomas Krijnen
88ac0a0f6c
Wrong preprocessor statement #6765
2025-05-31 14:14:43 +02:00
Bruno Perdigão
a531bd8c1f
Fix. Uninstall Bonsai Decorators if they are not selected at start
2025-05-30 16:20:42 -03:00
Andrej
f44769c138
ifc2sql - add example for should_expand
2025-05-30 18:13:18 +05:00
Andrej
a6e3cc667c
ifc2sql - add missing should_get_inverses description
2025-05-30 18:13:17 +05:00
Andrej
59b17fc593
ifcopenshell_wrapper.pyi
2025-05-30 18:13:17 +05:00
Andrej
fb1b5bea51
ifcopenshell.file - use IFC4X3 instead of IFC4X3_ADD2 for simplicity
2025-05-30 18:13:11 +05:00
Andrej
e8aa508405
Add 'advanced' optional ifcopenshell dependencies
...
To list all other optional dependencies.
2025-05-30 18:13:11 +05:00
Andrej
363083104b
Add 'tabulate' to optional ifcopenshell dev dependencies
...
Used in test_rules and test_wall_opening.
2025-05-30 18:13:11 +05:00
Andrej
2798bf3b68
ifcopenshell.api.geometry to fail more gracefully with fake-bpy
...
If user has fake-bpy-module for type hints, it will fail with `ImportError: cannot import name 'Vector' from 'mathutils' (unknown location)` instead of `ModuleNotFoundError`.
2025-05-30 18:13:11 +05:00
Andrej
e41c4bf7ae
Separate mathutils tests
2025-05-30 18:13:11 +05:00
Andrej
3bdce4fbc3
Make zip strict argument optional to support Python 3.9
2025-05-30 18:13:11 +05:00
Andrej
ad7473ff1f
Make dataclasses args optional to support Python 3.9 #6725
2025-05-30 18:13:10 +05:00
Andrej
3d77fc7c7d
ifccityjson - more specific depdendency
...
API in cjio 0.10 changed (`load` method was moved elsewhere) and for now we just specify that we require older cjio version.
2025-05-30 18:13:10 +05:00
Andrej
92a222cda7
typing
2025-05-30 18:13:10 +05:00
Andrej
cc60794293
edit style for rep item - fallback in case user has no styles #6764
...
Or if style was removed in the process of editing. And it seems now UI will never appear broken that way.
Previously - https://files.catbox.moe/exhkln.png
Currently - https://files.catbox.moe/r36be8.png
2025-05-30 17:01:11 +05:00
Kristoffer Andersen
c7b4033f6f
Update conda_build_config.yaml
...
try to fix conda daily
2025-05-29 21:18:19 +02:00
Andrej
1ab288de0b
ifc5d - fix <py3.11 compatibility issue ( 6499ac4)
2025-05-29 19:14:43 +05:00
Andrej
48f62c0b5b
ifcopenshell_wrapper.pyi - update from the latest build
...
I guess previously I used some of my local builds, so some symbols were missing.
2025-05-29 19:14:43 +05:00
Andrej
5fc549453c
validate_stub - add wrappers constants
2025-05-29 19:14:43 +05:00
Andrej
bd5f5a30b3
validate_stub - also skip object
2025-05-29 19:14:43 +05:00
Andrej
baf3edca13
ifcopenshell.validate - fix Python 3.9 support ( 25eecde)
2025-05-29 19:14:42 +05:00
Andrej
c23e973575
Fix moved cost.remove_cost_item_value ( b272210)
2025-05-29 19:14:42 +05:00
Andrej
a5801e439f
edit_attributes - fix Python 3.9 support ( 39fd9ce)
2025-05-29 19:14:42 +05:00
Andrej
4e65c33bae
Bonsai make - use ifcjson master instead of fork
...
https://github.com/IFCJSON-Team/IFC2JSON_python/pull/3 got merged
2025-05-29 19:14:42 +05:00
Andrej
c3652a56ee
dev_environment.py #6754
2025-05-29 19:14:42 +05:00
Andrej
e1b3b68a8b
gitignore jquery.min.js ( 320a4cf)
2025-05-29 19:14:42 +05:00
Andrej
dbce4c5d98
bcf - add missing requests dependency
2025-05-29 19:14:42 +05:00
Andrej
0663c5130a
typing
2025-05-29 19:14:42 +05:00
Andrej
ea7ced738a
Introduce Ruff github CI with some basic linter rules
...
And also to help catching syntax errors on older Python versions.
2025-05-28 18:24:13 +05:00
Andrej
7cde9629f8
Fix Ruff UP034 (extraneous-parentheses)
...
https://docs.astral.sh/ruff/rules/extraneous-parentheses/
2025-05-28 18:24:13 +05:00
Andrej
5f5ba72919
Fix Ruff UP003 (taking type of primitive)
...
https://docs.astral.sh/ruff/rules/UP003
2025-05-28 18:24:13 +05:00
Andrej
feebc701fa
Fix Ruff UP008 (super-call-with-parameters)
...
https://docs.astral.sh/ruff/rules/super-call-with-parameters/
2025-05-28 18:24:13 +05:00
Andrej
5ab14f1e4e
Fix Ruff UP022 (replace-stdout-stderr)
...
https://docs.astral.sh/ruff/rules/replace-stdout-stderr/
2025-05-28 18:24:12 +05:00
Andrej
f289b55766
Fix Ruff UP010 (unnecessary-future-import)
...
https://docs.astral.sh/ruff/rules/unnecessary-future-import/
2025-05-28 18:24:12 +05:00
Andrej
3976b77ee1
Fix Ruff UP033 (lru-cache-with-maxsize-none)
...
https://docs.astral.sh/ruff/rules/lru-cache-with-maxsize-none/
2025-05-28 18:24:12 +05:00
Andrej
7259dd625f
Fix Ruff UP013 (convert-typed-dict-functional-to-class)
...
https://docs.astral.sh/ruff/rules/convert-typed-dict-functional-to-class/
2025-05-28 18:24:12 +05:00
Andrej
03f5ee653b
Fix Ruff UP017 (datetime-timezone-utc)
...
https://docs.astral.sh/ruff/rules/datetime-timezone-utc/
2025-05-28 18:24:12 +05:00
Andrej
62a0c258b2
Fix Ruff UP012 (unnecessary-encode-utf8)
...
https://docs.astral.sh/ruff/rules/unnecessary-encode-utf8/
2025-05-28 18:24:11 +05:00
Andrej
c838139fdc
Fix Ruff UP024 (os-error-alias)
...
https://docs.astral.sh/ruff/rules/os-error-alias/
2025-05-28 18:24:11 +05:00
Andrej
a42a95adcb
Fix Ruff UP037 (quoted-annotation)
...
https://docs.astral.sh/ruff/rules/quoted-annotation/
2025-05-28 18:24:11 +05:00
Andrej
3b9d6ed145
Fix Ruff UP009 (utf8-encoding-declaration)
...
https://docs.astral.sh/ruff/rules/utf8-encoding-declaration/
2025-05-28 18:24:11 +05:00
Andrej
3c4105cbc5
Fix Ruff UP011 (lru-cache-without-parameters)
...
https://docs.astral.sh/ruff/rules/lru-cache-without-parameters/
2025-05-28 18:24:11 +05:00
Andrej
302423bfdb
Fix Ruff UP004 (useless-object-inheritance)
...
https://docs.astral.sh/ruff/rules/useless-object-inheritance/
2025-05-28 18:24:11 +05:00
Andrej
6dbf86382f
Fix Ruff UP018 (native-literals)
...
https://docs.astral.sh/ruff/rules/native-literals/
2025-05-28 18:24:11 +05:00
Andrej
3b50993b21
ifc2ca, bcf, opencdeserver - add Python 3.9 support
...
Was breaking due to `|` operator used in annotations instead of `Union`
2025-05-28 18:24:11 +05:00
Andrej
a8634a561a
ifcopenshell.util.mvd_info - fix breaking Python 3.9 support ( cbe8fc1)
...
due to `|` operator used in annotations instead of `Union`
2025-05-28 18:24:10 +05:00
Andrej
a16b8fa376
Fill ifcopenshell_wrapper.pyi with symbols #6684
...
As described in #6744 partial stub wrapper is completely replacing the type information from the wrapper, so having partial stub is making things worse than they were before.
This commit is adding all available symbols from the wrapper to the stub and allows to gradually include type information to the stub.
It also adds a safe net to ensure stub and wrapper won't go out of sync.
2025-05-28 18:24:10 +05:00
Andrej
a25698734a
Address PR feedback from #6719
2025-05-28 18:24:10 +05:00
Andrej
1c1bf56893
typing
2025-05-28 18:24:10 +05:00
Andrej
ceeb7ca355
black .
2025-05-28 18:24:10 +05:00
Martin15135215
6b77147d45
Create ifcopenshell_wrapper.pyi
...
stub file for swig-generated ifcopenshell_wrapper python file
2025-05-28 12:29:10 +00:00
Dion Moult
a929ab0c4f
Big bSDD overhaul for properties and classifications. See description.
...
* bSDD now supports a couple more args when querying the API.
* Fetching properties via the classification UI has been removed
* The bSDD dictionary selector has been merged into the classification
source dropdown
* The bSDD dictionary selector merged into the property set name
dropdown
* You can now search for properties in the bSDD directly when adding
properties
* You can browse properties via groups or classifications (based on
assigned classifications)
* You can browse properties via keyword (with some limitations due to
the API)
* You can selectively choose which properties you then want to add.
Only basic support right now.
2025-05-28 20:51:08 +10:00
Iagoba Apellaniz
e9eb5f892a
Update installation.rst to point to the latest release
2025-05-28 07:25:26 +00:00
Dion Moult
72ef055946
Add tests for boundary
2025-05-27 10:38:38 +10:00
Ryan Schultz
32e4a06fe4
fix : #6749 : use shift + click to remove that selection from the selection set.
...
changed bim.select_similar.calculate_sum to `ctrl + click` instead, since `shift + click` is a UI pattern used in vanilla blender when selecting/deselecting things.
Also refactored into helper methods.
2025-05-26 18:18:18 -05:00
Massimo Fabbro
02af46c99f
Fix #6700 . Cleanup
2025-05-26 17:56:13 +02:00
Massimo Fabbro
085fc8ca1c
Fix #6700
...
It seems that with new shapely release the buffer behavior has changed so now it seems to work again
2025-05-26 17:56:13 +02:00
Dion Moult
93d36501a3
Fix #3994 . Regression where space boundaries would not be created due to shape var being garbage cleaned.
2025-05-26 23:04:51 +10:00
Dion Moult
a74f1c6e08
Fix #6513 . Bug where OBJ not found when adding element.
...
This was actually fixed earlier already due to restructuring of
structural element authoring (i.e. the representation_template items now
always has OBJ unless it is a structural item)
2025-05-26 16:45:35 +10:00
Dion Moult
8766cad37e
bSDD searches now work on type classes as well as predefined types
2025-05-26 16:34:31 +10:00
Sayanjyoti Das
320a4cf4fa
Update installation scripts on documentation
2025-05-26 13:57:52 +10:00
Sayanjyoti Das
77ed64a900
Bundle jQuery at build time instead of fetching from a CDN
2025-05-26 13:57:52 +10:00
Sayanjyoti Das
b17c6dde85
fix jquery CDN links
2025-05-26 13:57:52 +10:00
falken10vdl
b0b7bbf95f
Update data.py to get data sorted
...
Then later is easier to read in lists
2025-05-26 13:56:03 +10:00
Dion Moult
873fe6a87f
Shift down grouping below spatial
2025-05-26 13:55:38 +10:00
talukderpushpak2000
31dc3fe002
Initial Commit
2025-05-26 13:53:58 +10:00
Martin15135215
697b034c22
Add annotation for file.header
2025-05-26 13:52:29 +10:00
Dion Moult
810e8df6fe
Fix #6640 . Fix invalid association of annotations to grids.
...
There was already some half written code with this intent it seems, so I
just finished it up.
2025-05-26 13:49:06 +10:00
Dion Moult
d6cc1ff9e9
Fix #2999 . You can now edit topology representation items.
2025-05-26 12:41:55 +10:00
Dion Moult
242d70c311
Fix set update in loop bug when trying to filter elements by spatial container
2025-05-26 10:47:05 +10:00
Massimo Fabbro
327899ca62
See #6570 . Small fix for previuos commit
2025-05-25 08:00:54 +02:00
Massimo Fabbro
482512085c
See #6570 . Small fix
2025-05-25 08:00:54 +02:00
Massimo Fabbro
12774607f3
See #6570 . Now it is possible to assign a cost rate from a non schedule of rate cost schedule
2025-05-25 08:00:54 +02:00
Massimo Fabbro
242d0ffb3f
See #6570.Minor fix
2025-05-25 08:00:54 +02:00
Massimo Fabbro
2bef2a0219
See #6570 . More consistent cost rate assignment
...
Now when a cost rate is assigned to a cost item, it creates also a relation between them, making the relation more consistent. It is also shown in the UI
2025-05-25 08:00:54 +02:00
Ryan Schultz
8cb871a6a2
Better convention: Using poll() method for b452348748
...
Thank you @Andrej730.
per https://github.com/IfcOpenShell/IfcOpenShell/commit/b452348748629a6e6dad6df24e21bfad2c203043#r157689504
2025-05-24 07:53:45 -05:00
Andrej730
fb5358e54e
clash ui - add basic header for the found clashes
...
Example - https://i.imgur.com/JjKIUZX.png
Also show indices, so it will be easier to communicate a specific clash to someone.
2025-05-23 18:45:07 +05:00
Andrej730
deae4e659b
clash ui - expose clash type to UI
...
Example - https://imgur.com/a/Wdyg3pn
2025-05-23 18:45:07 +05:00
Andrej730
29bd89324a
ifcopenshell.geom.tree.get_clash_type
2025-05-23 18:42:55 +05:00
Andrej730
087608a5f5
clash ui - show clearance, tolerance using blender units for readibility
2025-05-23 18:42:55 +05:00
Andrej730
bc5a291321
ifcclash - remove 'objects' dict item
...
It seems to be part of legacy code that's no longer used since 18c38b3
2025-05-23 18:42:55 +05:00
Andrej730
88befea174
typing
2025-05-23 18:42:55 +05:00
Andrej730
441e2ddbd6
black .
2025-05-23 18:42:55 +05:00
Dion Moult
09e07c80c5
Implement recursive contract / expand of the spatial tree
2025-05-23 17:35:15 +10:00
Orion Sehn
e3ddccdb11
updating documentation to make it clear to run the setup script on windows with blender closed.
2025-05-23 11:38:25 +05:00
Orion Sehn
621f6e7a31
fix to default directory on dev_environment.bat assuming you weren't using the daily build
2025-05-23 11:38:25 +05:00
Bruno Perdigão
0052570fdb
See #6166 . First implementation of polyline extend walls.
2025-05-22 23:47:11 -03:00
Bruno Perdigão
55e2171cac
Remove print statement
2025-05-22 23:16:48 -03:00
Bruno Perdigão
1f8967d5b8
See #6240 . Fix input handling for "close polyline".
2025-05-22 23:16:25 -03:00
falken10vdl
0410cec21b
Added Quickstart guides for Linux and Windows IDEs using VSCode ( #6494 )
...
* Added Quickstart guides for Linux and Windows IDEs using VSCode
* added some tips to Linux QS
* Added point 15
* extra picture for step 15
* Added windows part
* updated windows vscode launch settings
* added info about branch rebase for PRs
* updated dev_environment to cope for some errors
2025-05-22 09:46:41 -05:00
Andrej730
08ab48887a
clash - allow running a quick clash without saving results to some file explicitly
...
It's available on alt+click.
Example - https://imgur.com/a/wctjHnq
2025-05-22 18:09:28 +05:00
Andrej730
97bb587772
Bump bonsai build #6620
...
Besides the pending issues also resolves #6589 and error in #6196
2025-05-22 17:08:46 +05:00
Ryan Schultz
b452348748
Select all instances that share the same attribute value as any of the selected objects
2025-05-21 22:58:34 -05:00
Andrej730
60c18628c5
clash ui - display "clashes are not loaded" to avoid confusion with "no clashes found"
...
Example - https://imgur.com/a/5a6cuEG
2025-05-21 18:43:03 +05:00
Andrej730
5bb769448d
bim.execute_ifc_clash - show results in Bonsai UI for bcf file too
...
Previously results would show up only if you'd save .json, creating confusion since UI is showing "0 Clashes Found" though there were clashes.
2025-05-21 18:43:03 +05:00
Andrej730
ca890d2f9b
clash ui - make filters expandable for readibility
...
Example - https://imgur.com/a/ZeVeF3u
2025-05-21 18:43:03 +05:00
Andrej730
99782a2813
bim.select_clash_source - hide internal props from user
...
to avoid confusion
2025-05-21 18:43:02 +05:00
Andrej730
d48406006f
clash ui - move file selection button closer to filepath field
...
To make the type of the field more apparent.
2025-05-21 18:43:02 +05:00
Andrej730
0405b5c61f
clash ui - deduplicate ui code
2025-05-21 18:43:02 +05:00
Andrej730
c9eea76e57
bim.execute_ifc_clash - more user-friendly error when one of the filepaths do not exist
2025-05-21 18:43:02 +05:00
Andrej730
cc73143ac1
clash - typing fixes and some refactor
2025-05-21 18:43:02 +05:00
Andrej730
84b0abfb60
ci-ifcopenshell-python - include submodules #6723
2025-05-21 18:43:02 +05:00
Andrej730
13ea2ba8d2
ifcopenshell-python makefile - set sh as the main shell explicitly
2025-05-21 18:43:02 +05:00
Andrej730
d148ab4f31
Fix error switching to custom title block #6685
2025-05-21 18:43:02 +05:00
Andrej730
c7a030cc2d
typing
2025-05-21 18:43:01 +05:00
Andrej730
718254fe5e
Fix regression parsing iso duration with floats ( d1b1b08) #6715
2025-05-21 12:16:07 +05:00
Andrej730
41227b89c8
Fix subtle bug with operators precedence in eabdb5d
...
`+` has a higher precedence than `or`, so it resulted in the error below
```
Traceback (most recent call last):
File "\bonsai\bim\module\spatial\prop.py", line 86, in update_active_container_index
tool.Spatial.load_contained_elements()
File "\bonsai\tool\spatial.py", line 312, in load_contained_elements
cls.load_contained_elements_by_type(container)
File "\bonsai\tool\spatial.py", line 321, in load_contained_elements_by_type
results = cls.get_container_elements_grouped_by_type(container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\tool\spatial.py", line 294, in get_container_elements_grouped_by_type
element_type.is_a() + "/" + element_type.Name or "Unnamed"
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str
```
2025-05-20 19:06:25 +05:00
Andrej730
2547ee9ab5
bonsai.crash.txt
...
There seems to be cases when Blender might crash too unexpectedly.
E.g. #6686 - during viewport render system is running out of resources and crashing without leaving blender.crash.txt, leaving everyone clueless. Which is arguably a bug in Blender (both crash and lack of any crash report), but at least we'll have a fallback for this case.
What bonsai.crash.txt does - it's created in system temp folder with the current Python traceback, just before some dangerous operation. If operation didn't crashed Blender, then file will be unlinked. If crash did occurred, it might be the only clue for users and devs on what actually happened.
2025-05-20 19:06:25 +05:00
Andrej730
d22f1bcd71
'viewport' render type - add a note
2025-05-20 19:06:24 +05:00
Andrej730
0c2158089d
disable update_has_underlay if update_props is disabled
...
Otherwise it was trying to load drawing styles too early, when drawing was not yet active. And then they were reloaded again during ActivateDrawingBase. Occurred after c2860e6 , before this commit issue was kind of hidden.
2025-05-20 19:06:02 +05:00
Thomas Krijnen
ccafc203b5
submodule
2025-05-20 10:05:21 +02:00
Andrej730
0efc2d25f1
Fix for assign_class and object with modifiers in Blender <4.4 #6701
2025-05-20 12:24:35 +05:00
Andrej730
ac50f002f0
Fix confused blender and pset props in 9586869
2025-05-19 19:28:55 +05:00
Andrej730
66f4c957ea
black .
2025-05-19 19:28:55 +05:00
Dion Moult
67016d6f90
See #2999 . Reimplement basic creation of structural items.
2025-05-19 17:36:12 +10:00
Thomas Krijnen
439f9c14ce
OcctNoCleanTriangulation CacheShapes PermissiveShapeReuse setting; Cgal conditional copy during triangulation; occt cheaper check for triangulation existance #6712
2025-05-18 22:14:22 +02:00
Dion Moult
404bf13a18
Update colour by property test to reflect new behaviour of only showing geometry not empties
...
ALL (feature) TESTS PASS YESS
2025-05-18 19:23:34 +10:00
Dion Moult
3a37bcdcaa
Update test cases to reflect new drawing activation UI
2025-05-18 19:09:29 +10:00
Dion Moult
992ad8e24a
See #4699 . Continue refactoring logic from drawing decorator into DecoratorData.
2025-05-18 15:32:55 +10:00
Dion Moult
1de2515fcd
More bSDD tests to cover all current functionality
2025-05-18 12:05:33 +10:00
Thomas Krijnen
4bc88eac2f
ifdefs around geometry handling for 4.3 rc schemas #6710
2025-05-17 16:01:28 +02:00
Dion Moult
22f10e5549
Fix #6669 . bSDD now supports test dictionaries, refactor domain to dictionary, support zero length keyword searches, multi-dict support, and basic tests.
...
Feature tests can now have more sophisticated per UIList item spies.
2025-05-17 21:28:12 +10:00
Andrej730
8e34c1d7df
Fix error using bim.updating_representation for object with material set
...
Possibly occurred after 4c255cc , but haven't investigated deeper.
@BIMvoice
The error you were reporting about Split Along Edge operator was caused by this issue, should be fixed now too.
See https://jmp.sh/hgJEHsgH
Example error traceback:
```
Error: Python: Traceback (most recent call last):
File "C\bonsai\bim\ifc.py", line 487, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C\bonsai\bim\module\geometry\operator.py", line 541, in _execute
self.update_obj_mesh_representation(context, obj)
File "C\bonsai\bim\module\geometry\operator.py", line 666, in update_obj_mesh_representation
tool.Ifc.link(new_representation, data)
File "C\bonsai\tool\ifc.py", line 230, in link
IfcStore.link_element(element, obj)
File "C\bonsai\bim\ifc.py", line 258, in link_element
tool.Geometry.get_mesh_props(obj).ifc_definition_id = element.id()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C\bonsai\tool\geometry.py", line 92, in get_mesh_props
return mesh.BIMMeshProperties
^^^^^^^^^^^^^^^^^^^^^^
ReferenceError: StructRNA of type Mesh has been removed
```
2025-05-16 19:43:42 +05:00
Andrej730
4369baa226
bim.split_along_edge - improve descriptions, add error handling
2025-05-16 19:43:42 +05:00
Andrej730
7941d71feb
SvgWriter - make required arguments more explicit
2025-05-16 19:43:42 +05:00
Andrej730
68d967c2e5
pyproject.toml - enableTypeIgnoreComments=false
2025-05-16 19:43:41 +05:00
Andrej730
4ea9a598c7
operator.drawing - remove unnecessary ifc operators
2025-05-16 19:43:41 +05:00
Andrej730
06d1c81954
black .
2025-05-16 19:43:41 +05:00
Andrej730
aa5f08880b
typing
2025-05-16 19:43:41 +05:00
Ryan Schultz
9e6320d545
A preference to list those classes that are not affected by the 'cut decorator'.
2025-05-15 21:45:53 -05:00
Bruno Perdigão
f39d3d4b9c
Fix polyline plane method decorator to show properly.
...
The `plane_method` where not being cleared after canceling or confirming
the polyline operator.
2025-05-15 21:28:31 -03:00
Bruno Perdigão
5c72cf35bd
See #6208 . Change wall merge tolerance for more consistent behavior.
2025-05-15 19:08:04 -03:00
Bruno Perdigão
b9a435e1c3
Fix polyline tool calculation when dealing with 180 degrees angles.
2025-05-15 17:41:32 -03:00
Bruno Perdigão
92f2559ce0
See #6536 . Recalculate profile only for selected objects.
2025-05-15 17:41:32 -03:00
Bruno Perdigão
acf9713943
Fix aggregate decorator after #6537 .
2025-05-15 17:41:32 -03:00
Andrej730
a77125ff12
bim.add_drawing - document camera placement behaviour in description
...
See https://i.imgur.com/VfOjGHk.png
2025-05-15 20:01:02 +05:00
Andrej730
c8841bcb6a
Add a test for be65774
2025-05-15 20:01:01 +05:00
Andrej730
b20997dea8
Fix tests missing assert statement - add assert and fix them
2025-05-15 19:45:11 +05:00
Andrej730
292aca6685
Remove unnecessary IFC operators
2025-05-15 19:45:11 +05:00
Andrej730
3a824ec969
Allow adding arrays to openings and spatial elements 0b8fb41 0e37528
2025-05-15 19:45:11 +05:00
Andrej730
bea9f42f87
Annotator.add_text - remove ancient dead code
...
It was deprecated a while ago in 43869c3 , when we stopped using curves for text annotations. bim.resize_text was also using curve annotations and now also was unused
2025-05-15 19:45:11 +05:00
Andrej730
e4a50b32ce
typing
2025-05-15 19:40:44 +05:00
Andrej730
76611024b6
Remove drawing styles attributes prop ( a50c633cf)
2025-05-15 10:30:35 +05:00
Andrej730
92ee82374c
EPset_Drawing.Metadata - add description
...
See https://i.imgur.com/0fR9fRj.png
2025-05-14 19:40:46 +05:00
Andrej730
af81aa1fae
Reapply 06f1477 to fix not appearing IFC Description button
...
Not that skipping non-string properties was a bad idea, but inserting it right at the beginning was - non-string IFC properties were missing IFC descriptions because of it. Moved it past `Attribute` check to avoid this issue.
For anyone hearing about this feature for the first time - https://imgur.com/a/dNRao3R
I assume this was also the issue that was encountered in #5892
2025-05-14 19:40:45 +05:00
Andrej730
16f9f91561
util.doc - statically type json structures
2025-05-14 19:40:45 +05:00
Andrej730
3a52a848ae
draw_custom_context_menu - small refactor to improve readibility
2025-05-14 19:40:45 +05:00
Andrej730
a50c633cf4
Remove drawing styles attributes
...
It's been awhile since they were unused (2c301d7 ) and now they're replaced with EPset_Drawing.Metadata
2025-05-14 19:40:45 +05:00
Andrej730
6251750133
common method for getting active drawing style
2025-05-14 19:40:45 +05:00
Andrej730
acef6379e8
drawing styles - add descriptions to render types, remove NONE type
...
NONE type removed as it was unused and basically meant the same as 'VIEWPORT'.
Example - https://i.imgur.com/7r6CJdg.png
2025-05-14 19:40:45 +05:00
Andrej730
c2860e6e25
drawing.operator not to use DrawingsData
2025-05-14 19:40:44 +05:00
Andrej730
b8e5cd740a
Use common method for getting active drawing entity
2025-05-14 19:40:44 +05:00
Andrej730
9188dc60ab
typing
2025-05-14 19:40:44 +05:00
Thomas Krijnen
8ce56db0c3
Align preprocessor flags #6706
2025-05-14 13:09:17 +02:00
Andrej730
b91b1401f4
util.get_aggregate - make it more readable ( 5597095)
2025-05-13 17:44:42 +05:00
Andrej730
0e37528915
Skip IfcOpeningElements arrays during base import, setup constraint on opening load #6688
2025-05-13 17:23:46 +05:00
Andrej730
9991c4aa56
IfcImporter.create_generic_elements - prevent argument mutation
...
as it may have unexpected consequences
2025-05-13 17:23:46 +05:00
Andrej730
0ef3983035
bim.show_opening - simplify code
2025-05-13 17:23:46 +05:00
Andrej730
0f6e6a48f4
bim.show_openings - expand description
2025-05-13 17:23:45 +05:00
Andrej730
3d225beafd
Add notes on Tekla accommodations ( 7c3870595)
2025-05-13 16:59:12 +05:00
Andrej730
6a91bbb720
typing
2025-05-13 16:59:12 +05:00
Hannes
1f23e4ba18
Fixed typo in __init__.py
...
See https://github.com/IfcOpenShell/IfcOpenShell/issues/6625
2025-05-13 13:18:24 +02:00
Andrej730
2ebcffc7d4
Geometry changes will be lost - show warning only for IFC objects
...
Previously it would also occur for vanilla Blender objects not connected to IFC.
2025-05-13 13:26:54 +05:00
Andrej730
3d4321f713
Prevent class assignment in non-object mode #6697
...
Example - https://i.imgur.com/KQYQLQZ.png
2025-05-13 13:26:54 +05:00
Andrej730
f8799305e1
black .
2025-05-13 13:26:54 +05:00
Dion Moult
7c38705958
Accommodate invalid missing mapped representations and items coming from Tekla (2023)
2025-05-13 13:09:37 +10:00
Bruno Perdigão
f6fc0cfa0f
See #6537 . Fix object display type when exiting aggregate mode.
2025-05-12 22:01:40 -03:00
Richard Brice
686e9c946b
Adds object placement to stationing referent.
2025-05-12 16:14:53 -07:00
sboddy
3085072751
Improve drawing activation as per #6653 ( #6659 )
...
Drawings are now activated in a bit different way - not by the camera button located above the drawings list, but by using the camera indicator next to each drawing. Which allows do change active drawing very quickly. All activation options (shift+, alt+) are also available from this indicator.
Now - https://imgur.com/a/DmnWkul
Before - https://imgur.com/a/zjPDkPa
2025-05-12 19:46:34 +05:00
Andrej730
0328be4093
Drawing styles - remove deprecated properties / property values
...
Deprecated properties:
- scene.render.engine + BLENDER_EEVEE
- scene.render.simplify_shadows
- scene.render.simplify_shadows_render
- space.overlay.backwire_opacity
- space.overlay.show_edges
- space.overlay.show_occlude_wire
- scene.display.shading.wireframe_color_type + MATERIAL
2025-05-12 19:10:04 +05:00
Andrej730
6218d3902e
bim.activate_drawing_style - show warnings if some property failed to be set
...
Otherwise errors were passing silently (just console errors) and remained unfixed. 'PYTEST_VERSION' is needed to be even more strict when we're running pytests, which allows us to catch outdated Blender properties in time.
Example - https://i.imgur.com/K7Trkxf.png
2025-05-12 19:10:04 +05:00
Andrej730
be1836fa48
Mark thumbnails as outdated instead of updating them right away
...
As user may never open them in type manager
2025-05-12 19:08:46 +05:00
Andrej730
22b5db8a1e
ci-black-formatting - print diff
2025-05-12 19:08:46 +05:00
Andrej730
4268e1376c
Address PR review changes #6660
2025-05-12 19:08:46 +05:00
Andrej730
e2c1a54e0a
typing
2025-05-12 19:08:46 +05:00
falken10vdl
d1be660469
Update type manager preview on updating paramteric door/window type ( #6656 )
2025-05-12 12:41:02 +05:00
Kristoffer Andersen
3ae5227b57
Update ci-ifcopenshell-conda-daily.yml
...
remove env var
2025-05-11 19:59:05 +02:00
Kristoffer Andersen
cdc994ca76
Update ci-ifcopenshell-conda-daily.yml
...
move rattler build output dir outside of build dir
2025-05-11 19:58:27 +02:00
Kristoffer Andersen
0ad4087f0a
Update ci-ifcopenshell-conda-daily.yml
...
remove dotnet to save space on ubuntu runner
2025-05-11 19:28:12 +02:00
Kristoffer Andersen
4b7ca648c6
Update ci-ifcopenshell-conda-daily.yml
...
try to get even more space on ubuntu ci runner
2025-05-11 19:23:28 +02:00
Kristoffer Andersen
17bd6e6b0c
Update ci-ifcopenshell-conda-daily.yml
...
fix missing comma
2025-05-11 19:12:34 +02:00
Kristoffer Andersen
7b80803cbe
separate osx-x86 and osx-arm64 for the conda daily builds ( #6694 )
...
* separate osx-x86 and osx-arm64 for the conda daily builds
* remove running this in PR. No need.
2025-05-11 18:59:52 +02:00
Kristoffer Andersen
eaf67d83f9
Update ci-ifcopenshell-conda-daily.yml
...
strip daily conda build version date string
2025-05-11 16:04:21 +02:00
Kristoffer Andersen
41f754e15b
Update ci-ifcopenshell-conda-daily.yml
...
Update conda ci
2025-05-11 15:53:29 +02:00
Kristoffer Andersen
b7cdb86327
use rattler-build to speed up daily conda builds and fix deps ( #6692 )
...
* use rattler-build to speed up daily conda builds and add typing_extensions
* minor update
2025-05-11 09:37:02 +02:00
falken10vdl
809a20dc99
system info copied when clicking in Bonsai Version ( #6660 )
2025-05-09 16:09:37 -05:00
Andrej730
f5e41d18c6
drawing.operator - reuse blender.get_view3d_space
2025-05-09 19:26:28 +05:00
Andrej730
60a8c45ad7
Fix IFC operators issues for drawing styles operations ( 38cf88d)
2025-05-09 19:26:28 +05:00
Andrej730
73f98bfe4b
Remove 2 years old fallback for missing ShadingStyles prop in drawing's pset ( 38cf88d)
2025-05-09 19:26:28 +05:00
Andrej730
958686958b
drawing.prop - reuse generic pset update callback
2025-05-09 19:26:28 +05:00
Andrej730
e0b61c5794
Fix drawing styles update on underlay toggle after 9329390
2025-05-09 19:26:28 +05:00
Andrej730
5aa5552759
Fix drawing test after be657748f
2025-05-09 19:26:27 +05:00
Andrej730
82a19cee7b
generate_drawing_matrix - simplify logic
2025-05-09 19:26:27 +05:00
Andrej730
43d4adbd9d
Fix tests after specifying types more precisely in def9352ad
2025-05-09 19:26:27 +05:00
Andrej730
1d3c71985f
typing
2025-05-09 19:26:27 +05:00
Andrej730
381fca0812
black .
2025-05-09 19:26:27 +05:00
Dion Moult
0f37eca333
Fix bug in IFC4X3 when convering properties to quantities
2025-05-09 15:24:30 +10:00
Dion Moult
6bf9b8b0c9
Fix bug where appending assets could accidentally create duplicate contexts
2025-05-09 15:24:17 +10:00
Bruno Perdigão
9361cfee28
See #6536 . Update cardinal point when editing IfcMaterialProfileSetUsage.
2025-05-08 22:06:48 -03:00
Bruno Perdigão
1c205d494a
See #6332 . Fix issue where imperial precision were being used by metric formatting.
2025-05-08 19:15:51 -03:00
Ryan Schultz
4d1d224a34
fix #6683 - When placing Level (Plan) annotation, have it take on the 'z' dimension of the 3d cursor, verses the front plane of the drawing camera
2025-05-08 17:04:34 -05:00
Andrej730
4976af5e66
drawing.create_camera - remove setting location line that had no effect
...
Apparently it had no effect from the beginning in 074fe0d and lost any use in 6a8292d , when we started to base position on current cursor's location.
2025-05-08 19:23:24 +05:00
Andrej730
be657748f3
Align new Model drawings to viewport by default
...
Previously it was creating not very useful top-down camera at `(0,0,0)`, now it should be more intuitive.
Example - https://imgur.com/a/GHrvCSJ
2025-05-08 19:23:24 +05:00
Andrej730
def9352ade
typing
2025-05-08 19:23:23 +05:00
Josef Wienerroither
a20002ecca
Update links and version info ifcmax.rst
2025-05-08 14:42:50 +02:00
Andrej730
b7a0f230ad
Fix confused target_view callbacks ( 1619ae854)
...
Fix using the same function name twice leading to DocProperties using camera callback too.
2025-05-08 15:50:00 +05:00
Andrej730
76529a06bb
Fix resetting perspective camera on drawing activation ( 1619ae854)
2025-05-08 15:41:34 +05:00
Andrej730
dcdae67a2d
Fix typo in 1619ae854
2025-05-08 15:41:34 +05:00
Andrej730
5a7a368169
ifcopenshell.file.Transaction - add static typing
2025-05-08 15:41:34 +05:00
Thomas Krijnen
ec13294430
python39 compatibility
2025-05-08 08:37:41 +02:00
Andrej730
653b88ba18
Bonsai - make undo errors visible to user
...
In theory there are possible undo errors, when some step wasn't registered in undo system and undo then won't be able to undo change from IFC. The problem is, those errors could be very dangerous but they occur in background, undetected by users, they're only visible as console traceback.
After this commit we'll try to detect them and set `last_error`, which will show usual Bonsai error panel in Properties.
@theoryshaw just in case, as you will probably find this kind of error 😁
Example traceback user might see in system console (or in their error report from "Copy Error Message").
```
last_error: Undo transaction operations:
- {'action': 'create', 'value': {'id': 1560, 'type': 'IfcGrid', 'GlobalId': '05Y8D_Ja12HfiEbmc$D3WN', 'OwnerHistory': None, 'Name': None, 'Description': None, 'ObjectType': None, 'ObjectPlacement': None, 'Representation': None, 'UAxes': None, 'VAxes': None, 'WAxes': None, 'PredefinedType': None}}
- {'action': 'edit', 'id': 1560, 'index': 2, 'old': None, 'new': 'Grid'}
- {'action': 'edit', 'id': 1221, 'index': 4, 'old': ({'id': 1297}, {'id': 1247}, {'id': 1220}, {'id': 1272}), 'new': ({'id': 1272}, {'id': 1247}, {'id': 1220}, {'id': 1560}, {'id': 1297})}
- {'action': 'create', 'value': {'id': 1561, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, 0.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1562, 'type': 'IfcDirection', 'DirectionRatios': (0.0, 0.0, 1.0)}}
- {'action': 'create', 'value': {'id': 1563, 'type': 'IfcDirection', 'DirectionRatios': (1.0, 0.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1564, 'type': 'IfcAxis2Placement3D', 'Location': {'id': 1561}, 'Axis': {'id': 1562}, 'RefDirection': {'id': 1563}}}
- {'action': 'create', 'value': {'id': 1565, 'type': 'IfcLocalPlacement', 'PlacementRelTo': None, 'RelativePlacement': {'id': 1564}}}
- {'action': 'edit', 'id': 1565, 'index': 0, 'old': None, 'new': {'id': 66}}
- {'action': 'edit', 'id': 1560, 'index': 5, 'old': None, 'new': {'id': 1565}}
- {'action': 'create', 'value': {'id': 1566, 'type': 'IfcGridAxis', 'AxisTag': 'A', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': None, 'new': ({'id': 1566},)}
- {'action': 'create', 'value': {'id': 1567, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1568, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 0.0)}}
- {'action': 'create', 'value': {'id': 1569, 'type': 'IfcPolyline', 'Points': ({'id': 1567}, {'id': 1568})}}
- {'action': 'edit', 'id': 1566, 'index': 1, 'old': None, 'new': {'id': 1569}}
- {'action': 'create', 'value': {'id': 1570, 'type': 'IfcGridAxis', 'AxisTag': 'B', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': ({'id': 1566},), 'new': ({'id': 1566}, {'id': 1570})}
- {'action': 'create', 'value': {'id': 1571, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 10.0)}}
- {'action': 'create', 'value': {'id': 1572, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 10.0)}}
- {'action': 'create', 'value': {'id': 1573, 'type': 'IfcPolyline', 'Points': ({'id': 1571}, {'id': 1572})}}
- {'action': 'edit', 'id': 1570, 'index': 1, 'old': None, 'new': {'id': 1573}}
- {'action': 'create', 'value': {'id': 1574, 'type': 'IfcGridAxis', 'AxisTag': 'C', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 7, 'old': ({'id': 1566}, {'id': 1570}), 'new': ({'id': 1566}, {'id': 1570}, {'id': 1574})}
- {'action': 'create', 'value': {'id': 1575, 'type': 'IfcCartesianPoint', 'Coordinates': (-2.0, 20.0)}}
- {'action': 'create', 'value': {'id': 1576, 'type': 'IfcCartesianPoint', 'Coordinates': (22.0, 20.0)}}
- {'action': 'create', 'value': {'id': 1577, 'type': 'IfcPolyline', 'Points': ({'id': 1575}, {'id': 1576})}}
- {'action': 'edit', 'id': 1574, 'index': 1, 'old': None, 'new': {'id': 1577}}
- {'action': 'create', 'value': {'id': 1578, 'type': 'IfcGridAxis', 'AxisTag': '01', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': None, 'new': ({'id': 1578},)}
- {'action': 'create', 'value': {'id': 1579, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1580, 'type': 'IfcCartesianPoint', 'Coordinates': (0.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1581, 'type': 'IfcPolyline', 'Points': ({'id': 1579}, {'id': 1580})}}
- {'action': 'edit', 'id': 1578, 'index': 1, 'old': None, 'new': {'id': 1581}}
- {'action': 'create', 'value': {'id': 1582, 'type': 'IfcGridAxis', 'AxisTag': '02', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': ({'id': 1578},), 'new': ({'id': 1578}, {'id': 1582})}
- {'action': 'create', 'value': {'id': 1583, 'type': 'IfcCartesianPoint', 'Coordinates': (10.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1584, 'type': 'IfcCartesianPoint', 'Coordinates': (10.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1585, 'type': 'IfcPolyline', 'Points': ({'id': 1583}, {'id': 1584})}}
- {'action': 'edit', 'id': 1582, 'index': 1, 'old': None, 'new': {'id': 1585}}
- {'action': 'create', 'value': {'id': 1586, 'type': 'IfcGridAxis', 'AxisTag': '03', 'AxisCurve': None, 'SameSense': True}}
- {'action': 'edit', 'id': 1560, 'index': 8, 'old': ({'id': 1578}, {'id': 1582}), 'new': ({'id': 1578}, {'id': 1582}, {'id': 1586})}
- {'action': 'create', 'value': {'id': 1587, 'type': 'IfcCartesianPoint', 'Coordinates': (20.0, -2.0)}}
- {'action': 'create', 'value': {'id': 1588, 'type': 'IfcCartesianPoint', 'Coordinates': (20.0, 22.0)}}
- {'action': 'create', 'value': {'id': 1589, 'type': 'IfcPolyline', 'Points': ({'id': 1587}, {'id': 1588})}}
- {'action': 'edit', 'id': 1586, 'index': 1, 'old': None, 'new': {'id': 1589}}
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 352, in undo
transaction.rollback()
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 167, in rollback
element = self.file.by_id(operation["id"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 510, in by_id
return self[id]
~~~~^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 497, in __getitem__
return entity_instance(self.wrapped_data.by_id(key), self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\ifcopenshell_wrapper.py", line 8884, in by_id
return _ifcopenshell_wrapper.file_by_id(self, id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Instance #1565 not found
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\ifc.py", line 426, in callback
tool.Ifc.get().undo()
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 354, in undo
raise UndoSystemError("Error during transaction undo.", transaction) from e
ifcopenshell.file.UndoSystemError: Error during transaction undo.
```
2025-05-07 18:54:57 +05:00
Andrej730
f8489779f6
Fix missing IFC undo for all activate drawing operations
...
Very dangerous bug that could create a situation when .blend will go out of sync with IFC leading to unpredictable issues.
Example issue:
1. Create a drawing and activate it.
2. Create a grid.
3. Activate the drawing again.
4. Undoing just drawing activation here would work fine - annotations would be still floating in IFC without objects, but that would be fixed on the next drawing activation
To make it more dangerous undo grid creation. Then you'll get the traceback similar to the one below. The most dangerous part of it, that user won't see an error, it will just pop up in the system console silently.
```
Traceback (most recent call last):
File "\bonsai\bim\handler.py", line 244, in undo_post
IfcStore.undo(until_key=props.last_transaction)
File "\bonsai\bim\ifc.py", line 533, in undo
transaction["rollback"](transaction["data"])
File "\bonsai\bim\ifc.py", line 449, in <lambda>
operator, rollback=lambda d: tool.Ifc.get().undo(), commit=lambda d: tool.Ifc.get().redo()
^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\file.py", line 345, in undo
transaction.rollback()
File "\ifcopenshell\file.py", line 161, in rollback
element = self.file.by_id(operation["id"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\file.py", line 498, in by_id
return self[id]
~~~~^^^^
File "\ifcopenshell\file.py", line 485, in __getitem__
return entity_instance(self.wrapped_data.by_id(key), self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 8884, in by_id
return _ifcopenshell_wrapper.file_by_id(self, id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Instance 1565 not found
```
2025-05-07 18:54:57 +05:00
Andrej730
64df82a76b
ifcopenshell.file - save last failed transaction for introspection
2025-05-07 18:54:57 +05:00
Andrej730
af4fbd6750
Document features available for perspective camera in it's description
...
See https://i.imgur.com/8ZPJ8ag.png
2025-05-07 18:54:56 +05:00
Andrej730
1619ae8543
Expose camera type to UI and automatically update IFC camera type on drawing activation
...
Noticed fixing #6670 that though example project in this issue had camera named "PERSPECTIVE" but it was saved to IFC as orthogonal and there is no straightforward way to change it, besides changing Blender camera props and updating representation.
Example - https://imgur.com/a/GQ9A3EK
It's kind of exposed to UI now, but there's still bunch of issues with it to address.
2025-05-07 18:54:56 +05:00
Andrej730
41eadf735e
add_representation - more readable error on using panoramic camera
2025-05-07 18:54:56 +05:00
Andrej730
172775d4ed
Fix constant camera representation update because of the float garbage values
...
Similar issue to 82f25f5
Basically matrix is a little bit different every time you activate drawing even if user made no changes to camera position. My guess is basically all float values stored by Blender somewhere deep as float32 but when you access matrix world, Blender converts them to Python floats (which are float64) and some garbage values introduced along the way creating this noise.
2025-05-07 18:54:56 +05:00
Andrej730
d539cad1c2
Fix mistake in fd30a6b #6670
2025-05-07 18:54:56 +05:00
Andrej730
94cf56e080
typing
2025-05-07 18:54:56 +05:00
Geert Hesselink
cf253824ca
update latest simple_spf submodue
2025-05-07 15:48:01 +02:00
Andrej730
9c73f17303
add pytest-bdd to bonsai daily cli
2025-05-06 20:08:09 +05:00
Andrej730
a6f523039b
bonsai pytest.ini - specify plugins explicitly
...
To make it possible to run the tests with PYTEST_DISABLE_PLUGIN_AUTOLOAD set, which is very useful if you don't want to start Blender anytime you run any tests on your system.
2025-05-06 20:07:44 +05:00
Andrej730
c2f9bfeb8d
Fix bim search tests after 0b22333
2025-05-06 20:07:44 +05:00
Andrej730
3ab1c2e0f9
outliner.delete - make errors from attempt to delete locked object less scary
...
Traceback errors give users an impression that some broke and maybe project now is in some invalid state and they should ctrl-z immediately, error reports are much more friendly.
Before - https://i.imgur.com/N4fUU1M.png
After - https://i.imgur.com/6On1Be0.png
2025-05-06 19:03:05 +05:00
Andrej730
0ed964daa2
object.delete, outliner.delete - move to common method is_batch logic
2025-05-06 19:03:04 +05:00
Andrej730
03f619a77c
aggregate decorator indicator - make it more intuitive
...
Example - https://imgur.com/a/RoFQKa1
2025-05-06 19:03:04 +05:00
Andrej730
e5ad35e2c8
bim.add_aggregate - use more common way to get all selected objects
2025-05-06 19:03:04 +05:00
Andrej730
297f15737d
bim.add_aggregate - remove unused 'obj' property ( c51aa91)
2025-05-06 19:03:03 +05:00
Andrej730
374b95efdf
bim.add_aggregate - update description
2025-05-06 19:03:03 +05:00
Andrej730
744ed522b6
Fix error duplicating just an IfcElementAssembly ( d2b05ea)
...
Example error traceback:
```
Traceback (most recent call last):
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1044, in execute
return OverrideDuplicateMove.execute_duplicate_operator(self, context, linked=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1055, in execute_duplicate_operator
IfcStore.execute_ifc_operator(operator, context)
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\ifc.py", line 458, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1047, in _execute
return OverrideDuplicateMove.execute_ifc_duplicate_operator(self, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\geometry\operator.py", line 1085, in execute_ifc_duplicate_operator
old_to_new, new_active_obj = tool.Geometry.duplicate_ifc_objects(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\tool\geometry.py", line 2131, in duplicate_ifc_objects
tool.Root.recreate_aggregate(old_to_new)
File "C:\Users\Andrej\AppData\Roaming\Blender Foundation\Blender\4.4\extensions\.local\lib\python3.11\site-packages\bonsai\tool\root.py", line 397, in recreate_aggregate
tool.Blender.select_and_activate_single_object(bpy.context, tool.Ifc.get_object(new_aggregate[0]))
~~~~~~~~~~~~~^^^
TypeError: 'NoneType' object is not subscriptable
```
2025-05-06 19:03:03 +05:00
Andrej730
f4bc3fffa3
bim.override_move - rename for clairty and add description
2025-05-06 19:03:02 +05:00
Andrej730
06a2cecb51
typing
2025-05-06 15:15:03 +05:00
Andrej730
b0f2785e99
black .
2025-05-06 11:11:07 +05:00
Thomas Krijnen
c6c852c7f6
NB: fix get_cartesiantransformationoperator3d()
2025-05-05 21:47:57 +02:00
Geert Hesselink
5d920d5e31
header_entity type -> attr check
2025-05-05 20:54:19 +02:00
Geert Hesselink
2b522b71cb
hasattr to isinstance()
2025-05-05 20:54:19 +02:00
Geert Hesselink
d00c3735ec
Update src/ifcopenshell-python/ifcopenshell/validate.py
...
Co-authored-by: Thomas Krijnen <t.krijnen@gmail.com >
2025-05-05 20:54:19 +02:00
Geert Hesselink
bbdc9c45dd
use repr(), compatible f.header
2025-05-05 20:54:19 +02:00
Geert Hesselink
5eb9cdf40d
handle header entity string reversal
2025-05-05 20:54:19 +02:00
Geert Hesselink
689289bb60
validate ifcopenshell.simple_spf.file
2025-05-05 20:54:19 +02:00
Geert Hesselink
d401e4c948
set set/get_description, add view_definitions & tests
2025-05-05 16:18:09 +02:00
Geert Hesselink
cbe8fc1ebd
mvd info to module, add testing, setattr & getattr
2025-05-05 16:18:09 +02:00
Geert Hesselink
9f11568aff
Allow for dots in mvd value
2025-05-05 16:18:09 +02:00
Geert Hesselink
968e193f99
abort string when None, more explicit error handling
2025-05-05 16:18:09 +02:00
Geert Hesselink
2d06a79842
handle emptry description field
2025-05-05 16:18:09 +02:00
Geert Hesselink
808a16ba4a
parsed mvd description in ifcopenshell.file
2025-05-05 16:18:09 +02:00
Andrej730
a67a6034a5
Use mesh.separate for vanilla Blender objects #6658 ( 0b22333)
...
mesh.separate works completely different in EDIT mode, previously we only supported it from object mode
2025-05-05 18:45:09 +05:00
Andrej730
8fe1a63339
Bonsai docs - add page to list hotkeys
...
See https://docs-unstable.bonsaibim.org/reference/hotkeys.html
2025-05-05 18:45:08 +05:00
Andrej730
1ce78f3c65
Override Shift-X and Shift-Del with IFC Delete
...
To prevent users from creating weird state of IFC model by using non-ifc `object.delete` triggered by those hotkeys by default.
2025-05-05 18:45:08 +05:00
Andrej730
57b35c68e4
IFC delete - just reuse object.delete if no IFC file active
...
So it will be possible for this operator to completely override object.delete
2025-05-05 18:45:08 +05:00
Andrej730
ff57b91691
typing
2025-05-05 18:45:08 +05:00
Andrej730
6e15219fad
black .
2025-05-05 18:34:47 +05:00
Andrej730
979964f211
Merge branch 'falken10vdl-patch-2' into v0.8.0
2025-05-05 18:33:15 +05:00
falken10vdl
4ce2f81479
Skip non MESH and CURVE object listing elements for coloring #6657
...
So non MESH or CURVE objects are not listed in the Colour by property.
Now all unrelated empty objects are excluded from the coloring section as they were just taking space, see - https://imgur.com/sPA8I5V
2025-05-05 18:31:19 +05:00
Thomas Krijnen
dbdde52435
validate.py Add test files
2025-05-05 14:21:19 +02:00
Thomas Krijnen
84568f34f0
validate.py be more specific in distinguishing type decl and entity refs
2025-05-05 14:20:47 +02:00
Geert Hesselink
fe9c548ae0
Valid template header default ( #6610 )
...
* Valid template header default
* consistent version in tempalte file
* schema-dependent mvd
2025-05-05 13:56:40 +02:00
Andrej730
1714516a81
Fix bim.override_move issue with aggregates #6648 ( c9fc543)
2025-05-05 14:59:31 +05:00
Andrej730
c4c3a2056b
overridden delete operators - add descriptions
2025-05-02 19:58:24 +05:00
Andrej730
fad35b14f2
Fix dangerous bug with bim.override_outliner_delete
...
Essentialy outliner.delete should do the same as object.delete, but in our case the main implementation was in object.delete while outliner.delete was missing very important parts - e.g. handling arrays.
So if user could have remove part of an array without errors, leaving pset data invalid. See #6590 , #6547 .
Found this by trying to debug issues above.
Now outliner.delete will call object.delete explicitly, so the two stay connected.
I also had an idea that may be it somehow can produce #6632/#6619, but couldn't find a way to reproduce it. So it's still uncertain.
2025-05-02 19:58:24 +05:00
Andrej730
2382f8d7f8
color by property - add operators descriptions
2025-05-02 19:58:23 +05:00
Andrej730
9ae7a68c43
Display actual Bonsai version for live repo (reuse last commit date)
2025-05-02 19:58:23 +05:00
Andrej730
7a5e5fe602
Reuse get_last_commit_hash
...
Noticed that hash wasn't updating from live git repo because of this.
Also update commit data only when running the package, not extension.
2025-05-02 19:58:23 +05:00
Andrej730
839b2c9c1f
typing
2025-05-02 19:58:23 +05:00
Andrej730
4aaaf6e8f5
Fix ifc2x3 errors editing IfcSurfaceStyleShading #6624
2025-05-02 12:32:49 +05:00
Andrej730
1b38b03532
new operator - bim.select_entity_by_guid
...
I find myself often having element guid copied (either from other viewer or from text editor or from elsewhere) and to find it in scene I needed to create a new search group, add a filter, paste guid and then search for it. So decided to add a shortcut for this that just takes guid from the clipboard and runs the search for it.
Location - https://i.imgur.com/3c5rm1N.png
2025-05-01 19:32:53 +05:00
Andrej730
cbf0fa88eb
Reenable black formatting workflow
...
Since 3b1e893 black formatter workflow basically had no use since it wasn't reporting any issues (no one checks workflow logs unless workflow failed) and wasn't reliable for catching syntax errors either (black formatter catches syntax errors only when they get in the way of it's formatting the code, but now we delegate to python itself to catch syntax errors, see 406962287c ).
And we also have some docs on how to apply black formatter - https://docs.bonsaibim.org/guides/development/code_style.html
2025-05-01 19:32:52 +05:00
Andrej730
6961ca8ce7
Fix bug creating a drawing if linked model schema doesn't match the main model schema
...
Co-Authored-By: Thomas Krijnen <1096535+aothms@users.noreply.github.com >
2025-05-01 19:32:52 +05:00
Andrej730
d758d4aef5
Windows - fix opening paths with special characters #6630
2025-05-01 19:32:52 +05:00
Andrej730
84240c870c
More consistent Windows Bonsai .ifc file association
...
Rely on `winreg` instead of running powershell scripts with cmd commands + .reg file + weird workflow with the need to retype cmd command. Also use HKCU instead of HKCR because it doesn't require admin rights.
If someone hearing about this feature for the first time, here's a short demo - https://imgur.com/a/dfG44pY (icon appears too but after explorer restart).
2025-05-01 19:32:52 +05:00
Andrej730
4483d8e958
Fix typo
2025-05-01 19:32:52 +05:00
Thomas Krijnen
70440050db
Bounds checking in variant array
2025-04-30 20:43:43 +02:00
Thomas Krijnen
bc7527a73b
Defensiveness against empty faces
2025-04-30 20:43:27 +02:00
Thomas Krijnen
c8ad1ba0ee
Fix faceset helper on advanced brep oriented edges #6604
2025-04-30 20:43:13 +02:00
Andrej730
c7a29d5604
Fix invalid IfcGrid cartesian points ( 774a770)
...
They were saved as 4d coordinates, not 2d.
2025-04-30 19:36:22 +05:00
Andrej730
814c16d3ee
IfcGrid - add placement by default to avoid invalid IFC
2025-04-30 19:36:22 +05:00
Andrej730
3bedbfb82c
Operator to run git diff on current ifc file
...
Short demo - https://imgur.com/a/TvnztNy
2025-04-30 19:36:22 +05:00
Andrej730
07f42b9126
typing
2025-04-30 19:36:21 +05:00
Andrej730
5b1da583d9
black .
2025-04-30 19:36:21 +05:00
Thomas Krijnen
c624162f09
partial_success_is_success #6589
2025-04-30 14:53:53 +02:00
FabioPiccinini
bc221cfa99
Use tool.Blender.get_view3d_area() to allow the use of separate windows ( #6617 )
2025-04-30 17:29:05 +05:00
c4rlosdias
5d02afa47e
clear list of entities failed when execute Tester
2025-04-30 17:27:06 +05:00
Andrej730
406962287c
ci-black-formatting - check syntax errors explicitly
2025-04-30 15:22:09 +05:00
Andrej730
241f7679b0
create_axis_curve - fix typo
2025-04-30 14:24:04 +05:00
Thomas Krijnen
0001071185
partial_success_is_success #6589
2025-04-29 22:03:18 +02:00
Thomas Krijnen
8d476c792d
todo notes #6589
2025-04-29 21:43:49 +02:00
Thomas Krijnen
97c7aefad7
One more self-intersection check in cgal kernel #6589
2025-04-29 21:39:08 +02:00
Andrej730
34cafc761a
Use actual text position instead of local pos rendering drawings text decorations
...
E.g. it's important if text is part of parametric array and it's local position may be constant, but it's constrainet by parent's position.
2025-04-29 19:26:43 +05:00
Andrej730
3fbde8db28
mesh.add_grid - display props in Blender project units
...
Example - https://i.imgur.com/koLiH7U.png
2025-04-29 19:26:42 +05:00
Andrej730
0b8fb41ac4
bim.add_array - guard from unexpected element types
...
So we can gradually expand it with the things we do know to support.
2025-04-29 19:26:18 +05:00
Andrej730
dc46afc227
Setup array constraints for annotations that use paramatric arrays
...
Previously you was able to add parametric array to annotations but constraint would be missing on file reload.
2025-04-29 19:26:18 +05:00
Andrej730
b8ee1d4d8d
import_ifc - skip setup_arrays for annotations #6636
2025-04-29 19:26:18 +05:00
Andrej730
ecf461e1e0
typing
2025-04-29 19:26:17 +05:00
Andrej730
1856eeddeb
Fix missed cases of loading unloaded linked files in 9316e0b ( #6403 )
2025-04-29 15:20:45 +05:00
Andrej730
afb2b9fdea
Fix issues printing drawing with projects linked by relative path
...
The fix in f9bf889 wasn't related to this problem and was targetting another bug.
2025-04-29 15:20:45 +05:00
Andrej730
af2cb2896a
Revert f9bf889 #6605
...
As this fix is no longer needed and covered by more general resolve_uri refactor
2025-04-29 15:20:45 +05:00
Andrej730
e792cf8fa0
get_uri, resolve_uri - refactor #6605
...
1) Use pathlib for consistency
2) Ensure consistent output - always use posix format and resolve paths (but keep the symlinks)
2025-04-29 15:20:45 +05:00
Thomas Krijnen
7b71e2ce2a
Don't set xstep.cascade.unit as it appears to result in scaling during export #6623
2025-04-29 10:53:01 +02:00
Thomas Krijnen
ce72337d3a
Mark settings as internal #6623
2025-04-29 10:52:27 +02:00
Bruno Postle
0e9ca541c4
Linux escape double-quotes in filenames #6630
...
Special chars ('#{)$ were already escaped, but " wasn't
2025-04-28 21:34:05 +01:00
Andrej730
784576b249
IFC Join - support joining non-ifc Blender objects into representation items
...
Short demo - https://imgur.com/a/o9MJiIr
2025-04-28 19:14:21 +05:00
Andrej730
5e26e55a8c
edit_meshlike_item - fix missing item object name update
2025-04-28 19:14:21 +05:00
Andrej730
1b110c4a84
reuse ifc.link for meshes
2025-04-28 19:14:20 +05:00
Andrej730
b94629133c
geometry.name_item_object
2025-04-28 19:14:20 +05:00
Andrej730
55e270c135
IFC Join - fix error joining representation items ( 6ce4b5d)
...
It was trying to reaccess already removed ifc_definition_id leading to an error. Now we update id with a new item.
2025-04-28 19:14:20 +05:00
Andrej730
308d628b1e
IFC Join - prevent joining rep items into non items
...
Because it was removing representation item object leaving Bonsai in confusing state, which may lead to errors later
2025-04-28 19:14:20 +05:00
Andrej730
5e16588eb7
IFC Join - prevent possible ghost ifc objects after join
...
Skip ifc objects of different type as they will be ignored by object.join either way and removing them produced ghost ifc objects.
2025-04-28 19:14:20 +05:00
Andrej730
e919a0643f
IFC Join - add description
2025-04-28 19:14:19 +05:00
Andrej730
9835ef977f
IFC Join - add poll check similar to object.join
2025-04-28 19:14:19 +05:00
Andrej730
10f84537de
typing
2025-04-28 19:14:19 +05:00
Massimo Fabbro
f9a0081b33
Fix bug in reload link ifc where in Windows gives an error if relative path is used
2025-04-28 06:22:13 +02:00
Massimo Fabbro
11462c388a
Purge unecessary code
2025-04-28 06:22:13 +02:00
Ryan Schultz
4bcd9639f4
whoops
2025-04-27 16:55:45 -05:00
Ryan Schultz
b856c40fe7
small tweak to previous commit
2025-04-27 16:54:34 -05:00
Ryan Schultz
dd1c529544
Fix #6601 - If you duplicate something it makes the duplicate the active object.
...
also bulk deselect all objects_to_remove to speed things up a little.
2025-04-27 13:12:07 -05:00
Andrej730
c9fbec4d46
Revert "Bump IOS build in Bonsai" #6589
...
This reverts commit 50e7728f95 .
2025-04-25 19:47:17 +05:00
Andrej730
c9437329ef
IFC Mesh Separate - fix bug in 52af302bef separating multiple elements
...
Forgot to clear selection after processing each object, it could have led to incorrect results since mesh.separate is applied to the selection later.
2025-04-25 19:47:17 +05:00
Andrej730
a09e971674
IFC Mesh Separate - fix not updated items decorator after some item was separated
...
Noticed fixing bug from #6285
2025-04-25 19:47:17 +05:00
Andrej730
8ac04e32e5
bim.import_representation_items - add description
2025-04-25 19:47:16 +05:00
Andrej730
0634dc83d4
IFC Mesh Separate - fix bug when separating an item wouldn't change separated item
...
Mentioned by Ryan in #6285
2025-04-25 19:47:16 +05:00
Andrej730
5dc4b18d3f
IFC Mesh Separate - reload representation just once if multiple items got separated
2025-04-25 19:47:16 +05:00
Andrej730
f84bca8017
IFC Mesh Separate - fix bug when new separated mesh wasn't relinked to a new ifc item
2025-04-25 19:47:16 +05:00
Andrej730
31a6c91c4b
core.duplicate_drawing - remove debug print statements and unused code
2025-04-25 19:47:16 +05:00
Andrej730
30242d859e
Fix core test for drawing duplication ( 0b1c049)
2025-04-25 19:47:16 +05:00
Andrej730
330799c799
core tests - very readable error for unpredicted return values
...
Previously:
E TypeError: Object of type Prophecy is not JSON serializable
Now:
E TypeError: Failed to serialize call: '{'name': 'duplicate_ifc_objects', 'args': ([<Prophecy for 'bonsai.core.tool.Ifc'>],), 'kwargs': {}}'.
E Possibly due to unpredicted return value for some call.
E See the list of the recent calls without return values:
E - {'name': 'get_object', 'args': ('annotation',), 'kwargs': {}}
E - {'name': 'run', 'args': ('group.assign_group',), 'kwargs': {'group': 'new_group', 'products': ['new_drawing']}}
E - {'name': 'run', 'args': ('group.edit_group',), 'kwargs': {'group': 'new_group', 'attributes': {'Name': 'unique_name', 'ObjectType': 'DRAWING'}}}
E - {'name': 'run', 'args': ('group.unassign_group',), 'kwargs': {'group': 'group', 'products': ['new_drawing']}}
2025-04-25 19:47:15 +05:00
Andrej730
e2c2234199
core tests - more readable errors
...
E.g. it shows now:
AttributeError: Interface 'bonsai.core.tool.Drawing' has no attribute 'weird_method'.
Instead of:
Prophecy <class 'abc.Drawing'> has no attribute weird_method
2025-04-25 19:47:15 +05:00
Andrej730
34efa9f459
typing
2025-04-25 19:47:15 +05:00
Andrej730
261de9b2be
entity_instance.__getattr__ - document some attributes conversion to Python
2025-04-25 19:47:15 +05:00
Andrej730
52af302bef
IFC Mesh Separate - add to object mode menu too for discoverability + support multiple selected elements
...
Short demo - https://imgur.com/a/PIuJ9Rq
2025-04-24 19:54:36 +05:00
Andrej730
529c74f6a9
create_camera - small optimization with util.shape
2025-04-24 19:54:36 +05:00
Andrej730
fd30a6b5eb
create_camera - small optimization with early return
2025-04-24 19:54:35 +05:00
Andrej730
82f25f50cc
Fix resaving camera to IFC on every drawing activation ( 32899eb)
...
`camera_props.update_representation` basically always returned True leading to `bim.update_representation` call on camera on every drawing activation. It was always True because `create_camera` wasn't setting `representation` and some other related camera props.
Changes:
- create_camera now setting representation
- ortho_scale, rather_x and raster_y now explicitly is tied to width, height and drawing scale props, not on depsgraph update. Depsgraph update wasn't allowing to set these props in time for create_camera to record representation correctly
- depsgraph update now only in charge of ortho_scale (just to be sure user won't touch it by hand) and scene.render resolution
2025-04-24 19:54:35 +05:00
Andrej730
d0dc31588d
typing
2025-04-24 19:54:35 +05:00
Andrej730
68f71c715e
Fix invalid cprops after camera data is recreated
...
Mentioned in #5676 , discoverd after 476604202a .
`bim.update_representation` removes previous `camera.data` and adds a new one making cprops invalid possibly leading to either invalid prop values or crashes (https://projects.blender.org/blender/blender/issues/137889 ).
2025-04-23 19:22:31 +05:00
Andrej730
6913060f0c
bim.expand_target_view - remove trailing space from description
2025-04-23 19:22:31 +05:00
Andrej730
4427c73816
bim.override_mesh_separate - handle possible mode mismatch more gracefully
...
Other options LOOSE_PARTS and MATERIAL do support object mode.
2025-04-22 20:05:32 +05:00
Andrej730
d188155fac
bim.override_mesh_separate - fix bug with skip_save
...
Previously you would use bim.override_mesh_separate from UI with any of the available `type` options, then running operator separately would leading to running this operator from F3 to always choose this options (possibly leading to errors in objects mode)
2025-04-22 20:05:31 +05:00
Andrej730
598dfd75e7
bim.override_origin_set - use operator_enum for menu
2025-04-22 20:05:31 +05:00
Andrej730
5c63cd7981
bim.override_mesh_separate - use operator_enum, hide Blender Separate
...
as it's now integrated in IFC separate and using Blender Separate for ifc elements is not safe
2025-04-22 20:05:31 +05:00
Andrej730
0b22333b69
bim.override_mesh_separate - integrate mesh.separate
...
mesh.separate will be used for all other selected non-ifc objects.
Included some code to support multple objects but there are still a few issue with it, I'll look into soon.
2025-04-22 20:05:31 +05:00
Andrej730
69481c2d63
bim.override_mesh_separate - fix bug separating elements ( 7bc4b51)
...
`obj` variable was used but never passed to `separate_element`
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 458, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\geometry\operator.py", line 105, in _execute
self.separate_element(element)
File "\bonsai\bim\module\geometry\operator.py", line 175, in separate_element
new_objs = [obj]
^^^
NameError: name 'obj' is not defined
```
2025-04-22 20:05:31 +05:00
Andrej730
671c887201
bim.override_mesh_separate - invoke menu if called without argument
...
Mimicking default mesh.separate behaviour.
@Gorgious56 I don't know if you've seen this before, but you might be interested - I've found a way to figure if operator wasn't called without any arguments.
2025-04-22 20:05:30 +05:00
Andrej730
0a6fbeccb0
bim.override_mesh_separate - use original Blender enum and description
2025-04-22 20:05:30 +05:00
Andrej730
4b3ca11c12
typing
2025-04-22 20:05:30 +05:00
Andrej730
f9bf8897bc
Fix error linking ifc files with relative filepaths going upwards
...
Mentioned in https://github.com/IfcOpenShell/IfcOpenShell/pull/6540#issuecomment-2820938852
2025-04-22 16:37:05 +05:00
Andrej730
932939099a
Add target_view prop to camera
...
This property was already set in 50b41f5 but Blender property was missing. Though nowit's not very useful as it just writes value to pset.
2025-04-22 16:37:05 +05:00
Andrej730
8d31d93531
typing
2025-04-22 16:37:05 +05:00
Andrej730
5c4f157624
readable_ifc_duration - add doc-string and note
2025-04-21 19:00:25 +05:00
Andrej730
f87c694432
Fix issue with custom diagram scale ( 1d5891f)
...
It was referring to non-existent prop "custom_diagram_scale"
2025-04-21 19:00:25 +05:00
Andrej730
38eedffd80
tool.Ifc - add some doc-strings
2025-04-21 19:00:25 +05:00
Andrej730
305439d27e
Link.name - fix description
...
After f8828d3 we store linked filepath in .ifc project, so we don't support path relative to .blend anymore.
2025-04-21 19:00:24 +05:00
Andrej730
908bf02098
ifc5d - strip " Cost" suffix when importing csv
...
" Cost" is a suffix is added on export, so it makes to get rid of it on import.
2025-04-21 19:00:24 +05:00
Andrej730
c6176d364f
ifc5d - use filename for imported schedule name
...
So it will be in sync with how export works.
Removed non_sor_fields is unrelated - forgot to remove before.
2025-04-21 19:00:24 +05:00
Andrej730
068814c095
bim.assign_document - add to documents UI
2025-04-21 19:00:24 +05:00
Andrej730
476604202a
typing
2025-04-21 19:00:24 +05:00
Andrej730
558bda1aea
black .
2025-04-21 19:00:23 +05:00
Dion Moult
426f1b91f2
See #2783 . Don't show 0 durations for clarity.
2025-04-21 22:59:14 +10:00
Dion Moult
d1b1b08174
See #2783 . Duration parsing no longer uses isodate to remain faithful to formatting.
2025-04-21 22:39:23 +10:00
Thomas Krijnen
c1513190d4
Debug build_win.yml
2025-04-21 13:17:14 +02:00
Andrej730
50e7728f95
Bump IOS build in Bonsai
...
New build resolves #6529 #6576
2025-04-21 13:57:25 +05:00
Andrej730
4e00a8d596
bonsai Makefile - specify shell explicitly
...
To avoid Windows trying to use cmd
2025-04-21 13:57:25 +05:00
Massimo Fabbro
266cc32336
Add calculating functions for earthworks
2025-04-21 10:48:00 +02:00
Andrej730
f8ad05cb54
Use isodate to parse iso durations #2783
...
Related #6585
Co-Authored-By: sboddy <12862430+sboddy@users.noreply.github.com >
2025-04-21 12:45:40 +05:00
Andrej730
311f9b96e7
black .
2025-04-21 12:45:40 +05:00
Dion Moult
56bfe80b3b
Fix #6501 . Fix #6104 . Fix #6189 . You can now change wall offset convention after drawing walls.
...
People kept on getting confused with the align tool thinking it changed
the baseline to reference line offset whereas it actually just aligned
the object bodies. This tool now does exactly that.
Also start refactoring the "DumbWall" classes into the tools so we can
test them properly.
2025-04-21 17:17:09 +10:00
Dion Moult
2db6b860b2
See #6501 . Fix bug where wall alignment didn't strictly check for poll requirements prior to executing operator.
2025-04-21 15:38:26 +10:00
Ryan Schultz
5af2c3914a
When \n stopped the world. fix previous commit.
...
```
os: Windows
os_version: 10.0.19045
python_version: 3.11.7
architecture: ('64bit', 'WindowsPE')
machine: AMD64
processor: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
blender_version: 4.2.1 LTS
bonsai_version: 0.0.0
bonsai_commit_hash: f8ebc2d
bonsai_commit_date: 2025-04-20T10:30:03-05:00
last_actions:
last_error: Traceback (most recent call last):
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 1003, in finish_loading_project
bpy.ops.bim.load_project_elements()
File "c:\Program Files\Blender Foundation\Blender 4.2\4.2\scripts\modules\bpy\ops.py", line 109, in __call__
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Python: Traceback (most recent call last):
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\module\project\operator.py", line 1063, in execute
bonsai.bim.schema.reload(self.file.schema_identifier)
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 67, in reload
ifc = IfcSchema(schema_identifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 43, in __init__
self.load_pset_templates()
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\bonsai\bim\schema.py", line 57, in load_pset_templates
self.psetqto.templates.append(ifcopenshell.open(path))
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\__init__.py", line 183, in open
return file(f)
^^^^^^^
File "C:\Users\Ryan Schultz\AppData\Roaming\Blender Foundation\Blender\4.2\extensions\.local\lib\python3.11\site-packages\ifcopenshell\file.py", line 295, in __init__
raise exc(msg)
ifcopenshell.Error: Syntax error during parse, check logs
Location: c:\Program Files\Blender Foundation\Blender 4.2\4.2\scripts\modules\bpy\ops.py:109
ifc: projection lines.ifc
schema: IFC4
preprocessor_version: IfcOpenShell 0.0.0
originating_system: Bonsai 0.8.3-alpha250417-f3228c3
```
2025-04-20 11:20:05 -05:00
Ryan Schultz
f8ebc2d156
Property in EPset_Drawing for SVG classes that 'rise to the top'. per: https://community.osarch.org/discussion/comment/22689/#Comment_22689
2025-04-20 10:30:03 -05:00
Thomas Krijnen
f3228c31f8
Debug build_win.yml
2025-04-20 08:42:03 +02:00
Dion Moult
86d481f4f8
Revert "Fix #4130 . Skip invalid topology."
...
This reverts commit bb598d848a .
2025-04-20 15:07:45 +10:00
Ryan Schultz
05f79c844a
For cut lines through terrain. I still plan to make these a preference, however.
2025-04-19 12:46:52 -05:00
Thomas Krijnen
b87a7b3d0a
cgal kernel - conditionally reorient extrusion basis #6529
2025-04-19 18:50:51 +02:00
Massimo Fabbro
e54acd83f8
See #5149
...
Now it is possible to assign a resource also to a cost item in a schedule of rates
2025-04-19 16:40:47 +02:00
Massimo Fabbro
f8e52c8a12
See #6570 . Add a button to refresh an imported csv file
...
Now the imported csv filepath is stored so it is possible to refresh the cost schedule without the need of reimporting it
2025-04-19 16:40:24 +02:00
Dion Moult
0608f92bc4
See #4699 . Potentially fix crashes by only loading IFC data once and caching in decorator.
2025-04-19 21:19:18 +10:00
Dion Moult
df18108406
Add tests for sheet creation and drawing / sheet generation
2025-04-19 17:36:21 +10:00
Thomas Krijnen
b64dcfd4b8
Fix compilation on schemas prior to ifc4 #6549
2025-04-19 09:21:22 +02:00
Dion Moult
d1493b4234
Fix #5571 . No longer create "RASTER" document references. Process all images at sheet creation time.
...
I think this was overengineered and a bad decision. RASTER is a
technical detail, not a semantic label (in contrast with whether it's a
title or a drawing).
2025-04-19 16:53:14 +10:00
Dion Moult
fb34af9162
Fix #6575 . Regression in moving aggregates.
2025-04-19 15:30:46 +10:00
Dion Moult
bb598d848a
Fix #4130 . Skip invalid topology.
2025-04-19 15:25:13 +10:00
Dion Moult
502cf6f439
Standalone script to generate drawings for debugging
2025-04-19 14:59:54 +10:00
Dion Moult
9875fce579
Revert "See #6574 . Bump IOS."
...
This reverts commit 90198115b6 .
2025-04-19 14:58:07 +10:00
Dion Moult
90198115b6
See #6574 . Bump IOS.
2025-04-19 14:29:20 +10:00
Dion Moult
4896a69981
Add test cases for drawing duplication and shapely fill mode.
2025-04-19 13:42:36 +10:00
Dion Moult
3390f58c88
Fix failing tests
2025-04-19 08:19:25 +10:00
Andrej730
917d28a7b1
ifc5d cost schedule export - guess unit from quantity type
2025-04-18 19:25:46 +05:00
Andrej730
bebaa4d1bd
ifc5d cost import - fix unexpected columns assigned as values
...
Mentioned in #5492 - id, index and lots of others were assigned as values at import.
2025-04-18 19:25:46 +05:00
Andrej730
93a4f4980a
Revert ddd7dff75e
...
I guess after all it's not very reliable idea since it's possible to have a cost schedule without quantities (even non-SoR) and it's giving users false assumptions that they don't need to worry about "Is Schedule of Rates" flag in some cases.
2025-04-18 19:25:46 +05:00
Andrej730
1e30eae1d7
ifc5d - continue refactor
2025-04-18 19:25:46 +05:00
Andrej730
ff90396bcf
typing
2025-04-18 19:25:46 +05:00
Dion Moult
a030b84fc5
Typo
2025-04-18 19:50:03 +10:00
Dion Moult
0b1c049e81
Fix #5137 . Fix bug where duplicated drawings didn't duplicate properly. Duplicating drawings now shares code with regular object duplication.
...
Previously code wasn't shared and duplication was reimplemented in an
incomplete way. Now it's shared which means that it's also more
sophisticated (i.e. does all the linked aggregate magic).
Also the duplicate code seems super complicated especially with arrays
and linked aggregates. Moving it into a tool makes it more reusable and
we can test it more granularly in the future.
2025-04-18 19:47:54 +10:00
Dion Moult
74390c0529
Fix bug where duplication outside IFC projects didn't use native Blender operators.
...
Historically we overrode the operator, so we had to reinvent native
functionality. Now we only override the hotkey, so we can reuse native
functionality. This also means that things we failed to reinvent like
duplicating unlinked animation data now works properly. This bit me when
I was doing animation work and Bonsai's duplicate messed things up.
2025-04-18 18:28:15 +10:00
Thomas Krijnen
21d39d8a23
Use exact topology points at parametric range bounds to guarantee welding #4487
2025-04-18 10:08:57 +02:00
Thomas Krijnen
ad0f62f88f
Don't terminate on invalid placement location #4883
2025-04-18 09:17:19 +02:00
Andrej730
85d8fa49ab
ifc5d - add examples for other formats
2025-04-17 19:07:20 +05:00
Andrej730
c5f4b53555
bim.export_cost_schedules - fix bug with overridden prop value
...
E.g. if you would call this operator for 1 specific cost schedule, Blender would remember it's value and would keep on using it even if operator is going to be called outside this schedule
2025-04-17 18:55:42 +05:00
Andrej730
016cfa94d2
export_cost_schedules - fix confusing filename
...
Mentioned in #6545
Override filename to be always empty, so user won't have an expectation that csvs will be saved as a single file (currently they're always saved to a directory).
2025-04-17 18:55:41 +05:00
Andrej730
007af80234
ifc5d readme - add notes for possible missing columns
2025-04-17 18:55:41 +05:00
Andrej730
576a206d5b
Fix typo
2025-04-17 18:55:41 +05:00
Andrej730
4cf6411a61
ifc5d.csv2ifc - add tests for sample files
2025-04-17 18:55:41 +05:00
Andrej730
37a0b3f6a9
Csv2Ifc - move arguments to init for a simpler setup
2025-04-17 18:55:41 +05:00
Andrej730
209caec49a
csv2ifc import - rename required column from hierarchy to index #5492
...
To prevent confusion with 'Hierarchy' column that's added on the export and make current and export compatible.
Indices now always start from 1 for consistency.
2025-04-17 18:55:41 +05:00
Andrej730
bebb29f486
ifc5d csv export - rename Description column to Name #5492
...
Because actually it is a name and this is the column name that csv2ifc expects.
2025-04-17 18:55:40 +05:00
Andrej730
deb6e3779e
ifc5d - refactor
2025-04-17 18:55:40 +05:00
Andrej730
a6c37771fc
typing
2025-04-17 18:55:40 +05:00
Andrej730
95f754d2df
black .
2025-04-17 18:55:40 +05:00
Thomas Krijnen
030dc6460a
Prevent double free in iterator with output=native
2025-04-17 15:26:18 +02:00
Thomas Krijnen
360e08f268
SVG matrix #5676
2025-04-17 15:25:35 +02:00
Sebastian Friston
dc84d85f7b
ISSUE #6340 check if material is null before trying to get id
2025-04-17 14:33:07 +02:00
Dion Moult
e16d8907f3
See #5676 . Shapely fill calculation on drawings is 100x faster due to Blender raycasting instead of tree.select_ray.
2025-04-17 22:31:23 +10:00
Dion Moult
52cada180b
Fix #4107 . Bug where shapely used incorrect raycast coordinates causing fills to not show.
...
This has been around for 2 years, either it was never noticed or
something changed?
2025-04-17 19:38:31 +10:00
Gorgious56
1999216ea5
Use utilities to fetch collection hierarchy
...
I don't think this offers a noticeable performance gain but feels more idiomatic since it is available with the API.
2025-04-17 09:10:28 +02:00
Dion Moult
5a6476a57f
Fix #3673 . Bug where a split wall broke flipped doors.
...
Instead of regenerating fills upon splitting walls, placements are
preserved exactly.
2025-04-17 16:28:05 +10:00
Bruno Perdigão
c45e3b0099
See #6537 . Fix how OverrideMove works when dealing with multiple levels of aggregates.
2025-04-16 20:46:39 -03:00
Bruno Perdigão
c9fc543e91
See #6537 . Improve how aggregate mode behaves when dealing with multiple levels of aggregates.
2025-04-16 20:23:18 -03:00
Andrej730
9994fec571
ifc5d - fix bug exporting multiple csvs with the same name
2025-04-16 19:24:16 +05:00
Andrej730
b0aeabf2f6
ifc5d .csv cost schedule - save as unicode
...
Previously it was saved using Windows 1252 and importing it would fail with an error like so:
```
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 650: invalid start byte
```
2025-04-16 19:24:16 +05:00
Andrej730
ddd7dff75e
ifc5d csv2ifc - autodetect schedule of rates by the header structure
2025-04-16 19:24:16 +05:00
Andrej730
7acd13cb82
ifc5d readme - mention format examples
2025-04-16 19:24:15 +05:00
Andrej730
6499ac41cf
ifc5d typing and refactor
...
no functional changes
2025-04-16 19:24:15 +05:00
Dion Moult
e8b74245ce
Update VERSION
2025-04-16 16:27:16 +10:00
Andrej730
ecee3781e4
Fix more missing Blender descriptions leading to crashes #6420
2025-04-15 19:43:38 +05:00
Andrej730
52f949b2dc
assign_class - avoid empty geometries and assigning shape reprs to structural items
2025-04-15 19:43:38 +05:00
Andrej730
cb7e04f61a
assign_class - replace object with empty if no representation was added
...
Same goal as ffffcc576e - prevent user confusion when they reload IFC file and see the representation is gone.
2025-04-15 19:43:38 +05:00
Andrej730
b59e5b076d
get_pset, get_psets - don't fail on ifc2x3 profile psets and partially handle ifc2x3 material psets #6538
2025-04-14 18:59:47 +05:00
Andrej730
1516237537
Allow Undefined topology representations for IfcStructuralPointConnection #6459
...
Because apparently it's not invalid IFC.
IfcStructuralPointConnection documentation says that they should have a topology representation with a IfcVertexPoint but it doesn't restict this representation from having Undefined type if it does have a IfcVertexPoint as it's item.
2025-04-14 17:49:17 +05:00
Andrej730
53cd5f834e
add_mesh_representation - reuse shape builder + numpy input support
2025-04-14 16:17:59 +05:00
Andrej730
6dc6fddd0e
add_mesh_representation - expand documentation and typing #6541
2025-04-14 16:17:59 +05:00
Dion Moult
52c8cc0a72
Fix #6140 . You can configure the force snap setting.
...
I can't figure out a more elegant way of doing this. I.e. I don't know
how to detect whether or not the user has explicitly set their own snap
default.
2025-04-13 17:57:08 +10:00
Dion Moult
463473b959
Fix #6359 . No longer sync materials at export sync we have a proper material / style manager now not Blender materials.
2025-04-13 16:09:36 +10:00
Dion Moult
fd0c578995
No longer sync edited objects since we don't defer representation updates anymore due to item mode.
2025-04-13 16:06:15 +10:00
Dion Moult
74fbe94ed4
Update feature_request.yml
2025-04-13 12:10:28 +10:00
Dion Moult
38002e1ee2
Update and rename feature_request.md to feature_request.yml
2025-04-13 12:08:28 +10:00
Dion Moult
58b070d22d
Update and rename bug_report.md to bug_report.yml
2025-04-13 12:06:46 +10:00
Dion Moult
e2b119bf9b
Update feature_request.md
2025-04-13 11:42:53 +10:00
Dion Moult
8cf3807c2c
Update feature_request.md
2025-04-13 11:42:11 +10:00
Dion Moult
ad3d0fecb2
Describe other channels in issue template
2025-04-13 11:38:33 +10:00
Dion Moult
fcfe6f97c3
Update bug_report.md
2025-04-13 11:32:30 +10:00
Dion Moult
c0190b5065
Fix #6452 . Fix #6478 . Disable camera clipping due to unpredictable Blender behaviour (reported upstream).
...
https://projects.blender.org/blender/blender/issues/137384
2025-04-13 11:20:57 +10:00
Andrej730
e596ac6b1b
dev_environment.bat - ensure symlinks are loaded #6473
2025-04-11 19:55:27 +05:00
Andrej730
d9ed6a4950
Fix bim test after 1e3f1e7dfc
2025-04-11 19:55:26 +05:00
Andrej730
a49ccfcfc8
test_append_asset - fix skipped test
...
It wasn't appending library_material so test would never fail
2025-04-11 19:55:26 +05:00
Andrej730
7974d8a0d0
project.append_asset - test assume_asset_uniqueness_by_name=False
2025-04-11 19:55:26 +05:00
Andrej730
f00e77ef6c
bim.validate_ifc_assets Bonsai operator #6243
...
There's now operator to check that all profiles, styles, materials in the current project have a unique name. Which is important since it's used when we append assets to ensure there are no duplicated assets.
Operator location - https://i.imgur.com/bvXjZ8Y.png
Example output:
```
IfcMaterial name 'KnownUnknown' is used by multiple assets:
- # 260=IfcMaterial('KnownUnknown',$,$)
- # 1220=IfcMaterial('KnownUnknown',$,$)
Found issues validating IfcProfileDef assets.
IfcProfileDef name 'DEMO-C' is used by multiple assets:
- # 266=IfcCShapeProfileDef(.AREA.,'DEMO-C',$,0.2,0.1,0.0015,0.03,0.005)
- # 261=IfcIShapeProfileDef(.AREA.,'DEMO-C',$,0.1,0.2,0.005,0.01,0.005,$,$)
Found issues validating IfcPresentationStyle assets.
IfcPresentationStyle name 'Frame' is used by multiple assets:
- # 363=IfcSurfaceStyle('Frame',.BOTH.,(# 362))
- # 1221=IfcSurfaceStyle('Frame',.BOTH.,(# 1222))
```
2025-04-11 19:55:26 +05:00
Andrej730
fc37cca1d0
ExtractElements - expose assume_asset_uniqueness_by_name option #6243
...
I'd much rather not expose this option to ifcpatch but I guess models are different and there should be a way to extract elements even if assets name uniqueness is not ensured (since it's not IFC requirement anyway). But it may cause duplicated assets.
2025-04-11 19:55:26 +05:00
Andrej730
53da00a5b7
append_asset - fix possible errors with assume_asset_uniqueness_by_name=False after f43e33b
...
If `assume_asset_uniqueness_by_name` is `False`, then we don't really need `SafeRemovalContext`.
2025-04-11 19:55:25 +05:00
Andrej730
b5bc53bdf6
Renaming style from UI not to add .xxx Blender suffix to style name
...
Set style name explicitly, this way what user does in UI is what they get in IFC.
Previously confusingly if you set style name to "Glass" and "Glass" already existed, you would get "Glass.001" style internally but "Glass" name in UI.
2025-04-11 19:55:25 +05:00
Andrej730
bc0fbf744a
bim.search - set found object as active
...
As sometimes it's hard of find a selected object in outliner if it's not active.
2025-04-11 19:55:25 +05:00
Andrej730
53b26a9b66
typing
2025-04-11 19:55:25 +05:00
Thomas Krijnen
858e73c9d9
IfcPropertySetDefinitionSet in xml serializer #6330
2025-04-11 15:53:27 +02:00
Thomas Krijnen
952400bd58
Support defined types with instance references in parser (IfcPropertySetDefinitionSet; #6330 )
2025-04-11 15:52:40 +02:00
Andrej730
ffffcc576e
assign_class - reload representation after assignment
...
Just to make sure user will set what was actually saved to IFC right away. To prevent confusion when they see it only after model was reloaded completely.
2025-04-10 19:16:04 +05:00
Andrej730
d8102d848d
Fix bug with the first object rename after class assignment
...
The problem was that during class assignment, it was setting the object name and `is_renaming` flag but only then linking to IFC. Since object wasn't linked to IFC, name callback wasn't triggered and `is_renaming` wasn't reset and first rename wouldn't work.
Now it's just not setting the flag if object is not linked to IFC, as there's no callback then and don't need to protect from it.
2025-04-10 17:44:06 +05:00
Andrej730
9407faf1f9
vs-cfg.md - support cmake 4.0.0
2025-04-10 17:44:06 +05:00
Andrej730
1e3f1e7dfc
Show assign/reference container buttons if container has no elements #6514
2025-04-10 10:54:46 +05:00
Andrej730
8aad28c730
bim.assign_class - skip ifc objects to prevent errors
2025-04-09 18:26:55 +05:00
Andrej730
81943ec9e5
bim.assign_class - apply modifiers
...
Noticed working on #6500
2025-04-09 18:26:55 +05:00
Andrej730
5b15de50b6
bim.assign_class - use blender operators in a more safe way
...
Use temp_override or modify selection not to modify some object by accident, because this operator can also be called not from UI but by providing `object` argument.
2025-04-09 18:26:54 +05:00
Andrej730
4d50dce16d
bim.assign_class - use get_selected_objects
2025-04-09 18:26:54 +05:00
Andrej730
69b5d0940f
bim.assign_class - flip normals if matrix is negative #6500
...
object.transform_apply doesn't preserve normals (https://projects.blender.org/blender/blender/issues/102266 )
2025-04-09 18:26:54 +05:00
Andrej730
273d6c1039
Experimental geo nodes integration
2025-04-09 18:26:54 +05:00
Andrej730
24ef03c96e
bim.assign_container - skip aggregated elements #6514
...
New description - https://i.imgur.com/UeSPtEe.png
2025-04-09 18:26:54 +05:00
Andrej730
cc4553d3c9
bim.aggregate_assign_object - clarification
2025-04-09 18:26:54 +05:00
Andrej730
cf1f74e260
typing
2025-04-09 18:26:53 +05:00
Andrej730
3052c6e578
black .
2025-04-09 18:26:53 +05:00
Bruno Perdigão
0eb70b7fc3
See #6397 - Fix extrusion profile editing issue.
...
Profile transformations now correctly use the perpendicular value of the offset.
2025-04-08 20:07:46 -03:00
Bruno Perdigão
eb863bb2aa
Snap - Filter out 2D bounding boxes that are too far from the camera view.
2025-04-08 18:11:01 -03:00
Andrej730
345a6e72d9
Make referencing in structure more discoverable #6514
...
Didn't wanted to disrupt existing operators, but we probably should deprecate them.
2025-04-08 15:54:41 +05:00
Andrej730
8b775ea30f
bim.assign_container - small clarification
2025-04-08 15:54:41 +05:00
Thomas Krijnen
b712f30ad3
Don't assign material as style when it doesn't have any styles #6314
2025-04-07 21:25:33 +02:00
Andrej730
0bbe1aad5b
Fix UI errors in Blender 4.2 (missing MOUSE_MMB_SCROLL icon)
...
Noticed #6515
2025-04-07 16:20:22 +05:00
Andrej730
29de264b43
ifc5d - remove Qto_BodyGeometryValidation from ifc4x3 base qtos ( 6c04669)
...
As it's not part of base quantities and it would be unexpected for user if some additional qto would start calculating for every IfcProduct.
2025-04-07 16:20:22 +05:00
Andrej730
f4714d2012
ifc5d - avoid overriding results from previous queries after f63d6b8
2025-04-07 16:20:21 +05:00
Andrej730
8bfdabab80
ifc5d IfcOpenShell.calculate - warn on missing formulas
2025-04-07 16:20:21 +05:00
Andrej730
50c1220730
typing
2025-04-07 16:20:21 +05:00
Bruno Perdigão
c280550e30
Measure Tool - fix issue where the area highlight was incorrectly displayed in polyline mode.
2025-04-05 11:55:05 -03:00
Bruno Perdigão
2bf303686c
Snap - Improve how viewport zoom affects snapping.
2025-04-05 11:45:56 -03:00
Bruno Perdigão
bb91416c4e
Snap - Fix creation of 2D bounding boxes
...
Previously, objects with 2D bounding boxes outside the view were still being added. This issue is now resolved.
Additionally, implement simple AABB detection to check if the bounding box is within the viewport.
2025-04-04 20:19:25 -03:00
Bruno Perdigão
47e8b978af
Snap - filter visible objects before creating the 2d bouding box
2025-04-04 18:38:07 -03:00
Andrej730
50eae4ae19
Fix typo, expose Extend To Underside description
2025-04-04 19:04:03 +05:00
Andrej730
979183b64b
Make adding openings more discoverable
...
1) It's back as Shift-O hotkey in BIM tool - https://i.imgur.com/XfmfqNY.png
2) It's always visible in Voids UI - https://i.imgur.com/rO6nOSw.png
2025-04-04 19:04:03 +05:00
Andrej730
dc2f788326
model/wall.py - poll messages
2025-04-04 19:04:03 +05:00
Andrej730
7d12880eb9
BIM Tool - add descriptions to "Align" section buttons
2025-04-04 19:03:08 +05:00
Andrej730
6676c7f62e
typing
2025-04-04 19:03:08 +05:00
Thomas Krijnen
c0e8c3d1b5
Update ci-ifcopenshell-docker.yml - action versions
2025-04-04 14:11:41 +02:00
Andrej730
e9245efd37
bim.browse_external_style - cache enum items #6496 #5673
2025-04-03 19:37:51 +05:00
Andrej730
de287395d2
Bump Blender build in tests to 4.4
2025-04-03 19:18:42 +05:00
Andrej730
938d72ebe3
Fix UI issue with props missing ( 65c99c5)
2025-04-03 18:06:49 +05:00
Andrej730
605c86afc5
Fix void bim tests after bim.add_potential_opening was removed
2025-04-03 18:06:48 +05:00
Andrej730
68cf8ee247
BIM tests - replace some class assignment with PanelSpy version
2025-04-03 18:06:48 +05:00
Andrej730
a452d1d361
Fix failing bim tests after 5b33c60
2025-04-03 18:06:48 +05:00
Andrej730
71067e4a14
Fix style test in Blender 4.4
2025-04-03 18:06:48 +05:00
Andrej730
7bacdbf8dd
typing
2025-04-03 17:45:49 +05:00
Thomas Krijnen
54c1dfdb77
Update ci-ifcopenshell-docker.yml
2025-04-03 09:29:49 +02:00
Thomas Krijnen
834123ad14
Update release.yml - add workflow_dispatch
2025-04-03 09:27:32 +02:00
Andrej730
3cbab975d5
Fix tests after ea84f82
2025-04-02 19:29:43 +05:00
Andrej730
0315542237
geometry.remove_representation_item - add element argument
...
Use explicit element argument instead of props.representation_obj as representation_obj may not be there (e.g. removing rep items without item mode) or some other object might be in item mode and then booleans won't be unmarked.
Found the issue because of the failing test 🥳
2025-04-02 19:29:43 +05:00
Andrej730
156cca5932
representation_obj - add a note
2025-04-02 19:29:43 +05:00
Andrej730
4672fc341f
Fix representation items / booleans UI prioritizing item mode object over active obj
...
It led to confusion when object A would be in Item Mode and you open properties for object B and try to show rep items for B and UI would be unresponsive.
2025-04-02 19:29:43 +05:00
Andrej730
f69b02cad9
bim.override_object_join - a bit more readable error message
...
Use name instead of bpy_struct repr, add a line split.
2025-04-02 19:29:42 +05:00
Andrej730
40af3f0495
Fix bug adding brick namespace in ed0b1c5
...
brick graph has bool evaluation too
2025-04-02 19:29:42 +05:00
Andrej730
0dd42c1fb2
fix core system tests after 5b9ef23
2025-04-02 19:29:42 +05:00
Andrej730
0990dfd372
biim.load_link - error if file does not exist
...
Noticed investigating #6403
2025-04-02 12:42:02 +05:00
Andrej730
9316e0bff0
Skip loading linked models in the drawing if they're unloaded #6403
...
As it's probably unintuitive (user can't see the linked model in viewport but we still load it) and user then have no option to keep model in Links but keep it unloaded.
Also producing traceback below if linked file is missing.
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\drawing\operator.py", line 299, in execute
linework_svg = self.generate_linework(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\drawing\operator.py", line 828, in generate_linework
IfcStore.session_files[link.name] = ifcopenshell.open(link.name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\__init__.py", line 162, in open
raise FileNotFoundError(f"File does not exist: '{path}'.")
FileNotFoundError: File does not exist: 'D:\Dropbox\GitLab\OD_Library\BIM\OD_Revit_Template - 2020 - IFC4 - Reference View.ifc'.
```
2025-04-02 12:42:02 +05:00
Andrej730
bc709f06f7
Fix Blender 4.4 crashing on Mac (decorators issues) #6461
2025-04-01 19:16:16 +05:00
Andrej730
cc031a23cb
black .
2025-04-01 19:16:16 +05:00
Andrej730
614b71e0c6
gitignore compiled ifcopenshell_wrapper files on mac/linux #4686
2025-04-01 19:10:05 +05:00
Andrej730
66329f07cb
dev_environment.sh - validate input paths
2025-04-01 19:10:05 +05:00
falken10vdl
0039f376ca
Update operator.py so argv parameters in Windows are correctly parsed
...
Currently teh parameters that have spaces are not properly parsed when invoking os.execv.
Ej:
We start blender with some parameters and then invoke bim.restart_blender:
C:\Users\falke>c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe --debug --python-expr "import bpy; bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc', should_start_fresh_session=True, use_detailed_tooltip=True)"
TBBmalloc: skip allocation functions replacement in ucrtbase.dll: unknown prologue for function _msize
Switching to fully guarded memory allocator.
Blender 4.2.8 LTS
Build: 2025-03-18 01:34:37 Windows Release
argv[0] = c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe
argv[1] = --debug
argv[2] = --python-expr
argv[3] = import bpy; bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc', should_start_fresh_session=True, use_detailed_tooltip=True)
Starting import process :: 0.00
Loading file :: 0.00
Calculate unit scale :: 0.00
Process context filter :: 0.01
Calculate model offset :: 0.00
Set units :: 0.00
Create project :: 0.00
Process element filter :: 0.00
Create styles :: 0.00
Parsing native elements :: 0.00
Done creating geometry
Create native elements :: 0.00
Done creating geometry
Create elements :: 0.03
Create annotations :: 0.00
Create positioning elements :: 0.00
0 / 3 elements processed ...
Create spatial elements :: 0.00
Create structural items :: 0.00
Create element types :: 0.00
Place objects in collections :: 0.00
Setup arrays :: 0.00
Load linked models :: 0.00
Add project to scene :: 0.00
Setting default context :: 0.01
Import finished in 0.06 seconds
No MySQL support
Writing userprefs: "C:\Users\falke\AppData\Roaming\Blender Foundation\Blender\4.2\config\userpref.blend" ok
Info: Preferences saved
TBBmalloc: skip allocation functions replacement in ucrtbase.dll: unknown prologue for function _msize
Switching to fully guarded memory allocator.
Blender 4.2.8 LTS
Build: 2025-03-18 01:34:37 Windows Release
argv[0] = c:\Users\falke\Documents\blender-4.2.8-windows-x64\blender.exe
argv[1] = --debug
argv[2] = --python-expr
argv[3] = import
argv[4] = bpy;
argv[5] = bpy.ops.bim.load_project(filepath='C:/Users/falke/Documents/bonsaiDevel/Testing.ifc',
argv[6] = should_start_fresh_session=True,
argv[7] = use_detailed_tooltip=True)
C:\Users\falke> File "<string>", line 1
import
^
SyntaxError: invalid syntax
Error: Cannot read file "C:\Users\falke\bpy;": No such file or directory
Error: argument has no '.blend' file extension, not using as new file, exiting! C:\Users\falke\bpy;
Blender quit
By adding the proposed list2cmdline based solution, the commandline is properly formated before invoking os.execv
Thanks!
2025-04-01 18:09:25 +11:00
Dion Moult
c307871d37
Fix #6472 . Typo in IfcTester test cases.
2025-04-01 17:56:51 +11:00
Andrej730
31c9f60bca
Fix errors creating objects if default container is hidden #6456
2025-04-01 11:32:14 +05:00
Dion Moult
93e7d92076
Fix bug where removing a context (used by representations) left invalid representations
2025-04-01 17:28:22 +11:00
Dion Moult
16f09655b8
Bump version numbers in dev scripts
2025-04-01 14:21:34 +11:00
Dion Moult
b6115a6d71
Fix bug where adding objects relying on missing contexts would fail
2025-04-01 14:20:56 +11:00
Richard Brice
f0b5e93737
Fixes problem evaluating gradient and segmented reference curves with start locations offset from start of base curve.
2025-03-31 16:18:05 -07:00
Andrej730
9895302c9d
bim.add_boundary - add description/error reports
...
Example description - https://i.imgur.com/jn3y2KU.png
fyi @steverugi
2025-03-31 19:10:21 +05:00
Andrej730
8f5f346fa4
boundary/create_mesh - small optimizations
2025-03-31 19:10:21 +05:00
Andrej730
6adf5d957a
Fix error adding a space boundary ( a7509db)
2025-03-31 19:10:21 +05:00
Andrej730
e6be79f2ad
assign/unassign type operators - add descriptions
2025-03-31 19:10:20 +05:00
Andrej730
e3228513c0
typing
2025-03-31 19:10:20 +05:00
Andrej730
547506d626
black .
2025-03-31 19:10:20 +05:00
Andrej730
3fe29fa842
Prevent user from trying to assign material style if not style is selected
...
Possibly explains #6462
2025-03-31 14:07:41 +05:00
Andrej730
e18e2caea8
Bonsai - exclude selected non-ifcobjects from type assignment/unsassignment #6454
2025-03-31 14:07:41 +05:00
Andrej730
1cac12dc53
Use fallback elevation value if default container is missing #6470
...
I guess it's always theoretically possible that user end up without a default container.
2025-03-31 13:49:18 +05:00
Andrej730
8d530eba68
Fallback to the aggregate if default container is removed #6470
2025-03-31 13:49:18 +05:00
Andrej730
4593e5aea6
Fix ExportHelper not optional filename_ext #6463 ( 4594f59)
2025-03-31 12:51:37 +05:00
Andrej730
cba6161043
Fix #6467 ( d35a2dc)
2025-03-31 12:05:15 +05:00
Richard Brice
42c49af4e3
Implements business to geometry mapping for alignment cant.
...
Also fixes problems that were created by this work in other files
2025-03-29 15:30:04 -07:00
Andrej730
7bdbfee041
Fix bim.export_cost_schedules #6463 ( 4594f59)
2025-03-29 23:36:37 +05:00
Thomas Krijnen
f37bda2d7c
Add hybrid-cgal-simple-opencascade to CLI help
2025-03-28 20:43:17 +01:00
Andrej730
0bf065c4bd
Fix issue editing item layer when it had a layer previously ( 13a182c)
2025-03-28 17:59:08 +05:00
Andrej730
c58b84ddb5
append_asset - fix duplicated applications/organizations/pao
...
Noticed when starting new project with demo library it had 29 duplicated IfcApplications...
2025-03-28 17:59:07 +05:00
Andrej730
81b5fc30c7
template_file - add a note
2025-03-28 17:59:07 +05:00
Andrej730
fd423f21e2
ifcopenshell.validate - validate IfcApplications
2025-03-28 17:59:07 +05:00
Andrej730
4afed8f2f3
typing
2025-03-28 17:59:07 +05:00
Thomas Krijnen
9254601924
Underscores in geom setting to argparse namespace
2025-03-28 12:11:27 +01:00
Thomas Krijnen
e9460a2c9a
Actually Eigen::Quaterniond arg order is *w* xyz
2025-03-28 12:10:03 +01:00
Andrej730
f08f9ad310
export_mesh_to_tessellation to consider empty material slots #6453
2025-03-28 12:01:09 +05:00
Andrej730
69ddf52ff0
Add ifc2x3/ifc4/ifc4x3 demo templates as symlinks to repo
...
Example - https://i.imgur.com/d4udENs.png
2025-03-28 10:29:31 +05:00
Andrej730
2fd02e281d
Add IFC2X3, IFC4X3 demo libraries
2025-03-27 19:31:04 +05:00
Andrej730
fdb283b7af
generate_demo_library - sync guid on regeneration
2025-03-27 19:31:04 +05:00
Andrej730
013d7f6659
generate_demo_library - typing and small refactor
2025-03-27 19:31:03 +05:00
Andrej730
5b33c6018a
spatial decomposition ui - use poll_message_set instead of .enabled
...
To give user more descriptive message about what's wrong.
2025-03-27 19:31:03 +05:00
Andrej730
50324a566f
black .
2025-03-27 19:31:03 +05:00
Andrej730
64b8842055
typing
2025-03-27 19:29:45 +05:00
Massimo Fabbro
05be0f69bd
Fix #6305
...
Fix wrong calculation with blender engine for IfcFooting
2025-03-26 22:30:56 +01:00
Andrej730
3f823573cf
Fix broken scroll bar in some UI lists #6439
...
Just found that all scroll bars for UIList kept in sync using `list_id` - it's that second argument for `UILayout.template_list` that I forgot exist, since I've never seen set it to anything besides the empty string.
So in #6439 we were reusing same UIList for multiple collection props and since one of the props was empty, it was constantly resetting scroll bar position.
Was about to report it as a bug to Blender but stumbled upon similar issue https://projects.blender.org/blender/blender/issues/124364
So the solution is make sure each UIList has unique `list_id`.
Fyi @Moult @Gorgious56
2025-03-26 18:49:22 +05:00
Andrej730
a3c5c0ce43
Fix typo in 64f51d7
2025-03-26 18:49:21 +05:00
Andrej730
2e61532919
bim.unassign_material - add description
2025-03-26 18:49:21 +05:00
Andrej730
c3107e37c0
material.remove_material_set to remove usages
...
To prevent them from being invalidated.
Noticed this as a possible issue investigating https://community.osarch.org/discussion/2820/error-message-in-bonsai-bim
2025-03-26 18:49:21 +05:00
Andrej730
c85f9f02ba
Check material override explicitly, not just by name
...
It was inconsistent when it was comparing usage with unnamed layer set and comparing usage with named layer set.
2025-03-26 18:49:21 +05:00
Andrej730
f888a32fa4
reuse get_material_name
2025-03-26 18:49:21 +05:00
Andrej730
d35a2dcf5b
typing
2025-03-26 18:49:21 +05:00
Arjo Nagelhout
244320dd49
add virtual destructor to AbstractKernel base class
...
this fixes a SIGTRAP when destructing the geometry iterator, as that calls delete kernel_.
2025-03-25 20:11:39 +01:00
Andrej730
0d7439c7a5
ifcopenshell.validate to catch invalid entities used in entities attributes #6409
...
Example
```
For instance:
# 1 =IFCCARTESIANPOINT((5.,5.,nan.));
Entity with name 'nan.' not found in schema 'IFC4'
```
2025-03-25 18:15:37 +05:00
Thomas Krijnen
bd92821b2e
Add file offset to instance reference errors so that they are picked up by ifcopenshell.validate
2025-03-25 11:44:46 +01:00
Thomas Krijnen
3744b81ccd
Only accept finite floats #6409
2025-03-25 10:15:24 +01:00
Andrej730
9311f50206
Fix for 4594f596c2
...
Traceback:
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\project\operator.py", line 127, in execute
self._execute(context)
File "\bonsai\bim\module\project\operator.py", line 143, in _execute
core.create_project(
File "\bonsai\core\project.py", line 108, in create_project
project.append_all_types_from_template(template)
File "\bonsai\tool\project.py", line 55, in append_all_types_from_template
bpy.ops.bim.select_library_file(filepath=filepath.__str__())
File "\Blender\4.4\scripts\modules\bpy\ops.py", line 109, in __call__
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Converting py args to operator properties:: keyword "filepath" unrecognized
```
2025-03-25 12:00:50 +05:00
Thomas Krijnen
eec8c88e6f
Unique ptrs #6417
2025-03-24 14:09:00 +01:00
shmoodyyy
dd53f9b494
style: keep tab indenting consistency
2025-03-24 13:59:58 +01:00
shmoodyyy
c6e3ac4155
fix: memory leak from missing deletes of raw heap allocations; big issue within create_shape() python lib
2025-03-24 13:59:58 +01:00
Andrej730
4594f596c2
Reuse ImportHelper/ExportHelper everywhere possible for consistency
2025-03-24 17:36:27 +05:00
Andrej730
4f091af935
bim.export_ifccsv - clarify description and title
2025-03-24 17:36:27 +05:00
Andrej730
2f34f997dd
Fix api.alignment missing __all__
2025-03-24 17:36:27 +05:00
Andrej730
1600e00295
Fix clash smart groups selection ( 6660ee3)
...
It was using prop `guid` which doesn't exist , so `by_guid(global_id.guid)` would always fail with some exception.
2025-03-24 17:36:26 +05:00
Andrej730
7a55e837f7
typing
2025-03-24 17:36:26 +05:00
Andrej730
595ee3fa47
Provide descriptions to all operators that use fileselect_add #6420
...
I guess all it takes a persistent Blender crash to fill up operators descriptions 😅
2025-03-24 11:36:40 +05:00
Andrej730
c84f8e55a6
Fix typo
2025-03-24 11:36:40 +05:00
Andrej730
b63d9090a1
black .
2025-03-24 11:36:40 +05:00
Dion Moult
58c7976a5e
See #1227 . Fix regression where new wall system didn't preserve existing dimensions when regenerating geometry for an object that previously didn't have a layerset
2025-03-23 23:55:15 +11:00
Dion Moult
384a74734e
Fix regression in split along edge
...
Aren't tests great
2025-03-23 23:36:19 +11:00
Dion Moult
b269a806eb
Improve description for dev setup
...
Be more dogmatic in the setup to prevent confusion.
2025-03-23 23:31:04 +11:00
Bruno Postle
f43e666583
git colourisation fixes
...
Fix bug where uncommitted changes were not fully colourised in the same
way as diffs. Also try and catch more changes, eg. highlight if a
Products Type has changed.
2025-03-23 12:07:41 +00:00
Dion Moult
26b21ddcb3
Fix #6414 . Allow extracting elements from non-standard IFC schemas.
2025-03-23 22:16:42 +11:00
Dion Moult
f1138d1aac
Fix regression in point cloud loading in refactoring the new item mode.
2025-03-23 21:55:57 +11:00
Dion Moult
51eef295c8
Fix models with crazy contexts (which kills the iterator which is context based)
2025-03-23 21:12:46 +11:00
Massimo Fabbro
212da8b6d6
fix #6271
...
Fix wrong length calculation with Blender Engine for IfcDoor and IfcWindows
2025-03-23 07:40:04 +01:00
Thomas Krijnen
f7163b8db8
schema -> schema_identifier #6414
2025-03-22 19:27:50 +01:00
Ryan Schultz
9ee947b730
a better implementation for #3731 - to round to the nearest foot.
2025-03-22 09:53:15 -05:00
Ryan Schultz
328fb8bc0e
fix #3731 - round to the nearest foot
2025-03-22 09:11:41 -05:00
Bruno Postle
75fe548bb0
Remove zombie method reintroduced in 5830573
...
edit_container_attributes() was deleted in e79a85a , but somehow got
dragged back in
2025-03-22 10:17:41 +00:00
Bruno Postle
5830573cda
Create transform orientation slots ( #6215 )
...
Setting the default container switches to an appropriate orientation
slot if the orientation of this container isn't global. eg. if a building is
rotated, selecting to work in a storey will set the orientation to the
building orientation. Closes #6128
2025-03-22 09:01:54 +00:00
Bruno Postle
775106d0a0
Place drawings on sheets
...
When adding a drawing to a sheet, place to the right of the last drawing
if it fits on the sheet - otherwise start a new row below all existing
drawings.
This means that new drawings are no longer just piled up on top of each
other at the top-left, but it does mean that new rows of drawings are
added below the title box when the sheet is full.
2025-03-21 23:37:30 +00:00
sebjf
25b7003d2d
Issue 6385 - Delete IfcGeom::Elements as soon as possible ( #6411 )
...
* ISSUE #6385 Delete iterator elements as soon as they are moved past
* ISSUE #6385 added loop to destructor to clean up initialised elements not yet disposed of by the iterator
2025-03-21 18:52:40 +01:00
Ryan Schultz
c80c1e9e15
fix #5709 - ensure REFLECTED_PLAN_VIEW camera has (-1,-1,-1) scale.
2025-03-21 10:34:33 -05:00
Andrej730
b5c062415d
ifcsverchok.helper - add debug get_selected_nodes method
2025-03-21 18:39:38 +05:00
Andrej730
a98a7ac856
ifcsverchok - add some sockets descriptions, specify types
2025-03-21 18:39:38 +05:00
Andrej730
ee2b836b84
ifcsverchok - add/update node descriptions
2025-03-21 18:39:38 +05:00
Andrej730
e075c32a5a
typing
2025-03-21 18:39:38 +05:00
Andrej730
a567af370b
ifcsverchok - fix missing socket tooltips
...
apparently `tooltip` property doesn't exist but `description` does
2025-03-21 18:39:38 +05:00
Andrej730
544b61b95a
remove debug print
2025-03-21 18:39:37 +05:00
Thomas Krijnen
45c45d6862
ifcopenshell.geom.serializers.guess_from_extension()
2025-03-21 14:35:47 +01:00
Thomas Krijnen
6880e31a66
Add ColladaSerializer to python bindings
2025-03-21 14:35:23 +01:00
Thomas Krijnen
e327932f4e
Fixes to HierarchyHelper #6365
2025-03-21 13:48:59 +01:00
Andrej730
f2283e5895
Fix Blender 4.4 errors starting some operators #6399 #6396
...
Ping @brunoperdigao just in case.
2025-03-21 12:02:53 +05:00
Dion Moult
ea84f829af
The experimental cutting tool now supports a bisect mode for batch cuts
2025-03-21 16:46:42 +11:00
Dion Moult
3231752fef
Minor fix to clipping planes if there is no camera
2025-03-21 16:46:08 +11:00
Dion Moult
963ba5fc30
See #6404 . See #1227 . Create axis context if it does not exist for walls.
2025-03-21 16:45:29 +11:00
Dion Moult
8e1e0aec79
Fix #6404 . See #1227 . Fix IFC2X3 wall creation with new wall engine.
2025-03-21 16:30:56 +11:00
Thomas Krijnen
9c4ec34de3
Some form of circle handling in loop_to_function_item_upgrade_impl() #6381
2025-03-20 20:57:47 +01:00
Thomas Krijnen
4c2844292e
Apply skew in infra lofts #6386
2025-03-20 16:14:12 +01:00
Sebastian Friston
35fe79dfb2
ISSUE #6328 fix in dispatch_token to avoid missing unknown in logicals
2025-03-20 14:03:07 +01:00
Thomas Krijnen
58a5f881e6
Retrieve length unit info from underlying mapping in iterator #6355
2025-03-20 13:57:30 +01:00
Andrej730
4d5a3ec633
ifcsverchok - ifc.write_file_panel to filter .ifc files
2025-03-20 16:28:49 +05:00
Andrej730
1feb00678c
node.sv_ifc_create_file_refresh - fix LB Out bl_label
2025-03-20 16:28:48 +05:00
Andrej730
f10ebe0166
ifcsverchok - remove debug print
2025-03-20 16:28:48 +05:00
Andrej730
5f8fc1ba8c
node.sv_ifc_tooltip - hide title
2025-03-20 16:28:48 +05:00
Andrej730
f8f36cf2f0
typing
2025-03-20 16:28:48 +05:00
Thomas Krijnen
2a2bfea870
Read settings from argparser
2025-03-20 11:47:14 +01:00
Thomas Krijnen
8bdf8369b5
pyodide demo: install shapely
2025-03-20 10:49:41 +01:00
Thomas Krijnen
2bc230919e
Update publish-pyodide-demo-app.yml
2025-03-20 10:44:08 +01:00
Thomas Krijnen
53fd1284b5
Update wheels #6402
2025-03-20 10:42:27 +01:00
Andrej730
3c777a0b85
Blender 4.4 - fix broken UI lists #6396
...
Example error:
```python
RuntimeError: could not create instance of BIM_UL_containers_manager to call callback function 'filter_items'
2025-03-19:16:13:14,001 ERROR [log.py:69] Uncaught exception
RuntimeError: could not create instance of BIM_UL_containers_manager to call callback function 'draw_item'
```
2025-03-19 16:52:50 +05:00
Thomas Krijnen
fa3c57b016
Implement readable setting type retrieval
2025-03-19 11:42:43 +01:00
Thomas Krijnen
e658b00768
Reinstate old bespoke model-offset/rotation parsing in IfcConvert #6290
2025-03-19 11:42:11 +01:00
Thomas Krijnen
26b55216ca
Normalize model-rotation quaternion
2025-03-19 11:40:54 +01:00
Andrej730
d912012f76
Bonsai makefile - fill last_commit_date
...
Also .isoformat(), so string would match exactly with the one git command provides.
2025-03-19 14:15:21 +05:00
Andrej730
d868d8ceac
Fix missing default value for last_commit_date ( 37ec2bf) #6389
...
Which is needed when Bonsai is not using git
2025-03-19 14:14:36 +05:00
Andrej730
8def5ec30b
Use explicit bl_ui_utils.layout import to fix #6389
...
Also related - https://github.com/nutti/fake-bpy-module/issues/352
2025-03-19 14:14:36 +05:00
Andrej730
ad03a0c8d9
debugging docs - add section about debugging addon
2025-03-18 17:43:38 +05:00
Richard Brice
09a43f1339
get distance along alignment from station
...
New alignment api function to get the horizontal distance along an alignment from a station value
2025-03-17 09:16:35 -07:00
Dion Moult
c176b9d607
See #1227 . Fix bug where unjoin walls didn't recheck the position.
2025-03-18 01:14:06 +11:00
Dion Moult
6cf5cc002e
Fix #6318 . Fix warnings when decorator cannot convert 3D to 2D screen space location.
2025-03-18 01:06:44 +11:00
Andrej730
0abe6329d6
Quantification to consider Pset_ProfileMechanical.MassPerLength #6344
2025-03-17 18:31:58 +05:00
Andrej730
5109168533
quantification fallback - small clarification
2025-03-17 18:31:57 +05:00
Andrej730
0b4deee73f
typing
2025-03-17 18:31:57 +05:00
Andrej730
1f43f7f807
black .
2025-03-17 18:31:57 +05:00
Jesse Roodhorst
73a83c6d4e
Issue #5130 fix + sheet all expand and contract ( #6379 )
2025-03-17 18:28:03 +05:00
Dion Moult
9c5b1a04ff
Fix #6372 . See #1227 . More reliable layer slicing. Always slice in in 2D, not 3D, where possible.
2025-03-18 00:14:56 +11:00
Dion Moult
e67753eb4f
See #1227 . Clear cache when activating drawings.
2025-03-17 23:05:14 +11:00
Andrej730
778a839e5f
get_shape_aspects to consider element's type #6374
...
See diagram in https://github.com/IfcOpenShell/IfcOpenShell/issues/5839#issuecomment-2661296683 when IfcShapeAspect assigned to IfcRepresentationMap instead of being assigned to IfcProductDefinitionShape directly.
2025-03-17 16:38:12 +05:00
Andrej730
102de32737
Fix UI errors in case of uppercase unit names ( 7af6727)
...
IfcConversionBasedUnit's Name is case insenstive and it was producing UI errors.
Noticed working with file from Revit Ryan attached in #6374
Traceback:
Traceback (most recent call last):
File "\bonsai\bim\module\pset\ui.py", line 456, in poll
ObjectMaterialData.load()
File "\bonsai\bim\module\material\data.py", line 167, in load
cls.data["total_thickness"] = cls.total_thickness()
^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\material\data.py", line 331, in total_thickness
return format_distance(thickness, precision=precision, suppress_zero_inches=True, in_unit_length=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\drawing\helper.py", line 157, in format_distance
unit_length = unit_length_mapping[unit_length]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
KeyError: 'FOOT'
2025-03-17 16:38:12 +05:00
Sayan J. Das
cf3a554b15
Fix #5809 : Add safety check during file.write ( #6292 )
...
Co-authored-by: theseyan <sayanjyotidasworkmail@gmai.com >
2025-03-17 16:17:42 +05:00
Andrej730
a8ff6ecf14
Fix object materials UI #6375 ( ba37754)
2025-03-17 15:11:16 +05:00
Andrej730
55be5cc289
get_length, getget_object_main_axis - simplify
...
1) get_object_main_axis - replace branching with just max between dimensions. There is a small caveat that previously for `x,y,z=1,2,2` it would return 'x' but now it returns 'y', but I'm not sure if 'x' was really intended here.
2) get_length - current implementation does the same as get_linear_length
Ping @maxfb87 just in case.
2025-03-17 14:48:22 +05:00
Andrej730
9af00d4e72
typing
2025-03-17 14:27:52 +05:00
Andrej730
d8592a2a95
get_rectangular_perimeter to use get_x again #6364 ( 4260313)
...
Just restoring original behaviour before 4260313 when get_rectangular_perimeter prioritized x dimension.
2025-03-17 14:07:11 +05:00
Andrej730
16ba10f957
Fix UI error when selected object has no material #6371 ( ba37754)
2025-03-17 12:02:34 +05:00
Andrej730
0d1298aac1
Fix #6367
...
ahh, no idea where I picked up this string during refactoring
2025-03-17 11:57:27 +05:00
Andrej730
210257de8e
black .
2025-03-17 11:57:26 +05:00
Ryan Schultz
37ec2bf0e4
add bonsai_commit_date to error report
2025-03-16 20:04:04 -05:00
Sayanjyoti Das
6e7c8ad640
Fix #6362
2025-03-16 23:32:42 +11:00
Dion Moult
bfc4490c97
See #1227 . Implement wall layers in SVG drawings.
2025-03-16 21:43:59 +11:00
Sayanjyoti Das
d50e8060ac
better comments
2025-03-16 17:48:44 +11:00
Sayanjyoti Das
a21939dc0d
fix error
2025-03-16 17:48:44 +11:00
Sayanjyoti Das
8845440edd
fix #6360
2025-03-16 17:47:44 +11:00
Dion Moult
ba37754068
Fix #6310 . See #1227 . Fix regression with layer ordering.
2025-03-16 14:17:37 +11:00
Dion Moult
ed48afc633
Only clip on visible drawing cameras.
2025-03-16 11:53:35 +11:00
Dion Moult
7262a50184
See #1227 . Merging doubles gives more reliable results in bisection fills.
2025-03-16 11:40:30 +11:00
Bruno Perdigão
67b0ab6685
Fix #6366 . Improve extrusion x_angle and direction handling.
...
This solution brings new questions to #5938 .
Currently, we lack a reliable way to calculate the existing x_angle only based solely on the extrusion direction. For example, a 30 degree angled extrusion with positive direction has the same extrusion direction as a -150 degree angled extrusion with negative direction. The difference lies in the object's rotation.
This means that things can get messy if the user changes the object x angle somehow. We may need to explore alternative approaches.
2025-03-15 21:00:57 -03:00
Dion Moult
2941a4ad1a
See #1227 . Recalculate normals and limited dissolve when layerset slicing and generating underside clipping geom.
2025-03-16 10:56:18 +11:00
Dion Moult
b2e2f765ca
See #1227 . Clip based on active camera for legibility of drawings. Needs polish.
2025-03-16 00:23:47 +11:00
Dion Moult
2270185f8c
See #1227 . Drawing decorator now does material-aware fills for everything, and also basic caching.
2025-03-15 22:56:01 +11:00
Dion Moult
faef2df2a6
See #1227 . Basic uncached implementation of visualising wall layers in drawings
2025-03-15 20:56:56 +11:00
Dion Moult
bef7ff33f7
Prevent errors where decorator is still running and there is no camera
2025-03-15 20:54:15 +11:00
Bruno Perdigão
615ca24825
Fix #6363 . Improve how Curves are handled by the snapping system.
2025-03-14 21:43:26 -03:00
Bruno Perdigão
7e42b10159
Snap - Add face normal intersection to ´mix_snap_and_axis´ function.
2025-03-14 21:33:35 -03:00
Richard Brice
04e07db0a3
Import alignment from csv ( #6234 )
...
* Start of the official alignment API
* Import alignment into bonsai model using CSV file
2025-03-14 07:31:50 -07:00
Andrej730
eed47c8c87
Display internal ID in calculator functions description
...
Example - https://i.imgur.com/3C3TBCu.png
2025-03-14 18:35:50 +05:00
Andrej730
9ba3b6a61f
add cgal-original-edges option to settings ( 5599e52)
2025-03-14 18:19:08 +05:00
Andrej730
6cfd15e819
Fix mistake in 64f51d7
2025-03-14 18:19:07 +05:00
Andrej730
e55523ce3e
bim.show_loads - add undo for safety
...
In Blender it's unsafe to leave operators without UNDO options if they edit any ID data-block.
2025-03-14 18:19:07 +05:00
Andrej730
f36830d6dc
bim.show_loads - handle absence of structural items
2025-03-14 18:19:07 +05:00
Andrej730
2f87029434
Use schema_identifier to get IFC4X3 schema more precisely
2025-03-14 18:19:07 +05:00
Andrej730
9f78d9881e
ifcopenshell.util.shape - use refs to functions in docs
2025-03-14 18:19:06 +05:00
Andrej730
1d447e6e23
ifc5d.qto.IfcOpenshell - skip None values
...
Just for consistency, in all other cases besides get_segment_length we were only preserving floats anyway
2025-03-14 18:19:06 +05:00
Andrej730
4c53c2ab1f
ifc5d.qto.IfcOpenShell - get_weight function
...
Added support for it in .json for the same elements that support it in IFC4QtoBaseQuantitiesBlender
2025-03-14 18:19:06 +05:00
Andrej730
86ebc968e5
ifcopenshell.util.element.get_element_mass_density
...
Move it from Blender qto calculator as this method can be generally useful
2025-03-14 18:19:06 +05:00
Andrej730
1de67ffd9c
ifc5d.qto - add x,y,z functions just for consistency with ifcopenshell calculator
2025-03-14 18:19:06 +05:00
Andrej730
1408beeac5
ifc5d.qto.Blender - functions descriptions
2025-03-14 18:19:05 +05:00
Andrej730
791a2e40f1
qto - add note on gross and net functions
2025-03-14 18:19:05 +05:00
Andrej730
3f6a9a55cd
bim.calculate_side_formwork_area - expose to ui
2025-03-14 18:19:05 +05:00
Andrej730
ec702e2ec1
Simple quantity calculator - add operators descriptions
2025-03-14 18:19:05 +05:00
Andrej730
4f6dbbe72b
bim.calculate_single_quantity - ifcopenshell calculator to appear first
2025-03-14 18:19:05 +05:00
Andrej730
8ca344259f
bim.perform_quantity_take_off - support fallback calculator in ifc4x3 too
2025-03-14 18:19:04 +05:00
Andrej730
e038f968f2
bim.calculate_single_quantity - add info message
2025-03-14 18:19:04 +05:00
Andrej730
0e8810c1f5
typing
2025-03-14 18:19:02 +05:00
Andrej730
10ecac33b8
black .
2025-03-14 18:19:02 +05:00
Dion Moult
069b630b16
Minor fix where you'd randomly get incorrect ports connected based on the first birdsong of spring
2025-03-14 14:41:23 +11:00
Bruno Perdigão
8f6cd18288
Add instruction to MeasureFaceArea tool
2025-03-13 21:32:13 -03:00
Bruno Perdigão
7b7108b938
MeasureFaceAreaTool - Fix issue where face with index zero where not being selected
2025-03-13 17:02:40 -03:00
Bruno Perdigão
ebd719783c
black .
2025-03-13 16:56:22 -03:00
Bruno Perdigão
46a31386da
Add "Face Area" option to measure tool. See #6163 .
2025-03-13 16:55:43 -03:00
Bruno Perdigão
c80c7c6d36
Refactor - move mouse_offset from snap.py to raycast.py
2025-03-13 16:55:43 -03:00
Bruno Perdigão
ed7cf248ec
typing
2025-03-13 16:55:43 -03:00
Bruno Perdigão
b40f630783
Refactor - move raycast functions from snap.py to raycast.py
2025-03-13 16:55:37 -03:00
Bruno Perdigão
f99015e123
Polyline tool - move "remove_last_polyline_point" to "handle_inserting_polyline".
2025-03-13 16:54:35 -03:00
Bruno Perdigão
be76d4cb44
Refactor - Update input options display in Polyline tool UI
2025-03-13 16:54:35 -03:00
Bruno Perdigão
6949f9ceae
Refactor - Move filtering logic for snap objects into a separate function
2025-03-13 16:54:35 -03:00
Andrej730
4daf4693f3
selector syntax - note on PredefinedType
2025-03-13 18:43:19 +05:00
Andrej730
edd60a73ca
generate_pset_templates - fix running after ifc4x3 release
...
The error was:
```
Traceback (most recent call last):
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 416, in <module>
templates_generator.parse_ifc4x3_data()
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 94, in parse_ifc4x3_data
self.parse_psets_data("IFC4X3", pset_data_glob, "IFC4X3 Property Set Templates", str(IFC4x3_OUTPUT_PATH))
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 129, in parse_psets_data
schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9037, in schema_by_name
return _ifcopenshell_wrapper.schema_by_name(arg1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: No schema named IFC4X3
```
2025-03-13 18:43:19 +05:00
Andrej730
6c04669543
ifc5d - add ifc4x3 base quantities #6325
2025-03-13 18:43:19 +05:00
Andrej730
4eae112087
not real ifc4x3 quantities, just adding ifc4 quantities for diff
2025-03-13 18:43:18 +05:00
Andrej730
5be076cb96
Reset operator context in 63aada25dd for clarity
2025-03-13 18:43:18 +05:00
Andrej730
ef67d866b6
black .
2025-03-13 18:43:18 +05:00
Dion Moult
609f468ce1
Update failing tests
2025-03-13 22:07:00 +11:00
Dion Moult
3852e3c63f
Add tests for new light rendered shadows feature
2025-03-13 22:06:21 +11:00
Dion Moult
5cb9e1c68d
Minor tweak to UI to make the shadow UI more elegant and reflect IFC style types
2025-03-13 11:09:42 +11:00
Dion Moult
52fbe09dd4
Fix syntax error otherwise nothing loads
...
Also PortData is loaded in the authoring tool and there might not be any
active object (e.g. fresh session).
2025-03-13 11:06:56 +11:00
falken10
4cff2f1fc1
Add traverse_transparent property to control sun light traversal through transparent objects
2025-03-13 10:36:43 +11:00
falken10
6517cafd98
Update add_prop_template.py so the properties are sorted
...
This allows to keep the pset properties sorted for easy access
2025-03-13 10:35:40 +11:00
falken10
5114576457
Update profile.py to add MEPGenerator().setup_ports when the profile has only one segment (no DumbProfileJoiner called)
...
When adding a single duct in MEP no ports where attached.
The function create_profiles_from_polyline does not call DumbProfileJoiner (which eventually calls MEPGenerator().setup_ports).
I have added a check so if there is only one segment, the MEPGenerator().setup_ports is called explictily
2025-03-13 10:35:24 +11:00
falken10
9bafe07c36
Update system.py so two ortogonal arrows (in x and y local) are used for MEP systems decorations
...
Currently the flow direction decorations run in the local Y. This means that if one is creating ducts/pipes in the xy plane, the decorations are drawn in planes perpendicular to that one and than means that the arrows are not visible from a top/bottom view.
By adding another set of arrows perpendicular the arrows are always visible no matter what projection is taken
2025-03-13 10:31:27 +11:00
falken10
6b85e9ec85
Update operator.py
...
This will sort the groups by name so it is easy to find them.
2025-03-13 10:31:06 +11:00
Dion Moult
d89957faab
Fix regression in 227f31574 which prevented quantifications
...
The key in the dictionary is not a class name, it's a query string to
allow for complex quantification rules.
2025-03-13 09:18:07 +11:00
Ryan Schultz
ba8753d55e
Updated docs regarding material selector syntax.
2025-03-12 16:27:48 -05:00
Bruno Perdigão
5df9c45795
Improve weight in snapping for "Plane", "Axis" and "Face" type.
2025-03-12 17:16:47 -03:00
Bruno Perdigão
5cc0aa71c7
Fix issues with snapping empties and faceless objects in x-ray mode.
2025-03-12 17:16:47 -03:00
Bruno Perdigão
b06ddbcad4
Remove duplicate line
2025-03-12 17:16:47 -03:00
Ryan Schultz
18431dec31
added material.item.Material.Name.0 to selector syntax
2025-03-12 14:23:43 -05:00
Bruno Perdigão
7e9985758f
Remove debug print statements.
2025-03-12 11:10:14 -03:00
Andrej730
ece91a94db
util.schema.reassign_class to return early if class already assigned
2025-03-12 18:49:26 +05:00
Andrej730
dccfb634d9
Ports UI - cache instead of accesing IFC on draw calls
2025-03-12 18:49:26 +05:00
Andrej730
ffc6c6a7ad
Zones UI - rearrange button to match the Systems UI layout
2025-03-12 18:49:26 +05:00
Andrej730
dbf4a2a5ed
Fix reassign_class on IFC4X3, use ValueError
...
Use ValueError to make it more specific
2025-03-12 18:49:22 +05:00
Andrej730
f6640d3904
typing
2025-03-12 18:49:22 +05:00
Andrej730
63aada25dd
Deprecate LaunchAddElement, LaunchRenameType
...
TIL that it's possible to set invoke context from draw by changing operator_context property in UILayout 😅
2025-03-12 17:08:41 +05:00
Dion Moult
6596f5bc4b
Fix regressions in MEP joins after switching over to numpy from mathutils
2025-03-12 23:05:34 +11:00
Dion Moult
acdc40fb41
See #1227 . Reimplement extending walls to another wall
2025-03-12 23:05:34 +11:00
Andrej730
9be0a60c0a
github issue templates - use comment blocks for instructions
...
As users sometimes tend not to remove the intsruction messages...
2025-03-12 16:29:13 +05:00
Andrej730
e9a3d06352
Document copy and paste workarounds in docs #6327
2025-03-12 16:13:53 +05:00
Andrej730
dfd30fbcaa
black .
2025-03-12 16:13:52 +05:00
Dion Moult
a941eb3f90
Parametric roof geometry is now whitelisted for IfcSlab.ROOF and IfcCovering.ROOFING too.
2025-03-12 18:47:50 +11:00
Dion Moult
226736eb41
Fix #3357 . Remove Shift-E for parametric objects (superseded by tab) and you can now extend to anything not just slabs.
...
This Shift-E still needs more polish as we figure out the best hotkeys
and what's most natural to users when they select different combinations
of objects, so expect the conditionals that govern when Shift-E does
things to still change in the future.
2025-03-12 18:41:18 +11:00
Dion Moult
f5a1c4aae3
See #1227 . Reimplement extend walls to slab (or anything with negative Z faces)
...
There are a few differences to the previous implementation:
1. It is no longer recalculated on wall regeneration. The new wall
regeneration is strict to the spec on the rules of rel connects path,
and so this being a "userdefined" connection we only calculate it
explicitly when the user invokes the operator.
2. It uses meshes instead of clipping planes, so you can clip to
strange shapes or gable roofs or whatever. Nice.
2025-03-12 18:05:57 +11:00
Bruno Perdigão
a7a4198fc1
Polyline tool - add "dm" and "cm" to the input validation.
2025-03-11 17:10:52 -03:00
Bruno Perdigão
6e0e19d690
See #6130 . Fix issue where aggregate mode where not being disabled.
...
The issue was caused by deleting an object outside the aggregate while in
aggregate mode. The selection for these objects are now disabled to prevent
this issue
2025-03-11 16:58:08 -03:00
Bruno Perdigão
72bbf244f2
Fix issue #6221 where crtl+shift+D were not moving the whole copied aggregate.
2025-03-11 16:33:40 -03:00
Bruno Perdigão
41c1c6e8fa
Fix #6291 .
...
When changing slab `x_angle` the rotation matrix now takes into account object's world matrix.
2025-03-11 16:11:47 -03:00
Bruno Perdigão
a32735ac6a
Small fix after 7af672712f
2025-03-11 14:04:34 -03:00
Bruno Perdigão
031540e982
Add #5496 . Objects from linked ifc files can now be snapped.
2025-03-11 12:37:47 -03:00
Bruno Perdigão
db1d8d938f
Allow dimensions to use custom units from BBIM_Dimension Pset.
...
- Implementation of @theoryshaw PR #5922 .
- Note: `IfcPropertyEnumeration` allows multiple choices, but this is not
applicable for this use case. Users must manually deselect other options;
otherwise, it defaults to the first selected option.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
aa478ab359
Fix area measure tool to display first dimension correctly.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
19c103c627
Fix issue where "C" to close polyline where not updating measurement dimension.
2025-03-11 11:56:16 -03:00
Bruno Perdigão
7af672712f
See #6164 . Allow measure tool to work without IFC Project.
2025-03-11 11:56:08 -03:00
Andrej730
6bd8636c92
Revert "Bump IOS"
...
This reverts commit c1bc36ab86 .
2025-03-11 18:46:38 +05:00
Andrej730
a9f7d4ab3b
get_applicable_types in ifc2x3 to prioritize IfcBuildingElementProxyType
...
for occurrence classes without special type.
E.g. previously:
you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType and change this slab's type element to IfcBeamType. IfcBuildingElementProxyType seems more generic and fitting.
2025-03-11 18:37:24 +05:00
Andrej730
977d814d39
bim.reassign_class - fix issue in ifc2x3 when selected product class would be ignored
...
E.g. you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType (which is confusing too but that's another subject) and change this slab's type object to IfcBeamType which consequently change IfcSlab to IfcBeam instead of IfcRoof that was selected originally.
Noticed investigating #5918
2025-03-11 18:37:23 +05:00
Andrej730
5b95bb37e6
Systems UI - cache active system data
2025-03-11 18:37:23 +05:00
Andrej730
85b9906e20
Zones UI - add buttons for unassigning zone from the active objects
2025-03-11 18:37:23 +05:00
Andrej730
64f51d733e
Fixed version of f3f7939c8b + get_element_zones
2025-03-11 18:37:23 +05:00
Andrej730
ed0b1c5009
typing
2025-03-11 18:37:22 +05:00
Dion Moult
c1bc36ab86
Bump IOS
2025-03-11 21:59:53 +11:00
Dion Moult
9cfcaeb587
Fix bug and add boolean tests where if you added a boolean that fully clipped something you couldn't edit it due to lack of item ids.
2025-03-11 21:14:11 +11:00
Dion Moult
d9e48467cd
Fix bug where removing a boolean didn't unmark it as a manual boolean.
2025-03-11 21:13:04 +11:00
Dion Moult
f08dba6483
Improve debug logs when running BDD tests
...
I've been spoilt by tools like Behat and so this make it much nicer
because it tells you exactly the feature/scenario/step where it failed.
2025-03-11 18:40:00 +11:00
Dion Moult
1e97d2c5fa
See #6307 . Prevent user from manually changing the ifc file path.
...
You can still hover over and copy paste if you want.
2025-03-11 18:38:45 +11:00
Dion Moult
bf54132805
Fix #6307 . Warning: critical bug where saving a file broke undo state.
...
Previously, changing props.ifc_file had an update hook to reload
information about the IFC model. But this isn't always correct because
there are two situations:
1. The ifc_file path changed because you saved the file for the first
time or saved as, and this is merely recording a new saved path of the
existing file object.
2. The ifc_file path changed because the user manually changed it or
selected a new file. This could reference an entirely new file object.
This is dangerous because we can't trust anything anymore, including our
undo history.
So the new default situation is that there is no magic hook. If you
change props.ifc_file, that's all it changes ... just a path stored in
Blender with not much significance.
If the user runs select_ifc_file to explicitly relink the file, it now
explicitly purges in that situation and clears the undo history.
Basically now behaviour is explicit, not using magic hooks.
2025-03-11 18:37:53 +11:00
Dion Moult
570513b60b
Revert "util.get_element_systems to consider all kinds of ifcsystems"
...
This reverts commit f3f7939c8b .
2025-03-11 09:13:48 +11:00
Bruno Postle
e1ba98c5f8
fix loading ifc2x3 project libraries
2025-03-10 21:07:18 +00:00
Andrej730
8ed9c32404
Rename systems and zones from UIList
...
example - https://imgur.com/a/8yTzmy3
2025-03-10 18:52:39 +05:00
Andrej730
5b9ef23bdd
bim.assign_system/unassign_system - add info messages
...
Also check whether element is assignable prior to running system.assign_system to avoid scary exceptions.
2025-03-10 18:52:39 +05:00
Andrej730
f3f7939c8b
util.get_element_systems to consider all kinds of ifcsystems
2025-03-10 18:52:39 +05:00
Andrej730
469b4f3502
Systems UI - move buttons to the header to unclutter UI
2025-03-10 18:52:39 +05:00
Andrej730
c4b57eb903
typing
2025-03-10 18:52:39 +05:00
Andrej730
3886c79a2c
black .
2025-03-10 18:52:39 +05:00
Massimo Fabbro
566fe32ab2
Fix wrong wall legth qto calculation
2025-03-10 23:19:12 +11:00
Dion Moult
7fb6adc025
Fix #6296 . See #1227 . More normal fixes in layer set slicing.
2025-03-10 23:15:24 +11:00
Dion Moult
c03cf4ce58
Fix #6303 . I messed up the commit in 1259607a
2025-03-10 23:06:16 +11:00
Dion Moult
41188e26e1
See #1227 . Don't touch manual booleans when regenerating wall body.
2025-03-10 22:54:42 +11:00
Dion Moult
823f27cd6a
Add tests for new element add feature
2025-03-10 22:53:55 +11:00
Massimo Fabbro
4260313a99
Fix #6271
...
Fix the wrong length calculation for beams and columns
2025-03-10 20:09:10 +11:00
Dion Moult
1259607a9f
See #1227 . Fix slicing normal calculation for AXIS3 elements.
2025-03-10 18:10:05 +11:00
Dion Moult
9f1ffe6381
Minor fix where you shouldn't be able to add an element without an IFC project
2025-03-10 18:08:43 +11:00
Dion Moult
ba1b6b5b10
Fix regression where type thumbnails don't refresh properly from ae76d3253
...
The fix in ae76d3253 removed the refresh_ui_data call, so we need to
handle it a bit better. I also heavily simplified the thumbnail loading.
2025-03-10 18:08:30 +11:00
Dion Moult
2318132ea2
Minor refactor add_constr_type_instance is now add_occurrence
2025-03-10 08:23:56 +11:00
Massimo Fabbro
b6b553e726
Fix #6271
...
Fix a bug about wrong net values qto calculation with IfcOpenshell
2025-03-09 22:48:08 +11:00
Dion Moult
076f39e2d6
I think bSDD should use the Name for the property name. See 115a48f
...
It seems correct according to
https://github.com/buildingSMART/bSDD/blob/master/Documentation/bSDD%20JSON%20import%20model.md
2025-03-09 21:35:20 +11:00
Dion Moult
abfe8ec315
Fix failing IOS tests
2025-03-09 20:47:02 +11:00
Dion Moult
9d7fe179cf
See #1227 . Minor fix of incorrect layerset slicing of negative sense slabs.
2025-03-09 19:29:35 +11:00
Dion Moult
8ffb5c56e4
See #1227 . Fix inconsistent layer UI based on direction sense and minor UI cleanup.
...
The UI here looks suspicious in that logic is occuring in the draw call
instead of the cached data object.
2025-03-09 19:28:47 +11:00
Dion Moult
4109b19c3a
See #1227 . Slightly more defensive to make sure ATPATH is between START and END
2025-03-09 18:31:49 +11:00
theseyan
7503530741
Fix #4807
2025-03-09 18:02:59 +11:00
Dion Moult
e78127d54f
See #1227 . Don't move any child at all when regenerating wall body.
2025-03-09 18:00:13 +11:00
Dion Moult
5fa4f2e79b
See #1227 . Reimplement merge walls with new wall body generation code.
2025-03-09 17:32:19 +11:00
Dion Moult
e5027e0be8
See #1227 . Implement updating of object position.
2025-03-09 08:52:05 +11:00
Dion Moult
af2dd1d7c6
See #1227 . Start to integrate into Bonsai. Basic testing of join/unjoin/extend/split/flip done.
2025-03-09 08:25:32 +11:00
Massimo Fabbro
5d9528d791
Fix #6168 . Now reload link button works
...
It is fixed also an inconsistency problem when use relative path is True
2025-03-08 11:47:43 +01:00
Dion Moult
47d11daa15
See #1227 . Small clean up of old sketch-wall based code which we no longer support.
2025-03-08 11:26:27 +11:00
Dion Moult
01ec750814
See #1227 . New connect wall API function since this can be done generically.
...
This will supersede the butt/mitre join functions we used to have.
2025-03-08 11:25:07 +11:00
Dion Moult
8c9a657a8c
See #1227 . Check layer set direction when slicing.
2025-03-08 11:13:26 +11:00
Bruno Perdigão
48acfad8bb
Fix #6213 . Adjust wall clipping from slabs to account for slab offset and direction sense.
2025-03-07 15:49:32 -03:00
Bruno Perdigão
01b63d87d0
Fix issue with updating slab offset with negative direction sense.
2025-03-07 15:42:09 -03:00
Bruno Perdigão
36744d391e
Fix #6236 . Product preview properties were not being cleared when data is empty.
2025-03-07 14:14:28 -03:00
Andrej730
f0e5430daa
bonsai_translations - allow .po files going out of sync
...
We had Chinese translation for Bonsai and some stub file for German and translation.py generation was failing with the error below. Chinese translation is more recent so it has some keys that German file hadn't and some keys were gone in the more recent version. In theory we should make all .po file in sync but let's skip it for now to keep things going.
```
Traceback (most recent call last):
File "/home/runner/work/IfcOpenShell/IfcOpenShell/src/bonsai/scripts/bonsai_translations.py", line 379, in <module>
update_translations_from_po(po_directory=Path(args.input), translations_module=Path(args.output))
File "/home/runner/work/IfcOpenShell/IfcOpenShell/src/bonsai/scripts/bonsai_translations.py", line 203, in update_translations_from_po
if (msgstr := msg.translations[lang]) in (None, ""):
~~~~~~~~~~~~~~~~^^^^^^
KeyError: 'de_DE'
```
2025-03-07 20:48:44 +05:00
Andrej730
197281eb5a
bonsai_translations - use utf-8 for opening files
...
Critical on Windows as it's not using utf-8 by default
2025-03-07 20:48:44 +05:00
Andrej730
7b370e6142
Fix operators missing execute after a663216
2025-03-07 17:13:00 +05:00
Andrej730
71a7d0c086
Fix missing IfcDistributionCircuit and IfcElectricalCircuit #6202
...
When checking if element is assignable to the system.
2025-03-07 17:12:59 +05:00
Andrej730
b86e735530
Fix breaking Systems UI with IfcElectricalCircuits
2025-03-07 17:12:59 +05:00
Andrej730
46104f5bf5
Update Profiles UI profile editing arbitrary profile #6284
2025-03-07 17:12:59 +05:00
Andrej730
d68068a84b
bim.load_profiles - try not to check all inverses for optimization
2025-03-07 17:12:59 +05:00
Andrej730
fc7dd3b234
Preserve ProfileName editing arbitrary profile #6284
2025-03-07 17:12:59 +05:00
Andrej730
85fc97eb84
Profiles UI - add safety check for missing profiles #6284
...
Example - https://imgur.com/a/bVdV5oB
2025-03-07 17:12:59 +05:00
Andrej730
9076deddbc
Consider ifc2x3 in a358cff1b7 #6255
...
In ifc2x3 position is not optional, so we should reset it's coordinates instead.
2025-03-07 17:12:59 +05:00
Andrej730
eb0d3c38b2
ifcopenshell.util - make ifc_file argument optional if it can be deduced from ifc element
2025-03-07 17:12:59 +05:00
Andrej730
590288496e
typing
2025-03-07 17:12:58 +05:00
Andrej730
269e137ea2
black .
2025-03-07 17:12:58 +05:00
Dion Moult
ed722c6f13
See #1227 . Refactor out test waldo script into API function.
2025-03-07 19:05:24 +11:00
Dion Moult
2b9e3d2a2e
See #1227 . Enable layerset slicing.
2025-03-07 19:03:45 +11:00
Dion Moult
7dee888ecf
See #1227 . New util function in shape builder to do an X axis intersection.
2025-03-07 19:00:18 +11:00
Dion Moult
a67927ae67
Automatically merge excessive styles when loading models
...
Came across this problem with some models from 12D
2025-03-07 17:02:05 +11:00
Dion Moult
1271e4b7e3
New IfcPatch recipe to merge identical styles
2025-03-07 17:01:14 +11:00
Andrej730
a44d0e713a
Bump Blender build and fix dead url
2025-03-06 19:11:46 +05:00
Andrej730
a358cff1b7
Fix extrusion position update on OffsetFromReferenceLine changed #6255
...
Also fixed an issue when previously there was an offset and now it was set to 0 but slab did not reset it's position.
2025-03-06 18:43:54 +05:00
Andrej730
188ca3e402
Fix bim.profiles_ui_select button in profiles set ui
...
It was using IfcMaterialProfile id instead of IfcProfileDef id, so profile was never selected
Example - https://imgur.com/a/Sf1ghPO
2025-03-06 18:43:54 +05:00
Andrej730
b5260d3005
copy_class to prevent duplicating profiles #6261
2025-03-06 18:43:54 +05:00
Andrej730
79940641b2
typing
2025-03-06 18:43:54 +05:00
Andrej730
7458040949
Fix ifcpatch unit conversion for lists of ifc entities #6280
2025-03-06 16:14:02 +05:00
Andrej730
14eb543662
TestConvertFileLengthUnits - add attributes conversion tests
2025-03-06 16:14:02 +05:00
Andrej730
e786687882
ConvertFileLengthUnits - unify tests, add ifc4x3 tests
2025-03-06 16:14:02 +05:00
Andrej730
37e131193b
edit_georeferencing - add note on MapUnit data type
2025-03-06 16:14:02 +05:00
Andrej730
dfb00f27bb
Fix georeferencing docs url
2025-03-06 16:14:02 +05:00
Dion Moult
53dea65d8b
See #1227 . Implement joins for sloped walls.
2025-03-06 19:38:46 +11:00
Andrej730
2c16839de7
Fix parametric stairs/railings/roofs not updating ifc link after representation update #6264
...
Related to 3107fd9
2025-03-05 18:53:57 +05:00
Andrej730
c4f2d556f1
Uncomment use of get_edges_representation_item_ids
...
as build was updated awhile ago
2025-03-05 18:53:57 +05:00
Andrej730
74900193ee
merge_identical_objects to use quicker version of get_info
2025-03-05 18:53:57 +05:00
Andrej730
2987d38a31
append_asset - check unique styles based on their name #6269
2025-03-05 18:53:56 +05:00
Andrej730
08b50bb9ea
Library UI - recognize already appended styles
...
Example - https://i.imgur.com/XCXHY4C.png
Noticed investigating #6269
2025-03-05 18:53:56 +05:00
Andrej730
1257eb0872
append_asset - allow using same name for different ifcpresentationstyle types
...
Since they are not used interchangeably typically.
2025-03-05 18:53:56 +05:00
Andrej730
1c8ef176b1
typing
2025-03-05 18:53:56 +05:00
Andrej730
e1e51cbf26
black .
2025-03-05 18:53:56 +05:00
Andrej730
4c97cc8a41
import_ifc - not to break completely on facing breaking mesh #6270
...
create_mesh returns None only in case if it meets some exception and it prints logs in that case, but atleast some breaking mesh won't be in the way of users trying to open some model
2025-03-05 18:53:09 +05:00
Dion Moult
7c6e124fe9
See #1227 . Basic implementation of sloped walls (joins not yet considered)
2025-03-05 22:10:33 +11:00
Andrej730
3fc312752b
Show an error for unsupport curve types #6259
2025-03-04 18:10:42 +05:00
Andrej730
d0cb5456b3
Fix importing IfcPolylines always assuming they're closed
...
Resolved issue during import in #6259 but doesn't completely resolves the issue.
2025-03-04 18:10:42 +05:00
Andrej730
86072079de
draw_image_for_ifc_profile - optimizations using numpy
2025-03-04 18:10:42 +05:00
Andrej730
9440096106
Fix #6260 after 2f6ae17
2025-03-04 18:10:42 +05:00
Andrej730
649a913bbc
add_profile_representation - add test
2025-03-04 18:10:42 +05:00
Andrej730
53a3afaded
typing
2025-03-04 18:10:41 +05:00
Andrej730
33d3984990
add_profile_representation - reuse util.shape methods
2025-03-04 18:10:41 +05:00
Andrej730
5f86c6d1c2
shape_builder.create_axis2_placement_3d_from_matrix - small optimization
...
create_axis2_placement_3d now is fine with numpy arrays
2025-03-03 13:54:57 +05:00
Andrej730
10d5378ee3
TessellateElements - small optimization
...
tolist() supports conversion of multidimensional arrays too
2025-03-03 13:54:57 +05:00
Andrej730
7f27785927
docs fixes
...
1) material.add_profile_set doesn't exist
2) usecase.file is not defined, use `model` instead`
3) Specify material for material.assign_material
2025-03-03 13:54:57 +05:00
Andrej730
fed063a0c6
edit_profile_usage - add test
2025-03-03 13:54:56 +05:00
Andrej730
855062e36b
Quick to select profile from BIM Tool in Profile UI
...
Example - https://imgur.com/a/tJdQUGq
2025-03-03 13:54:56 +05:00
Andrej730
7b74b6c68f
Simplify edit_profile_usage with util.shape
2025-03-03 13:54:56 +05:00
Andrej730
a01278aa8d
ifcopenshell.util.shape to return Python floats if return is just a scalar
2025-03-03 13:54:56 +05:00
Ryan Schultz
99c49736fa
small tweak
2025-03-02 10:31:46 -06:00
Bruno Postle
c1efdbb8ea
black .
2025-03-02 11:37:52 +00:00
Bruno Postle
e240ae2669
Fix bpy.ops.bim.select_by_material() for layersets
...
This operator assumes all material definitions have a Name attribute,
mostly they do except that Material Layer Sets have a LayerSetName
attribute for reasons.
2025-03-02 11:24:07 +00:00
Ryan Schultz
945099b817
Set IfcMaterialLayerSetUsage's DirectionSense/OffsetFromReferenceLine/ReferenceExtent on all selected objects
2025-03-01 18:04:41 -06:00
Bruno Perdigão
f4b0fe6560
Polyline tool - Fix issue where Y and Z axis lock were inverted when in YZ plane.
2025-02-28 13:52:20 -03:00
Bruno Perdigão
efc6842a9d
Improve snapping for empty objects.
2025-02-28 13:44:00 -03:00
Bruno Perdigão
43931e951e
Fix another issue (follows 2609a8293c) with walls created with obtuse x_angle.
2025-02-28 13:19:51 -03:00
Bruno Perdigão
134a480b03
Fix slab preview decorator when using obtuse x_angle.
2025-02-28 13:02:02 -03:00
Bruno Perdigão
0eb32ed7b7
Refactor ChangeExtrusionXAngle to support obtuse x_angle for slabs.
...
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition. This is challenging because
there are a few features that interact with each other to create slabs,
like `depth`, `direction_sense`, `offset` and `x_angle`. In addition,
these interactions can happen in different parts of the code. This
commit addresses `ChangeExtrusionXAngle` in `model/wall.py`.
See e8e88c25fdcef55826443fe6b000aec1baa6f25a for more information.
2025-02-28 13:02:02 -03:00
Bruno Perdigão
1855ac421c
Refactor slab addition to support obtuse x_angle. See #5938
...
To support obtuse x_angle a refactoring had to be made, which helped
improve the general code for slab addition.
This is challenging because there are a few features that interact
with each other to create slabs, like `depth`, `direction_sense`, `offset`
and `x_angle`. In addition, these interactions can happen in different parts
of the code. This refactor improves the coherence between those different parts.
Files changed:
- `api/geometry/add_slab_representation.py`
- `model/slab.py` - inside the function `change_thickness()`
File to be changed in a following commit:
- `model/wall.py` - inside the operator `ChangeExtrusionXAngle` - To-do
2025-02-28 13:02:02 -03:00
Bruno Perdigão
7a69d6f20e
Fix issue when updating wall x_angle with obtuse angle. See #5938
2025-02-28 13:02:02 -03:00
Bruno Perdigão
2609a8293c
Fix issue where walls are created with obtuse x_angle. See #5938
2025-02-28 13:02:02 -03:00
Bruno Perdigão
e68c47a897
Remove code related to 0104a2cc9f
2025-02-28 13:02:02 -03:00
Andrej730
06fa2b05d6
Fix #6245 after 17642ca
2025-02-28 18:31:14 +05:00
Andrej730
db52e70121
Fix possibility of adding new invalid surface styles
...
1) Add default values for new IfcSurfaceStyleLighting so they won't appear invalid.
2) Temporarily disable starting surface style with a texture style since it requires additional texture UI to be exposed or some default texture to be assigned to keep it valid.
2025-02-28 18:31:14 +05:00
Andrej730
c81fe97cc2
Fix bim.change_cardinal_point breaking if one of objects had no material
2025-02-28 18:31:13 +05:00
Andrej730
b9f4503206
Paramteric doors/windows - detect previously assigned materials when editing is enabled
...
Example - https://imgur.com/a/FEbSBaX
2025-02-28 18:31:13 +05:00
Andrej730
bd4dc501a2
Pamateric doors/windows - add material select shortcut to UI
...
Example - https://i.imgur.com/UfJTjGz.png
2025-02-28 18:31:13 +05:00
Andrej730
8d1255f0bc
Fix toggling wireframe for odd case when there are no objects linked
...
Noticed investigating #6242
2025-02-28 18:31:13 +05:00
Andrej730
cc7abe6a8d
Fix error applying blender offset to read-only matrix (e.g. during linking)
...
Example:
```
File "\bonsai\bim\module\project\operator.py", line 1815, in execute
self.process_occurrence(shape)
File "\bonsai\bim\module\project\operator.py", line 1952, in process_occurrence
obj.matrix_world = tool.Loader.apply_blender_offset_to_matrix_world(obj, mat)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\tool\loader.py", line 952, in apply_blender_offset_to_matrix_world
matrix[0][3] = offset_xyz[0]
~~~~~~~~~^^^
ValueError: assignment destination is read-only
```
Noticed investigating #6242
2025-02-28 18:31:12 +05:00
Andrej730
edfcc3f74b
ifc2sql - change default database name to match default sql_type
...
Co-Authored-By: bsmithuk <68438529+bsmithuk@users.noreply.github.com >
2025-02-28 18:31:12 +05:00
Andrej730
b1c87b1eb4
Set tools hotkeys name to empty string to hide it from tooltip #6238
2025-02-28 18:31:12 +05:00
Andrej730
d37bda6871
cad operators - add descriptions #6238
2025-02-28 18:31:12 +05:00
Andrej730
bb0d156bbf
cad operators - use Blender units for props
2025-02-28 18:31:12 +05:00
Andrej730
b89ffcb6d0
SplitByBuildingStorey - ensure user won't pass a file by accident
2025-02-28 18:31:12 +05:00
Andrej730
323967b9fd
Fix ifc2sql test after 9055f14bb9
2025-02-28 18:31:11 +05:00
Andrej730
4dd10b16e6
SplitByBuildingStorey - Bonsai to recognize filepath argument after cac3d7f
2025-02-28 18:31:11 +05:00
Andrej730
15a0d43180
fix for glob pattern in 62d53ba62d
2025-02-28 18:31:11 +05:00
Andrej730
5a1f7000ec
ifcpatch - add simple test for docs generator
2025-02-28 18:31:11 +05:00
Andrej730
277aaca6c5
typing
2025-02-28 18:31:10 +05:00
Andrej730
9187f2d2b5
Bonsai patcher - small fix for cases when Blender restarts
2025-02-28 18:31:10 +05:00
Andrej730
62d53ba62d
Bonsai - recognize ifc2sql database argument as filepath #6227
2025-02-27 18:35:43 +05:00
Andrej730
9055f14bb9
Ifc2Sql - hide IFC output argument as there's already database argument #6227
...
Also handle directory paths more gracefully.
2025-02-27 18:35:43 +05:00
Andrej730
0bd608b6cb
Bonsai - ifcpatch description to include arguments descriptions
...
Also fix a bug with broken patch descriptions if some argument had more than one line for the description.
Example - https://i.imgur.com/1syL4gJ.png
Notcied working on #6227
2025-02-27 18:35:43 +05:00
Andrej730
497542d7a0
ifc2sql - small optimizations
2025-02-27 18:35:43 +05:00
Andrej730
26b2a7d584
typing
2025-02-27 18:35:43 +05:00
Andrej730
2d0bd9782a
Reuse tool.Blender.add_layout_hotkey_operator
...
Now all tools are using a general method and it should be easier to maintain the consistency between the tools.
Fixes #6238 .
ping @trhyder just in case
2025-02-26 17:55:15 +05:00
Andrej730
746a61a199
Add tool.Blender.KEY_MODIFIERS instead of storing it at workspaces
2025-02-26 17:55:15 +05:00
Andrej730
24df52e2f7
Do not purge orphaned IfcDocumentReferences #6117
2025-02-26 17:55:14 +05:00
Andrej730
257f0b11f5
Fix typo
2025-02-26 17:55:13 +05:00
Andrej730
b4f2039367
Fix bim.purge_unused_openings poll
...
It was returning true regardless whether tool.Geometry.has_openings returned True or not.
2025-02-26 17:55:13 +05:00
Dion Moult
cfb7d026d1
IfcPatch recipe for Revit 2025 TINs import workaround
...
To understand what's going on, please read the docstring. Then please
take as much alcohol required to erase that memory.
2025-02-26 18:13:29 +11:00
Dion Moult
34acd6de35
See #1227 . Implement ATPATH wall connections (going both ways).
2025-02-26 18:13:29 +11:00
Dion Moult
0f3de599a6
Don't break if no area unit defined
2025-02-26 18:13:28 +11:00
Bruno Perdigão
0104a2cc9f
Remove polyline wall size limit restriction. See #6162
2025-02-25 18:06:42 -03:00
Bruno Perdigão
81f4b08b6d
Fix issue where long lines where not being detected by the snapping system.
2025-02-25 18:06:42 -03:00
Bruno Perdigão
10776b7de8
Remove debug print statement
2025-02-25 18:06:42 -03:00
Bruno Perdigão
b0efb648f2
Make snapping system zoom-dependent. See #6162
...
Refactor the snapping system to better organize the weighting and ordering
of snap distances. This change enhances the "stickiness" of snapping points,
allowing for prioritized control over different types of snapping points.
2025-02-25 18:06:42 -03:00
Andrej730
a20a8a68a6
Smal UI fix - display "Types" instead of "Typess"
2025-02-25 18:32:47 +05:00
Andrej730
f8ec8402fe
Remove test for deprecator operator ( c85eb79)
2025-02-25 18:28:48 +05:00
Andrej730
aaf008f007
Fix adding transom to door #6230 ( d23cfcb)
2025-02-25 18:28:48 +05:00
Andrej730
f63d6b80c5
quantitifaction - not to add empty qto if nothing was quantified
...
It already works that way for ifcopenshell quantitification, making it work the same for Blender quantifications.
Noticed in #6220
2025-02-25 18:28:48 +05:00
Andrej730
2f6ae1745f
typing
2025-02-25 18:28:48 +05:00
Andrej730
5f4098e5d4
Update type_elements_filtered on changing ifc class
...
Needed after 1d815cdb67
2025-02-25 18:28:47 +05:00
Andrej730
b49cc6c5e9
AuthoringData.data["relating_type_data"]
...
Simplify lots of data keys to just one dictionary relating_type_data, so it will be easier to maintain it and update if needed.
2025-02-25 18:28:47 +05:00
Andrej730
dcc681ac74
Revert a428169 to avoid constant reload of cached data
...
The code was recalculating type_elements and relating_type_id every time Blender trying to check enum items.
Couldn't replicate issue when type duplicated, perhaps it's resolved some other way already.
2025-02-25 18:28:47 +05:00
Thomas Krijnen
240c78c12a
Update IfcHierarchyHelper.h
2025-02-25 14:18:10 +01:00
Andrej730
6de409031e
Fix #6222
...
Mentioned in #6223
2025-02-25 14:21:01 +05:00
Bruno Perdigão
ea274588b0
See #6214 . Fix how extrusion existing angle is calculated.
...
The issue happen when the layer has a negative direction sense.
2025-02-24 20:46:37 -03:00
Bruno Perdigão
e46e1512fa
Fix #6160 where axis snapping in polyline tool were not working consistently
2025-02-24 20:46:26 -03:00
Thomas Krijnen
70182d943d
Update build_osx.yml
2025-02-24 17:11:01 +01:00
Andrej730
0bd4451ce9
Fix issue not cleaning up the mesh after 76277c35d2
2025-02-24 19:31:36 +05:00
Andrej730
899ada0019
Fix purge unused types test after 3bb4243
2025-02-24 18:52:35 +05:00
Andrej730
f6ae711f6c
Fix feature tests failing due to AuthoringData changes
...
relating_type_id now relies on type_elements which relies on ifc_class_current and they wasn't updated when ifc_class was changed.
Typical failing test looked like "TypeError: bpy_struct: item.attr = val: expected a string enum, not int".
2025-02-24 18:52:35 +05:00
Andrej730
1d815cdb67
Fix issue reloading AuthoringData from workspace at every draw call
...
If data was already loaded for BIMTool ("all") this ` elif ifc_element_type == "all" and AuthoringData.data["ifc_element_type"] is not None:` would always fail and this `AuthoringData.data["ifc_element_type"] != ifc_element_type` would always result to True, constantly recalculating data on every draw call.
This may uncover some issues that were hidden by the constant update (e.g. the bug fixed in the next commit).
Simplified it so now ifc_element_type is almost always referring to either ifc class or None. It's still using "all" in the BIMTool itself but then it's converted to None when passed to draw methods.
2025-02-24 18:52:35 +05:00
Andrej730
ce6339869d
Fix some feature tests
2025-02-24 18:52:35 +05:00
Andrej730
5eb9cb2ee4
len(get_inverse) -> get_total_inverses
2025-02-24 18:52:35 +05:00
Andrej730
6eda4e389c
typing
2025-02-24 18:52:34 +05:00
Andrej730
0783f8082e
black .
2025-02-24 18:52:34 +05:00
Thomas Krijnen
3854afb34d
Update build-all.py; --force when fetch tags
2025-02-24 14:01:48 +01:00
Thomas Krijnen
0b2321f478
Add template keyword
2025-02-24 13:33:53 +01:00
Thomas Krijnen
5510fb1e3c
Add constexpr
2025-02-24 13:30:45 +01:00
Thomas Krijnen
7331f7361f
Workaround explicit in-class specialization to if constexpr #6206
2025-02-24 13:30:24 +01:00
Andrej730
e06684e274
Comment out outdated code #6200
2025-02-24 16:46:32 +05:00
Andrej730
57d6e9b544
Fix error reassigning class for structural items
2025-02-24 15:15:54 +05:00
Andrej730
5fa0aa03e4
util.schema.is_a - use c++ implementation
2025-02-24 15:15:54 +05:00
Andrej730
1d2ac9426d
Fix error during class reassignment after 43cc7a0
2025-02-24 15:15:54 +05:00
Andrej730
e79a85a4fd
bim.edit_container_attributes - remove deprecated operator
...
Currently you can edit container name directly from spatial manager, so this operator is no longer needed (and it also was missing from UI either way).
2025-02-24 15:15:54 +05:00
Andrej730
076a6c152d
fix typo
2025-02-24 15:15:54 +05:00
Andrej730
76277c35d2
Fix for 365393aa07
...
ahh, forgot that representation is already removed at this point
2025-02-24 15:01:00 +05:00
Thomas Krijnen
a81b4a7dbb
Create build_all.yml
2025-02-24 10:30:49 +01:00
Andrej730
ee8a3927b4
Fix displaying some attr types names after e8cb9e7 #6216
2025-02-24 14:20:49 +05:00
Andrej730
365393aa07
Fix #6209 after 67bac44
2025-02-24 14:01:24 +05:00
Thomas Krijnen
9289e1d0cc
Try catch to keep the people happy #6176
2025-02-23 15:50:31 +01:00
Thomas Krijnen
c30b5cbc08
Add std::array typemap #6137 #6191 #6196
2025-02-23 15:22:36 +01:00
Thomas Krijnen
9736345d79
Test case #6173
2025-02-23 14:46:31 +01:00
Thomas Krijnen
5599e52184
Option to retain original edges in cgal for non-boolean non-face-with-voids inputs #6173
2025-02-23 14:46:10 +01:00
Thomas Krijnen
ce26af5a7e
Use ProfileType in mapping #6175
2025-02-23 11:01:17 +01:00
Dion Moult
973c9e2ec9
See #1227 . Implement axis updating for new wall join code.
2025-02-23 18:59:17 +11:00
Dion Moult
29a890662e
See #6201 . Another typing regression fix.
2025-02-23 18:30:58 +11:00
Dion Moult
b42c3ba8c2
See #1227 . Wall layer test script now supports atstart/atend combo test cases and materials.
2025-02-23 17:28:14 +11:00
Dion Moult
a7509dbe29
See #1227 . Experimental support for 3D layerset slicing.
2025-02-23 17:27:32 +11:00
Dion Moult
23158b1b7e
Fix #6201 . Regression in creating drawings due to typing in 67bac441ad
2025-02-23 12:02:50 +11:00
Richard Brice
8c16f394c1
Updates alignment api
...
Fixes mapping of vertical alignment parabola business logic to geometry. Adds creation function of h and v alignment. Adds stationing referent at start of alignment. Fixes utility functions
2025-02-22 16:16:59 -08:00
Richard Brice
12f8a1f769
Adds utility to stringize station values
2025-02-22 16:15:00 -08:00
Richard Brice
7ffd2742d6
Fixes bug mapping geometry for IfcSectionedSolidHorizontal that was introduced in 26ba761
2025-02-22 16:11:10 -08:00
Richard Brice
6429fe34ed
Implements IfcHierarchyHelper.addRelatedObject for IfcRelDefinesByType
2025-02-22 16:11:06 -08:00
Jonas Frei
d38f56e82d
fix: bug in initialization of gltf serialiser fixed
2025-02-22 15:31:45 +01:00
Dion Moult
c549dea943
See #1227 . Test script for priority-aware wall layer joins.
2025-02-22 20:01:17 +11:00
Andrej730
894c05e138
Fix old typo in 686f4a0
2025-02-21 18:45:23 +05:00
Andrej730
92c2fc0b7f
Fix errors regarding added PredefinedType to IfcAnnotations in IFC4X3 #6200
...
In IFC4X3 IfcAnnotation now has PredefinedType and checking ObjectType isn't enough.
2025-02-21 18:45:23 +05:00
Andrej730
ee2fa739bb
remove_deep2 - fix traversing same element twice
...
(I hope I don't miss anything, no tests seem to fail and performance is increased significantly) but because `subelement_queue` initiated with the `traverse` all `element`'s subelements will be traversed inside `while` loop twice - once as a part of initial queue and another time when `element` is traversed inside the loop and all those elements added to the queue again.
Now we just initiate the `queue` with the `element` and it will be traversed inside the loop like any other element.
2025-02-21 18:45:12 +05:00
Andrej730
f7efbe5924
remove_representation - optimizations
...
1) `do_not_delete` performs best when it's set
2) also_consider when `element` related elements go first, so there will be no need to traverse all other elements to see if they cover `element`'s inverses.
2025-02-21 18:45:11 +05:00
Andrej730
6e20ee9fea
remove_deep2 - also_considered_inverses optimization
...
1) replaced walk with traverse(max_levels=1)
2) early return if there total_inverses == 0
3) early return if also_considered_inverses is enough to cover total_inverses
2025-02-21 18:45:11 +05:00
Andrej730
e6d3396630
typing
2025-02-21 18:45:11 +05:00
Andrej730
cf1647a451
Fix bugs in 17642ca4e9
2025-02-21 17:31:33 +05:00
Andrej730
69535c53e0
Fix typo in 4bb32b252d #6199
...
ahh
2025-02-21 17:31:33 +05:00
Bruno Perdigão
fed8c21625
Polyline tool - Improves the preview fix for #6083 by avoiding overlapping edges.
2025-02-20 22:52:42 -03:00
Bruno Perdigão
0f92c2d26b
Fix #6161
...
Error - cannot access local variable 'snap_point'
2025-02-20 22:21:44 -03:00
Bruno Perdigão
c11060b46a
Fix #6185 issue when trying to create a slab with only two points.
2025-02-20 21:13:39 -03:00
Bruno Perdigão
9f0d408e79
See #6190 . Polyline tool support for XZ and YZ planes for profiles.
2025-02-20 18:46:23 -03:00
Bruno Perdigão
d37baa4e0c
Fix calculation for polyline tool when working with X, Y and Z.
2025-02-20 18:22:10 -03:00
Bruno Perdigão
ae4f125371
Fix auto-angle snapping in polyline tools.
...
When locked to a plane, the mouse will be loosely locked to and angle
that is divided by 15 degrees. This was not working properly for "XZ"
and "YZ" planes.
2025-02-20 18:22:10 -03:00
Andrej730
25d8fff5fd
remove_representation - small optimizations
...
check schema version instead of accessing attribute directly (hasattr under the hood is just doing getattr and checking whether it returns AttributeError), so one less IFC access
Similar thing with element.Item to access IFC just once.
2025-02-20 19:12:24 +05:00
Andrej730
331f491d50
typing
2025-02-20 19:12:24 +05:00
Dion Moult
b19ece18c6
Fix minor regression in linking models due to new tool call.
2025-02-20 23:21:59 +11:00
Andrej730
abddc739fe
Fix UI for 4bb32b252d
2025-02-20 17:19:31 +05:00
Andrej730
174f909137
Fix #6192
2025-02-20 17:01:12 +05:00
Andrej730
a826115803
Project Library UI - allow expanding libraries hierarchy even if there are no assets yet
2025-02-20 14:33:00 +05:00
Andrej730
79abbad796
Project Library UI - fix library asset count not considering assets from sublibraries
...
As a result if all elements were assigned to sublibrary, it was showing that library itself has 0 assets and wasn't allowing to expand to see the sublibraries.
2025-02-20 14:33:00 +05:00
Andrej730
04a20b5c80
small fix for 4bb32b252d
2025-02-20 14:33:00 +05:00
Dion Moult
f4d101788d
Fix insane bug when replacing element that looped through every single element.
2025-02-20 19:18:35 +11:00
Andrej730
4bb32b252d
IFC Delete - add logs to system console
...
In some cases deletion can take ages, so there should be at least some way for user to find out how it's going.
2025-02-19 18:31:30 +05:00
Andrej730
8b92b28dfc
should_clean_mesh - add description
2025-02-19 18:31:09 +05:00
Andrej730
43cc7a0304
Replace direct access to IfcStore with tool.Ifc
2025-02-19 18:31:07 +05:00
Andrej730
67bac441ad
typing
2025-02-19 18:31:06 +05:00
Andrej730
6c511f6b1b
Project library UI - fix missing elements added to parent libraries
...
Previously if there was library A and it had sublibrary B and then some element were directly assigned to library A, UI still wouldn't show this element and would show only elements assigned to the B, the last library in the hierarchy
2025-02-19 17:53:59 +05:00
Dion Moult
deb0a46acb
Fix #6186 . Don't hide filter UI if there are no results.
2025-02-19 17:52:34 +11:00
Dion Moult
ee0599e263
Fix #6136 . Allow setting of custom tmp dir, useful for packaged envs like flatpak
2025-02-19 17:44:48 +11:00
Dion Moult
a8efd53d6b
Fix #6182 . For convenience, precalculate scale value for projected CRS map unit map conversion
2025-02-19 16:41:20 +11:00
Dion Moult
02f0c92a41
Fix bug where updating the null value on an enum property would lead to infinite recursion
2025-02-19 16:39:24 +11:00
Bruno Perdigão
f11e09c7d8
See #6121 . Area measurement tool now uses IFC area unit.
2025-02-18 19:37:22 -03:00
Richard Brice
bb1e00e474
Fixes problems mapping vertical alignment segments business logic to geometry
2025-02-18 12:43:11 -08:00
Andrej730
4efb79e472
fix missing get_spline_points in add_representation
2025-02-18 18:50:35 +05:00
Andrej730
527e0f3dbf
set_element_value - fix error for Python 3.9
...
types.EllipsisType was added only in 3.10
2025-02-18 18:50:35 +05:00
Andrej730
8ea3142451
Fix errors removing layers/constituents after eeac0a2
2025-02-18 18:50:35 +05:00
Andrej730
a68cb74699
ifcopenshell.alignment - fix error in Python 3.9
...
match statement was added only in Python 3.10
2025-02-18 18:50:35 +05:00
Andrej730
17642ca4e9
typing
2025-02-18 18:50:34 +05:00
Andrej730
83a351b1c7
black .
2025-02-18 18:50:33 +05:00
Dion Moult
37baa7a57b
Fix #5845 . Allow non GRAPH_VIEW reference representations. Apparently it's a thing in the docs.
...
If anybody can explain to me how Reference is meant to be used (the
example in the docs is really ambiguous) please do :)
2025-02-18 20:45:05 +11:00
Dion Moult
7ca2c043b5
Fix #6179 . Allow searching for materials in parametric object UI.
2025-02-18 20:37:50 +11:00
Dion Moult
1e3ddce5c2
Fix #6174 . Accommodate invalid index maps, and also implement an early return for single colours.
...
A single colour index map is a waste but some IFCs have it apparently.
2025-02-18 18:39:22 +11:00
Dion Moult
c79020aeab
See #5888 . Debugging undos is hard, so include the operator name in the event log.
2025-02-18 16:31:36 +11:00
Dion Moult
645298e9d6
See #5888 . Fix crash due to improper modal undo handling. It now considers both FINISH and CANCELLED states.
2025-02-18 16:30:27 +11:00
Dion Moult
ae76d3253d
See #5888 . Fix bug where loading type thumbnails made undo history not synced with Blender.
...
If a tool.Ifc.Operator updates a prop, the prop update function will
only call _after_ the operator finishes (and therefore adds an undo step
to the undo stack). If the prop update function then calls another
tool.Ifc.Operator, that will result in another "top-level" operator
call. This second operator _won't_ get added to Blender's undo history,
yet the Bonsai history / IfcOpenShell history will have another undo
step added. Yikes!
TL;DR don't call tool.Ifc.Operator from a prop update function.
2025-02-18 16:27:53 +11:00
Bruno Perdigão
693f7c5397
Fix #6119
2025-02-17 18:03:25 -03:00
Bruno Perdigão
a8960957c0
Fix #6083
2025-02-17 17:09:13 -03:00
Bruno Perdigão
c609aea1de
Black .
2025-02-17 16:46:58 -03:00
Bruno Perdigão
247bff4075
Polyline tool initial support for custom transformations.
...
Still early development. Only works for XY plane.
https://imgur.com/a/qW8gMFW
2025-02-17 16:46:58 -03:00
Bruno Perdigão
5a3a032fe6
Snap - modify intersection plane origin to be related to the view location.
2025-02-17 16:46:58 -03:00
Andrej730
5d8c2f2ec2
deprecate test-safe #5192
2025-02-17 17:58:45 +05:00
Andrej730
93ee92c401
Profiles, Materials UI - indicate in UI currently edited element
2025-02-17 17:58:45 +05:00
Andrej730
8c2d71b306
Rename library references from UI
...
Example - https://imgur.com/a/Ez99d1N
2025-02-17 17:58:45 +05:00
Andrej730
8f1446bfa4
Library UI - rename assets and libraries from UI
...
Example - https://imgur.com/a/0kcQrb2
2025-02-17 17:58:45 +05:00
Andrej730
32608ff194
py -m ifcopenshell.validate to use argparse
...
So command would fail if no arguments provided and there would hints on how to use it.
2025-02-17 17:58:45 +05:00
Andrej730
b0fbea60ae
typing
2025-02-17 17:58:44 +05:00
Dion Moult
8f261be338
See #5839 . More accurately consider the relating product definition when checking for shape aspects.
2025-02-16 17:08:55 +11:00
Dion Moult
42e184c936
Fix #5839 . Appending an asset now also considers shape aspects.
2025-02-16 17:08:34 +11:00
Dion Moult
e0a93626a5
Fix #6038 . Standardardise passing around as_posix() paths
2025-02-16 16:17:18 +11:00
Dion Moult
aaa4be1a94
Fix #5691 . UI tweak to show less colour, more text for usability.
2025-02-16 15:54:28 +11:00
Dion Moult
9f453d54d8
Piles should also default to vertical, just like columns
2025-02-16 15:43:03 +11:00
Dion Moult
b226a79ee8
See #5888 . Fix bug where polyline tools weren't part of the undo system.
2025-02-16 11:48:51 +11:00
Dion Moult
774a770c48
Purge usage of mathutils in grid API functions
...
The only thing left is add_representation which is Blender specific
anyway and is slowly being refactored out.
2025-02-16 08:20:59 +11:00
Dion Moult
aff90e89f7
Don't burn CPU cycles for updating parametric windows
2025-02-16 07:47:03 +11:00
Dion Moult
aad4dad9a7
Migrate documentation for IfcTester and make optional deps mandatory in PyPI
...
I don't like this, but PyPI makes it really, really hard to "discover"
optional deps and what they're used for. So it's just easier to make it
a mandatory dependency and advanced users can always strip it out. This
stops user reports about "it doesn't work out of the box I only did pip
install ifctester"
2025-02-16 07:46:22 +11:00
Dion Moult
6ac6f13018
Fix #5824 . Prioritise 3D over 2D. Only then consider subcontexts.
...
It's unexpected in our 3D default viewing world to have 2D first over
3D.
2025-02-15 19:03:52 +11:00
Dion Moult
d23cfcb2cf
Fix #2981 . Standard case windows can now have different materials and implement shape aspects.
2025-02-15 18:31:25 +11:00
Dion Moult
71668fbaf1
Only switch representation once when creating a door
...
Previously it would switch representation (and sync changes) every
single time a new representation was created (in the
replace_obj_ifc_representation function). I think this is misplaced
responsibility. The function should change the representation, but not
be responsible for switching.
2025-02-15 18:29:13 +11:00
Dion Moult
81b7f3dc30
New API function to set shape aspect constituents
2025-02-15 18:26:13 +11:00
Dion Moult
a0fa861b92
Shape builder can now created triangulated face sets
2025-02-15 16:10:12 +11:00
Dion Moult
a63c8e1d70
Don't burn CPU cycles recalculating the door every draw call in parametric door interface
2025-02-15 16:09:26 +11:00
Andrej730
3e1d1bf7fa
Library UI - tree view
...
Example of tree view with libraries hierarchy - https://imgur.com/a/zPuaoPv
Example of library assignment in non-tree view - https://imgur.com/a/9kZFblj
2025-02-14 17:51:47 +05:00
Andrej730
20e1fc2618
Fix bug in get_container not passing specified ifc_class to the parent #6155
2025-02-14 17:49:51 +05:00
Andrej730
1014487d82
black .
2025-02-14 17:49:47 +05:00
Dion Moult
3832077d0f
Fix recent regression where util.shape.get_vertices returns a read-only array, so you can't edit in place (e.g. for offsets)
2025-02-14 13:06:09 +11:00
Bruno Perdigão
768bf17b05
Small fix in snap.
2025-02-13 18:26:44 -03:00
Bruno Perdigão
fb4ad5290f
Fix mix_snap_and_axis() to ignore intersection too close from polyline.
...
Follows 5fe87bf5aa
2025-02-13 17:20:10 -03:00
Bruno Perdigão
f20bdd0ab6
Fix issue where detected snap vector where being changed by other function.
...
It was probably a reference issue. Copying the vectors solved the issue.
2025-02-13 16:49:37 -03:00
Bruno Perdigão
5fe87bf5aa
Modify mix_snap_and_axis() to select the snapping point closest to the last point.
2025-02-13 14:51:40 -03:00
Bruno Perdigão
c23a20df84
Small fix
2025-02-13 14:51:40 -03:00
Bruno Perdigão
b87cd33b12
Polyline tool a snapping system small refactor.
2025-02-13 14:51:40 -03:00
Bruno Perdigão
8acd5321b0
Fix polyline tool angle lock when using XZ and YZ plane
2025-02-13 14:51:39 -03:00
Bruno Perdigão
1165ef3f33
More refactor of the snapping system, after 7e239ac511e991fd8ccf32add878024d921db38b
2025-02-13 14:51:39 -03:00
Bruno Perdigão
2b7108a1d8
Refactor snapping points data structure.
2025-02-13 14:51:39 -03:00
Bruno Perdigão
33d9e050ec
Fix #6123
2025-02-13 14:51:39 -03:00
Andrej730
b88fd964bc
bim.refresh_library - add missing undo flag
...
It's unsafe in Blender to leave operators that edit blend data without undo flag.
2025-02-13 18:55:44 +05:00
Andrej730
0b32c89c26
use_smooth - use correct buffer length
...
apparently it wasn't creating any issues but still creating larger buffer than necessary
2025-02-13 18:55:44 +05:00
Andrej730
9db1783062
more numpy arrays to match expected buffer type
2025-02-13 18:55:44 +05:00
Dion Moult
2d54a48f8e
Add option for door glazing material
2025-02-13 19:18:17 +11:00
Dion Moult
39a30f2577
Redesign profile edit interface to be consistent like all other list+edit button interfaces
...
I kept on clicking the wrong thing
2025-02-13 19:18:02 +11:00
Dion Moult
1e946fd98e
Fix three small but significant typos in previous fixes.
...
BTW @andrej730 that optimisation is awesome. Here's a timeit:
import bpy
import numpy as np
import timeit
obj = bpy.context.active_object
verts = obj.data.vertices
def foreach_get_method():
coords = np.empty(len(verts) * 3, dtype=np.float32)
obj.data.vertices.foreach_get("co", coords)
coords = coords.reshape(-1, 3)
coords = coords.astype("d")
coords /= 10
return coords
def list_comprehension_method():
coords = [v.co / 10 for v in verts]
return coords
# Number of times each function will be executed
num_runs = 10000
t_listcomp = timeit.timeit(list_comprehension_method, number=num_runs)
t_foreach = timeit.timeit(foreach_get_method, number=num_runs)
print("foreach method: {:.6f} seconds over {} runs".format(t_foreach,
num_runs))
print("List comprehension method: {:.6f} seconds over {}
runs".format(t_listcomp, num_runs))
# foreach method: 0.088656 seconds over 10000 runs
# List comprehension method: 0.644446 seconds over 10000 runs
2025-02-13 13:07:29 +11:00
Richard Brice
79046e2970
Compute horizontal project of vertical spiral curve
2025-02-12 16:47:51 -08:00
Dion Moult
f6c6cc9a1b
Fix #6131 . Fix bug where you could potentially create an invalid composite profile with no profiles.
2025-02-13 07:35:58 +11:00
Dion Moult
af03953ef7
Apparently you couldn't edit composite profile defs. Now you can.
2025-02-13 07:35:58 +11:00
Thomas Krijnen
cdcbc2ad3b
Fix 2d boolean check for periodic curves #6147
2025-02-12 16:08:32 +01:00
Andrej730
ba2456ad36
Move common code to create_mesh_from_shape
2025-02-12 18:39:27 +05:00
Andrej730
299b5bcf6b
Optimize loading meshes using numpy arrays
...
1) avoid calling geometry.xxx multiple times as each time it creates a new copy
2) use numpy arrays with correct data type, so Blender could perform buffer copy significantly reducing overhead
2025-02-12 18:39:27 +05:00
Andrej730
cb95539cb0
reuse get_cartesian_point_offset
2025-02-12 18:39:27 +05:00
Andrej730
7b78ebc0f3
Fix possible float precision issues similar to f6087613f0
2025-02-12 18:39:27 +05:00
Andrej730
f39e6ccb54
typing
2025-02-12 18:39:27 +05:00
Dion Moult
3e1710c6fc
Fix bug where duplicating a curve (which would result in a new curve) didn't go in the same collection nor was linked to the right item due to a typo
2025-02-12 23:53:54 +11:00
Thomas Krijnen
fac5104bd8
Take into account edge orientation also for polygonal edges #6113
2025-02-12 10:57:30 +01:00
Thomas Krijnen
51c4059771
20.04 is closing down
2025-02-12 10:31:14 +01:00
Dion Moult
f24de9d384
Fix bug where you couldn't add a meshlike object in a boolean hierarchy
2025-02-12 15:36:57 +11:00
Dion Moult
1e08a71c5a
Fix bug where disabling item mode didn't also quit from the boolean editing mode
...
These two modes should be tied together.
2025-02-12 15:31:56 +11:00
Dion Moult
24b4be3ea1
Fix bug where item positions weren't synced before changing numeric attributes
2025-02-12 08:40:21 +11:00
Dion Moult
d2420c2e45
Revert "Hotfix for PyPI < python 3.11". Release made.
...
This reverts commit d093d80698 .
2025-02-12 08:03:36 +11:00
Dion Moult
d093d80698
Hotfix for PyPI < python 3.11
2025-02-12 07:53:20 +11:00
Bruno Perdigão
aef972a518
Enable snapping of overlapped objects when viewport is in x-ray mode.
2025-02-11 12:31:24 -03:00
Bruno Perdigão
06c6fa5dff
Fix #6064
...
Slabs offset are now measured perpendicularly.
2025-02-11 10:33:29 -03:00
Andrej730
f6087613f0
add_representation - use numpy arrays for calculations that include model offset
2025-02-11 18:14:45 +05:00
Andrej730
45e36590eb
Add paste buffer to outliner context menu #6139
2025-02-11 18:14:45 +05:00
Andrej730
7f37acfd38
Fix typo
2025-02-11 18:14:44 +05:00
Andrej730
de2329c352
bim.override_paste_buffer - add description
2025-02-11 18:14:44 +05:00
Andrej730
09abf0c7ab
bim.override_paste_buffer - fix issue when ctrl-v might unlink currently selected ifc elements
2025-02-11 18:14:44 +05:00
Andrej730
77c2e626b3
Add info message on paste
...
Original Blender `view3d.pastebuffer` had an info missing and it wasn't displayed in UI since it's coming from suboperator. New info message also mentions that objects were unlinked from IFC
2025-02-11 18:14:44 +05:00
Andrej730
9ea6a1fc75
typing
2025-02-11 18:14:44 +05:00
Andrej730
5b7964f04c
black .
2025-02-11 18:14:44 +05:00
Andrej730
57d7d83ebb
Fix Python <3.10 support #6141
2025-02-11 16:50:07 +05:00
tim
2f4c3de92d
New icons
...
add_from_closed_loop and add_from_perimeter
2025-02-11 21:32:03 +11:00
tim
136270b566
IFC icon in Scene dropdown
...
custom white mode support for IFC icon in scene drop down menu
2025-02-11 21:31:15 +11:00
tim
557a5f03d2
Icon mode for Open-Recent-IFC-Project
...
Added UIData class with function for storing icon color mode. Open Recent IFC Project icons now supports blender dark, blender light, and custom "white" themes
2025-02-11 21:31:15 +11:00
tim
4e1ff8ea6a
Icon mode for IFC Modes
...
Added UIData class with function for storing icon color mode. IFC Mode dropdown now supports blender dark, blender light, and custom "white" themes
2025-02-11 21:31:15 +11:00
tim
08680d8726
Geographic Element Tool Icon
...
My tree was missing
2025-02-11 21:31:15 +11:00
Dion Moult
53cf1ee0a1
Fix UI bug where changing the profile name didn't result in the UI being refreshed
2025-02-11 20:03:50 +11:00
Dion Moult
ddf7d1b0b9
Change default behaviour of remove_representation not to remove named profiles
...
I guess this is a Bonsaism but it makes sense as named profiles are
significant, and it isn't the first time materials and profiles have
been treated as "rooted" in a sense. It's also annoying to keep on
having my profile library drop off when I'm just switching profiles.
2025-02-11 20:01:19 +11:00
Dion Moult
eeac0a2e30
Fix bug where removing material set items weren't consistent in how they purged materials and profiles
...
Previously remove_profile would purge unused materials and profiles, but
remove_layer and remove_constituent wouldn't. This was as subtle
inconsitency. Now everything by default consistently retains materials
and profiles, and has options to change this default.
2025-02-11 20:00:17 +11:00
Dion Moult
1f83b4f7a0
Fix bug where non-columns would still behave like columns if they were profiled which is unintuitive
...
On second thoughts only columns should go up, everything else should go
wherever you click to. Not really a bug, just an unexpected default.
2025-02-11 18:54:45 +11:00
Dion Moult
ada8cc90ef
Very minor docs rst syntax fix
2025-02-11 18:53:32 +11:00
Andrej730
21562d7e7d
Add distinguishable name for arrays constraints
2025-02-11 12:06:40 +05:00
Andrej730
77f9dbf4f0
small fix for 4c0a7e1ca9
...
mentioned in #6129
2025-02-10 19:11:13 +05:00
Andrej730
875dd37579
Save Blender preferences on Blender Restart #6095
2025-02-10 17:41:28 +05:00
Andrej730
e1c49ad317
Fix error adding transom to parametric door #6129
2025-02-10 16:47:14 +05:00
Andrej730
8e9d4be55d
Improve error logs for failing profiles #6131
2025-02-10 16:47:14 +05:00
Andrej730
65d65972ac
Fix occurrence name function prop missing after ce8bdff
2025-02-10 16:47:14 +05:00
Andrej730
b2d66bbb89
Fix bug where selecting element / element type without representation wasn't updating bim tools active type
2025-02-10 16:47:13 +05:00
Andrej730
d8a250f153
Update Annotation Tool types when selecting elements #6134
...
Similar to other BIM Tools
Update handler.py
2025-02-10 16:47:13 +05:00
Andrej730
4c0a7e1ca9
typing
2025-02-10 16:47:13 +05:00
Dion Moult
11c6b55f7c
Revise the modern COBie 2.4 implementation to also allow PointOfContact/WarrantyPeriod
...
Legacy COBie 2.4 allowed this but not sure why it dropped off.
2025-02-10 17:26:51 +11:00
Dion Moult
1d2214efd9
Fix IfcOpenShell-Python on Python 3.10
...
Elipsis is not allowed for generic typing
2025-02-10 17:26:03 +11:00
Dion Moult
cb027c80f9
Fix dev install script - brick schema directory changed
2025-02-10 10:50:25 +11:00
Dion Moult
44c7c6d14e
Bump to 0.8.2
2025-02-09 16:45:44 +11:00
Dion Moult
3e7f244100
Drop Windows 32bit support for this release as it isn't built. We can restore it in the future if needed.
2025-02-09 14:59:15 +11:00
Dion Moult
da1c92c42b
Bump IOS
...
Previous one didn't have the full matrix, so we can't release with it
2025-02-09 14:53:32 +11:00
Dion Moult
17682498da
Minor UI cleanup for reorganised visibility buttons
2025-02-09 14:53:09 +11:00
Dion Moult
5db6738ac2
Test to see if this has any impact on reloading the add-on.
2025-02-08 19:27:34 +11:00
Dion Moult
eabdb5d281
Consolidate selection and visibility tools in the spatial manager into a single location with a single function for filtering
...
There were a number of inconsistencies between the modes and how keyword
filtering affected results. This should resolve it.
2025-02-08 16:38:29 +11:00
Andrej730
59dd105e99
fix get_applicable_entities / get_applicable_types missing schema #6108
2025-02-08 07:54:49 +11:00
Andrej730
a28070afef
Hide Edit Profile for material sets without profiles #6103
2025-02-08 07:54:49 +11:00
Andrej730
689e2718e5
Fix conversion to profile for breps #6103
2025-02-08 07:54:49 +11:00
Andrej730
a2ab3972c8
bim.update_representation - add note about about material unassignment
2025-02-08 07:54:49 +11:00
Andrej730
667223da8e
typing
2025-02-08 07:54:49 +11:00
tim
1e58a517a0
Dark mode extend icon ( #6112 )
...
dm_extend.png icon was missing
Co-authored-by: tim <tjrhyder@gmail.com >
2025-02-08 07:51:33 +11:00
Dion Moult
fcee54c572
Fix regression when removing an active representation.
...
Some tests removed since they no longer make sense with the new item
editing mode.
2025-02-08 00:21:38 +11:00
Dion Moult
889a9e3891
Tweak failing test to now allow assigning elements to scaled multi-user objects
...
Previously this was not allowed, but I don't see why not
2025-02-08 00:20:25 +11:00
Dion Moult
7bc1992963
Fix regression where adding a new occurrence should not change your active context back to body if you've switched it.
2025-02-07 23:52:55 +11:00
Dion Moult
49c3a55456
Fix failing pset_template tests. Regression in 5bd24b276 for editing pset template properties.
2025-02-07 23:33:33 +11:00
Dion Moult
f11d79f8c1
Fix cost and drawing feature tests
2025-02-07 22:40:17 +11:00
Dion Moult
2cc4f96b7f
Fix failing project feature tests. Fix regression where appending an asset might append a named style twice.
2025-02-07 22:02:44 +11:00
Dion Moult
bb46a1659d
Fix light and georeference feature tests
...
Not setting the year meant our date calc tests would fail every year :)
2025-02-07 17:19:27 +11:00
Dion Moult
f09002c7e2
Fix regression in caeabe2 where actor data didn't load.
2025-02-07 16:58:45 +11:00
Dion Moult
9f75a14204
Update issue templates
2025-02-07 13:31:59 +11:00
Dion Moult
c40d21d945
Fix #6106 . True north must always be 2D.
2025-02-07 13:19:33 +11:00
Dion Moult
0d3245102f
Fix remaining failing tool tests
2025-02-07 13:12:02 +11:00
Dion Moult
3aa4fa580b
Fix regression where you couldn't upgrade schema of IFCs with invalid headers
2025-02-07 12:38:52 +11:00
Dion Moult
4c255cca43
Fix failing model tests and regression 0899a2a8 where switching geometry can invalidate old meshes
...
The fix in 0899a2a8 ensured that when you switched geometry, all other
elements (sharing the same type or representation) would also switch
alongside it. However it would lead to mesh invalidation which broke
some assumptions in the style code. The style code also repeated a lot
of the logic of switch representation (i.e. finding shared
representations) so this seems simpler.
In general the whole representation part of the code is messy and
hopefully over time it'll get better.
2025-02-07 12:35:08 +11:00
Dion Moult
e603ebed04
Fix bug where loading a types ignored style assigned via a material
...
For occurrences, the iterator would populate ios_materials if there is a
material / style associated with it. However, for types we do
create_shape to the representation directly, so we need to do the
material / style check manually.
2025-02-07 12:29:17 +11:00
Andrej730
38e6f09c91
Fix #6096
2025-02-06 18:26:14 +05:00
Andrej730
6473fa4b67
Deprecate workaround for universal wheels
...
Tested on Blender 4.3.2 and universal wheels are now supported without this hack, see https://projects.blender.org/blender/blender/issues/125091
2025-02-06 18:26:14 +05:00
Andrej730
38adaf4d18
Fix running critical tests in ci
2025-02-06 18:26:14 +05:00
Dion Moult
b7fb5c90bc
Continue fixing failing tool tests. Fix regression where UV coordinates might have the wrong order.
2025-02-06 17:22:54 +11:00
Dion Moult
23efb09ba6
Add links to Linux packages
2025-02-06 09:46:59 +11:00
Dion Moult
cf6280b928
Rename BlenderBIM to Bonsai in a few more spots
2025-02-06 09:24:25 +11:00
Andrej730
c16894cabf
Fix bug in 124c028 saving defined unit as defining
2025-02-05 18:27:27 +05:00
Andrej730
5df297c23c
Fix failing facet test after 124c028
2025-02-05 18:27:27 +05:00
Andrej730
b2b3a83463
ci - fix missing ifctester for tests
2025-02-05 18:27:27 +05:00
Andrej730
4b0b0191ba
Test enabling/disabling Bonsai before uploading to unstable repo #6075
2025-02-05 18:27:27 +05:00
Dion Moult
a92306d413
Fix #6097 . Be more defensive against selection state when moving objects into new containers.
2025-02-05 20:28:29 +11:00
Dion Moult
f457ce8270
Fix failing unit/system/geometry tool tests. Fix regression where object scales weren't applied in the new add element approach.
2025-02-05 18:50:37 +11:00
Dion Moult
590c2e120c
Fix failing drawing tool tests. Also consolidate relative paths using tool.Ifc.get_uri.
...
The same issue of handling relative paths, doing as_posix, checking
drives, etc was solved again and again in slightly different ways. This
centralises it.
2025-02-05 17:17:09 +11:00
Dion Moult
13746eb55e
Fix CI job a unique name so it can be used as a requirement for PRs
...
It seems as though the UI only selects by job name and we use the name
"build" everywhere.
2025-02-05 14:28:42 +11:00
Dion Moult
55b9c7d6bf
Fix failing ifcpatch tests
2025-02-05 14:10:41 +11:00
Dion Moult
e86624873b
Fix segfault from editing a IFC2X3 georeferencing pset with a null map unit.
...
Doing createIfcIdentifier(None) segfaults.
2025-02-05 14:10:41 +11:00
Andrej730
ae11f205f3
Fix missing unregister for some tools #6075
...
PileTool, PlateTool, RampFlightTool, StairFlightTool were never unregistered leading to issues on Bonsai update
2025-02-04 17:37:57 +05:00
Andrej730
457f9c6aef
Select pset template for the pset in pset template ui for editing
...
Example - https://imgur.com/a/h46Ewhk
2025-02-04 17:37:56 +05:00
Andrej730
cc88bd4a9d
Fix issue adding project library if other library was already in edit
2025-02-04 17:37:56 +05:00
Andrej730
8f74f4d9f1
Change IfcProjectLibrary's parent library from UI
...
Example - https://imgur.com/a/4PZr0px
It's very clunky and mainly exposed just to be available in some way, it will all make more sense when we display project libraries as trees in project library ui.
2025-02-04 17:37:56 +05:00
Andrej730
56f0c19a85
append_asset to support IfcPresentationLayerAssignment #6023
2025-02-04 17:37:56 +05:00
Andrej730
76747bdf5a
Recent files - dim button for filepaths that do not exist
...
Example - https://i.imgur.com/dwEBtG6.png
2025-02-04 17:37:56 +05:00
Andrej730
a4de196259
space module operators - remove unnecessary ifc operators
2025-02-04 17:37:56 +05:00
Andrej730
049b157c8a
bim.toggle_space_visibility - description
2025-02-04 17:37:56 +05:00
Andrej730
7ec1bc5272
Fix error toggling boundary decorations after one was removed #6088
2025-02-04 17:37:56 +05:00
Andrej730
d4f44cb0a1
typing
2025-02-04 17:37:55 +05:00
Andrej730
ecd7282150
black .
2025-02-04 17:37:55 +05:00
Dion Moult
bd2c3a0ca1
Continue fixing tool tests.
...
Just chipping away at it give me time.
2025-02-04 17:04:29 +11:00
Louis Trümpler
f0f2dda40e
Add assign constituent fractions recipe ( #5979 )
...
* Add AssignConstituentFractions recipe
* license, units & added context description
* removed src, using better unit handling and several other small improvements based on feedback
2025-02-04 14:23:08 +11:00
Dion Moult
0c41f0c32c
Fix #6094 . Fix failing core tests.
2025-02-04 13:36:28 +11:00
Dion Moult
a35ef32ee6
Forgot to commit docs for serialiser settings
2025-02-04 07:35:34 +11:00
Andrej730
00eff23b74
Rename bim_boundary_properties -> BIMBoundaryProperties for consistency
2025-02-03 17:43:01 +05:00
Andrej730
88af3eb1a6
Explicitly enable Bonsai in the second Blender instance #6092
...
To cover cases when Bonsai was enabled in current Blender sesssion and user prefs are not saved.
2025-02-03 17:28:48 +05:00
Andrej730
a48d774337
typing
2025-02-03 17:28:47 +05:00
Andrej730
734cd47ea5
black .
2025-02-03 17:28:47 +05:00
Dion Moult
5159a69225
Fix #6070 . Button was pointing to the wrong function to confirm/cancel editing an extrusion profile.
...
Probably a copy paste mistake during the UI refactor.
2025-02-03 23:07:16 +11:00
Dion Moult
2f2072cf7f
Fix #6080 . Bug where renaming introduced suffixes during bulk reassignment of classes.
2025-02-03 23:00:04 +11:00
Andrej730
8c47f2a72f
Fix issue infinitely adding new ports on bim.show_ports #6074
2025-02-03 16:37:51 +05:00
Andrej730
a6632167be
system module operators - remove unnecessary ifc operator
2025-02-03 16:37:46 +05:00
Andrej730
12d1fd221d
Clean up orphaned curves creating new elevation/section annotations
2025-02-03 13:45:54 +05:00
Andrej730
10642618e5
Fix error entering item mode for elevation/section annotations #6081
2025-02-03 13:45:54 +05:00
Andrej730
be4f6ac222
small fix for 3eaf4367ad
2025-02-03 12:45:05 +05:00
Andrej730
3eaf4367ad
Fix #6082
2025-02-03 12:40:36 +05:00
Andrej730
305b4c27b5
fix a typo
2025-02-03 11:45:41 +05:00
Andrej730
b56f2d7514
black . - ignore simple_spf submodule
2025-02-03 11:43:08 +05:00
Andrej730
cf026dccc2
bump ios build #5987
2025-02-03 11:43:08 +05:00
Dion Moult
c5185aaf54
Fix #6085 . Failing unit test.
2025-02-03 16:33:04 +11:00
Dion Moult
50ed756353
Found out layer names don't exist in IFC2X3 that's incredible
2025-02-03 16:04:56 +11:00
tim
0f0578e1c5
Geographic Element Tool ( #6089 )
...
New icon tool for adding landscape elements
Co-authored-by: tim <tjrhyder@gmail.com >
2025-02-03 15:38:10 +11:00
Herlianto
0d086fda33
delete unused import ( #6093 )
2025-02-03 15:35:55 +11:00
Dion Moult
f3f7510b48
Fix #6087 . (again)
...
I don't know why depress was used. To make it colour in blue?
2025-02-03 12:36:18 +11:00
Thomas Krijnen
b2a4529904
Don't fail on empty build deps cache #6054
2025-02-02 10:00:56 +01:00
Thomas Krijnen
7de50ff0c5
Don't fail on empty build deps cache #6054
2025-02-02 09:46:13 +01:00
Thomas Krijnen
7b0a7e51bb
Try 'Build IfcOpenShell Linux ARM' workflow #6054
2025-02-02 09:35:15 +01:00
Thomas Krijnen
507d13363d
delete obsolete files
2025-02-02 09:21:01 +01:00
Thomas Krijnen
9713b06d75
delete obsolete files
2025-02-02 09:01:24 +01:00
Dion Moult
be6a4de6f0
Fix #6087 . High CPU usage due to function in draw call.
...
I assume this is the problem.
2025-02-02 17:05:56 +11:00
Dion Moult
ea85a4247a
Fix #6079 . Regression in editing space boundaries due to leftover line in commit.
2025-02-01 16:42:06 +11:00
tim
f377d794a0
Unify icon modes to work with default Blender Light theme ( #6078 )
...
Force the color of the icons in the Properties-Scene tab to match Regular Text
Use the icon display mode function to detect where to use dm_ifc.png or lm_ifc.png
Co-authored-by: tim <tjrhyder@gmail.com >
2025-02-01 16:18:48 +11:00
tim
16d077f1cb
Rename dm_IFC.png to dm_ifc.png ( #6076 )
...
renaming to lowercase to match lm_ifc presidents.
2025-02-01 16:18:26 +11:00
Dion Moult
3f62f72f35
See #2981 . First attempt at having the door generator also do shape aspects, material constituents, and styles all simultaneously
2025-02-01 16:15:58 +11:00
Dion Moult
dc79e9e005
More utility functions to jump between representations, styles, and shape aspects
...
It's a bit uncertain where these belong best, we'll find out over time
2025-02-01 16:11:37 +11:00
Dion Moult
d25f57ec40
See #2981 . Adding a door representation now also adds associated shape aspects
...
It doesn't add materials though, that's a separate responsibility right
now
2025-02-01 16:02:57 +11:00
Dion Moult
9f93779ac2
Adding set items can now specify a name at creation for convenience
2025-02-01 16:00:43 +11:00
Dion Moult
8436817408
Update incorrect docs and raise suspicion about how shape aspect styles are assigned
2025-02-01 15:55:34 +11:00
Dion Moult
1a98504328
Fix bug and typo where getting shape aspects for non-geometric types (e.g. walls) would fail
...
This caused an error when updating a style of a material used in a wall
type
2025-02-01 15:54:57 +11:00
Bruno Postle
1680c3135a
Update to latest ifcmerge on Windows
...
Handle missing IfcRelationship - eg. if all sofas are deleted the
IfcRelDefinesByType is deleted too, but we reincarnate as an empty list
so it can be merged.
Sanity check internal graph - If an entity is deleted in one branch but
has a new usage in another branch, merging would break the graph leaving
a dangling reference. ie. now you can't delete types, materials etc..
in one branch while using them for new objects in another and still
expect the merge to succeed.
2025-01-31 15:05:34 +00:00
Dion Moult
79e4ba5b19
New usecase to add shape aspect with tests
2025-02-01 00:46:00 +11:00
Andrej730
d6d1f7714f
black . to ignore ifcconvert's cityjson submodule
2025-01-31 18:21:23 +05:00
Andrej730
68543c7f05
Simplify types used in debug module express methods #6071
2025-01-31 18:21:14 +05:00
Andrej730
135655f8a0
bim.add_pset - remove unnecessary ifc operator
2025-01-31 17:12:32 +05:00
Andrej730
df49356104
Support adding a new IfcProjectLibrary from UI
...
Example - https://imgur.com/a/NUQkvHf
2025-01-31 17:12:31 +05:00
Andrej730
04bcf8e2a9
Fix error switching between libraries
2025-01-31 17:12:31 +05:00
Andrej730
9f17ec5bf5
Support editing project library attributes
...
Example - https://imgur.com/a/MFtLDlh
2025-01-31 17:12:31 +05:00
Andrej730
67aa8f1413
Update project library enum on changing library file
2025-01-31 17:12:31 +05:00
Andrej730
8469d10c85
Project library UI - make filter optional and allow assigning to different libraries
2025-01-31 17:12:31 +05:00
Andrej730
87cbc66c99
typing
2025-01-31 17:12:31 +05:00
Andrej730
c2ae3dcb08
append_asset - extend existing rels matching them by project guid
...
Mentioned in #6039
2025-01-31 17:12:31 +05:00
Andrej730
089f15a5cc
fix a typo
2025-01-31 15:06:37 +05:00
Thomas Krijnen
919df92888
Virtual inheritance configurable at codegen time
2025-01-30 13:12:42 +01:00
Andrej730
553872ced2
append_asset - fix issue appending elements that have as_entity() -> None #6037 #6039
2025-01-30 16:06:19 +05:00
Andrej730
bc33cb6391
append_asset - remove unnecessary partial
2025-01-30 16:06:19 +05:00
Dion Moult
d010d4e1b5
Fix #6067 . Bug where adding a door ignored the Z offset option.
2025-01-30 19:52:33 +11:00
Andrej730
af29f264a8
Show info message when trying to edit presentation layer and project has no layers #6051
...
Instead of the error.
Also fix a bug with update callback was attached to the wrong prop.
2025-01-30 13:42:01 +05:00
Dion Moult
2570864f58
Fix #6066 . Bug where spatial manager didn't toggle visibility correctly for spaces.
...
Previously I was only toggling Blender collections which is an
optimisation for large projects but will result in incorrect behaviour
if things aren't in the collection you think they're in. So for now it's
slower but more correct. We can optimise it later.
2025-01-30 19:17:12 +11:00
Dion Moult
2ad48aba36
Fix bug where download CSV icon would disappear on web interface after refreshing table data
2025-01-30 18:55:05 +11:00
Dion Moult
4e17a2d6de
The shape builder can now create half space solids for convenience
2025-01-30 18:44:38 +11:00
Dion Moult
eaaec4a12d
Fix ridiculous bug where util.element.get_container didn't consider all parents and therefore didn't correctly contain feature elements in the spatial hierarchy
2025-01-30 18:44:27 +11:00
Dion Moult
abec29af7f
Fix attribute tests. Turns out latest pytest-bdd is stricter when parsing feature files and fails when encountering our blank demo tutorial file.
2025-01-30 17:59:13 +11:00
Dion Moult
838e22d27c
Fix #6060 . Updating long name in spatial manager now also edits attribute for convenience.
...
Editing attributes now also refreshes the spatial manager (i.e. vice
versa), and so does bulk attribute copying.
2025-01-30 17:47:29 +11:00
Dion Moult
8f78fe56de
Prevent copying globalids to selected objects as it makes no sense
2025-01-30 17:46:23 +11:00
Andrej730
e435863500
Fix missing pset templates after 5e93097 #6049
2025-01-30 11:30:52 +05:00
Dion Moult
15d43e9166
Fix bug where spatial object may not exist when renaming from the spatial tree (e.g. partial loads), and also refresh UI (to see updated attributes)
2025-01-30 17:07:57 +11:00
Dion Moult
1768026891
Fix #5854 . Update docs with new IOS v0.8 settings.
2025-01-30 15:32:14 +11:00
sboddy
d6443e46f6
Update debugging guide to deal with MS's Marketplace changes. ( #6035 )
2025-01-30 08:08:28 +11:00
tim
77722fcf89
New Tools ( #5983 )
...
* New tools wip
- New icons: Opening, Furniture, Roof, Railing
- New groupings
- New tools: Opening tools (not working), Furniture (needs default), Roof
- New defaults: Railing, Roof (Hip Roof doesn't work)
* WIP on (no branch)
* Railing icon fixed
* New icons added, old icons tweaked
* Working version
* Just updating some wip - not ready for review yet
* Tool icon update
- New: pile, plate, ramp, ramp flight, stair, stair flight, roof, railing, footing, member, curtain wall
- Updated: wall, window, door, cable
- Expanded tool descriptions to include predefined types
- Added relevant default types
- Revised tool grouping
* IfcStairType and IfcRampType icon's removed
* Curtain wall removed
---------
Co-authored-by: tim <tjrhyder@gmail.com >
2025-01-30 08:07:54 +11:00
Thomas Krijnen
241329325d
Update ci.yml - 22.04
2025-01-29 20:10:19 +01:00
Bruno Perdigão
2e70544bb8
Adjust offset in "change_extrusion_x_angle" to maintain position relative to the slab's top face.
2025-01-29 14:01:23 -03:00
Bruno Perdigão
03267a441a
Fix #6058
2025-01-29 14:01:23 -03:00
Kipre
4bee713455
Fix transform matrix computation in Axis2Placement3D
2025-01-29 15:37:59 +01:00
Andrej730
1d6e560b4f
Change entire material category name from UI #6061
...
Example - https://imgur.com/a/LJUkC2l
2025-01-29 18:16:05 +05:00
Andrej730
71a6ad8cb0
Display assets count for the loaded library
...
Example - https://imgur.com/a/yZTkZgu
2025-01-29 18:16:05 +05:00
Andrej730
83d7cda26b
Select IfcProjectLibrary to display for the loaded library
...
Example - https://imgur.com/a/14LOL0J
2025-01-29 18:16:05 +05:00
Andrej730
8bddde49a2
Hide assign/unassign library declaration button for elements that cannot be declared
...
E.g. IfcMaterials, IfcProfileDefs
2025-01-29 18:16:05 +05:00
Andrej730
909a7ad7a2
Project libraries UI - use cached project library data
...
instead of accessing IFC directly on every draw call
2025-01-29 18:16:05 +05:00
Andrej730
c9da643fe1
typing
2025-01-29 18:16:04 +05:00
Andrej730
0599138bca
Fix #6050 after 5e93097
2025-01-29 17:25:30 +05:00
Andrej730
871710a0aa
Fix remove_representation error #6059
...
After to_delete was explicitly added as an attribute to ifcopenshell.file (previously it was kind of hacky assigned during batch remove).
2025-01-29 16:02:50 +05:00
Andrej730
85e0fa9147
assign/unassign layer - mention representations
2025-01-29 16:02:50 +05:00
Dion Moult
5d3dc84556
Tabbing now works consistently on all elements including those with usage
...
This means that seeing the extrusion type graphically is now possible,
adding booleans is now through a consistent interface. It's still
possible to immediately edit the axis via Alt-E and profile via Shift-E.
This helps consoliate code too.
2025-01-29 21:38:01 +11:00
Dion Moult
a9abf1e993
Forgot to remove these mentions
...
Still need to update tests
2025-01-29 21:32:26 +11:00
Dion Moult
c2b00e09cf
Remove elements menu and purge the "potential" openings feature as this is now properly integrated in the new element menu
2025-01-29 19:55:42 +11:00
Dion Moult
121af475a7
The collector should be responsible for handling global fixed display settings too perhaps
2025-01-29 19:54:25 +11:00
Dion Moult
424cd96fef
Add warning that api.run is deprecated
2025-01-29 19:53:50 +11:00
Bruno Postle
84392f1457
Typo: strucutural > structural
2025-01-28 21:20:20 +00:00
raj-open
1b3b74127a
guid-stdlibs > v0.8.0: linting
2025-01-28 21:46:34 +01:00
raj-open
85308133e2
guid-stdlibs > v0.8.0: added unit tests
...
NOTE: added in prefix-cases post PR review
2025-01-28 21:46:34 +01:00
raj-open
64a027cfba
guid-stdlibs > v0.8.0: linting
2025-01-28 21:46:34 +01:00
raj-open
285c4bff67
guid-stdlibs > v0.8.0: used underlying base64-to-hex to speed up computations
...
NOTE: The conversions remain exactly as before. But by using standard libraries for conversion, we clean up computations.
2025-01-28 21:46:34 +01:00
Bruno Perdigão
c2c2d2d8f3
Revert 87c7309724. I misunderstood the expected behavior.
2025-01-28 17:37:20 -03:00
Bruno Perdigão
87c7309724
See #5938 . Fix bug where x_angle where changing the wall thickness.
2025-01-28 16:28:23 -03:00
Bruno Perdigão
d9903e93f2
See #5938 . This commit starts fixing this issue by:
...
- Fix wall decorator with obtuse angles.
- Preventing slabs from using obtuse angles, for now.
2025-01-28 16:10:17 -03:00
Andrej730
ab0549daa6
Support editing representation's presentation layers from UI
...
Example - https://imgur.com/a/QgtSUoq
2025-01-28 17:22:26 +05:00
Andrej730
f43e33b969
apped_asset - fix passed removed elements after 3ffc0bc #6044
...
Before 3ffc0bc checking identities were handled by file.add but now it's handled append_asset, therefore should be a way to clean removed entities.
2025-01-28 17:22:26 +05:00
Andrej730
cc014e9792
Change message when no object queries in a linked model
...
to give a hint for new users
2025-01-28 17:22:26 +05:00
Andrej730
c0306fc729
typing
2025-01-28 17:22:26 +05:00
Andrej730
7b94a8d1f5
black .
2025-01-28 17:22:25 +05:00
Andrej730
7bfe844d53
Rename void to feature in code 03bfd828e2
2025-01-28 15:23:43 +05:00
Andrej730
23648ef221
remove duplicated add_feature method
...
It was moved to feature module in 03bfd828e2
2025-01-28 15:23:43 +05:00
Dion Moult
693244e20e
Fix bug in SetFalseOrigin which incorrectly handled z height and also add ability to handle non-mapconversion based transformations.
...
I can't believe I accidentally left out the minus sign. The ability to
handle simple remapping of location A --> B is useful for software that
doesn't support map conversion properly.
2025-01-28 17:33:15 +11:00
Dion Moult
03bfd828e2
See #5919 . API now has support for features, not just openings. Void module is renamed to feature.
2025-01-28 14:18:17 +11:00
Dion Moult
5300f4c78f
Fix failing tests
2025-01-28 10:54:37 +11:00
Dion Moult
8e29e7cdee
Be a bit more forgiving in calculate unit scale to not glitch out on models with no project.
...
It's technically invalid but useful for small snippets.
2025-01-28 10:46:24 +11:00
Dion Moult
6e0954e855
Purge constants file that came from PR.
2025-01-28 10:45:54 +11:00
Dion Moult
4d052ba864
Fix bug where decorator had errors if the 3D location was outside the 2D window.
...
Checking for none for `location_3d_to_region_2d` should always be done.
2025-01-28 10:33:08 +11:00
Bruno Perdigão
562c32b96e
Fix issue where area measurement lines where not showing correctly.
2025-01-27 18:58:02 -03:00
Bruno Perdigão
818ad536af
Small fix after a4a52d6576
2025-01-27 18:49:19 -03:00
Bruno Perdigão
a4a52d6576
Make slab's editing profile to horizontal orientation when x_angle is present.
2025-01-27 15:16:22 -03:00
Bruno Perdigão
47b2a00614
Fix Z location for wall axis decorator
2025-01-27 10:59:21 -03:00
Andrej730
ff4d3adf0b
Select Layer In Layers UI
...
Example - https://imgur.com/a/bXctIxc
2025-01-27 17:41:32 +05:00
Andrej730
13a182cd95
Representation Items UI - support editing layers
...
Example - https://imgur.com/a/3fn051N
2025-01-27 17:41:31 +05:00
Andrej730
56af23b89f
revert possible empty layer names in ui
2025-01-27 17:41:31 +05:00
Andrej730
605cf8d99a
Styles UI - add indicator for currently edited style
...
Example - https://i.imgur.com/YT0a63S.png
2025-01-27 17:41:31 +05:00
Andrej730
744487c786
fix test_element after 7b62b03
2025-01-27 17:41:31 +05:00
Andrej730
b735ce74ad
Bonsai - Select By Profile operator
...
Location - https://imgur.com/a/gInY1sl
2025-01-27 17:41:31 +05:00
Andrej730
5fe77b659a
ifcopenshell.util.element.get_elements_by_profile
2025-01-27 17:41:31 +05:00
Andrej730
e71a220f21
typing
2025-01-27 17:41:30 +05:00
Andrej730
5bd24b2760
Enable pset template prop editing on adding a new one #6019
2025-01-27 17:41:30 +05:00
Andrej730
14a792a1e7
Enable pset template editing on adding a new one #6019
2025-01-27 17:41:30 +05:00
Andrej730
7b4fa6b5c0
black .
2025-01-27 17:41:30 +05:00
Gorgious56
378086ac7b
Fix bug when trying to delete an opening object that was already deleted
2025-01-27 12:56:27 +01:00
Dion Moult
c4dbbe85fc
Fix bug where library wasn't actually removed when unlinking an IFC.
...
Previously the collection and scene object was removed, but this is
obviously not sufficient since the bpy.data.library still exists (which
meant that if you relinked it, regardless of your cache setting, it'd
just load the existing Blender file which is completely useless).
2025-01-27 20:41:26 +11:00
Dion Moult
559db259a3
See #6030 . Add isolate, show, and hide operators to group manager.
2025-01-27 17:14:13 +11:00
Dion Moult
3582dc43d9
Add tests for PR #5257 (using cache for fetching units)
2025-01-27 14:40:15 +11:00
Dion Moult
c0aaebcbe9
Fix bug where assigning units didn't necessarily assign to the project, and also didn't overwrite existing units of the same type.
2025-01-27 14:23:02 +11:00
Dion Moult
4af6c24314
Completely untested refactor of #5257 .
...
Removes dependency of file to util (util should depend on file, not vice
versa). Removes auxiliary method.
2025-01-26 21:11:11 +11:00
Dion Moult
ecd72912aa
Purge constants from PR #5257 .
...
I'm not sure I agree here, considering that types are dynamic based on
schema version.
2025-01-26 19:07:02 +11:00
Raj
124c02897c
Feature faster unit method ---> Main ( #5257 )
...
* feature_faster_unit_method > main: added constants
* feature_faster_unit_method > main: extended `file` class to dynamically save unit information
* feature_faster_unit_method > main: refactored `get_property_unit` method
1. split out case that returns the wrong type (dictionary of units) into its own method
2. cleaned up (but preserved) logic
3. refactored common part of all cases (the method which prioritises unit then value-entity then measure_class)
---------
Co-authored-by: raj-open <raj-open@users.noreply.github.com >
Co-authored-by: Dion Moult <dion@thinkmoult.com >
2025-01-26 19:04:49 +11:00
Raj
3b1e893d34
Linting-Workflow ---> v0.8.0 | Make wf only fail on syntax errors instead of unformatted code ( #6041 )
...
* linting-workflow > v0.8.0: make QA only throw warning instead of error on unprettified code with no syntax errors
Without a Linting policy, the workflow should only fail if code base contains syntax errors.
* linting-workflow > v0.8.0: better logging
* linting-workflow > v0.8.0: changed instruction to notice-type
---------
Co-authored-by: raj-open <raj-open@users.noreply.github.com >
2025-01-26 18:54:46 +11:00
Bruno Perdigão
2b1a59a4f8
Refactor how offset and direction sense interact for wall and slabs.
2025-01-25 16:05:04 -03:00
Dion Moult
c49ca699eb
Forgot to commit new feature tool
2025-01-25 21:39:54 +11:00
Dion Moult
75c6505121
See #5919 . You can now add openings through "Add Element" just like everything else.
...
This means that openings can (and default to) start with extrusions. It
also starts to open up the possibility to add other types of feature
elements. Still really incomplete.
2025-01-25 20:43:08 +11:00
Dion Moult
2c531501c3
Fix #5614 . Fix bug where removing an object that had voids showing didn't also remove the voids.
2025-01-25 16:36:57 +11:00
Dion Moult
eab527e7a2
Fix #6033 . Add tools for generate slab from wall and vice versa in the toolbox. Still needs a nice icon.
2025-01-25 15:59:11 +11:00
Dion Moult
83368d7ee1
Fix #6014 . Incorrect units used for position matrix when detecting profiles. Fix by @brunoperdigao
2025-01-25 15:20:01 +11:00
Dion Moult
38835a4092
See #6030 . You can now select elements in groups recursively.
2025-01-25 14:11:42 +11:00
Dion Moult
a2a4da596f
Fix #6030 . Consolidate group management into single UI and allow for bulk assign / unassign.
2025-01-25 14:01:56 +11:00
Bruno Perdigão
5fbb496818
Improve wall axis decorator.
...
- Blue: base
- White: side
- Green: reference
- Arrow: direction
See: https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcMaterialLayerSetUsage.htm
2025-01-24 16:46:03 -03:00
Bruno Perdigão
8b3bf8200f
Add wall and slab regeneration when editing layer set usage, after 755d178b6b
2025-01-24 16:36:24 -03:00
Andrej730
fbab13339c
set_material_name to prevent triggering name callback if it's not necessary
2025-01-24 18:45:14 +05:00
Andrej730
57150e9f63
deprecate style.edit_presentation_style listener
2025-01-24 18:45:14 +05:00
Andrej730
e4ded8c477
Fix editing IfcSurfaceStyle attributes
...
Apparently it was broken for a while now...
2025-01-24 18:45:14 +05:00
Andrej730
d21c24b070
Bonsai - support editing IfcPresentationLayerWithStyle attributes
...
Example - https://imgur.com/a/JRs8RZm
2025-01-24 18:45:13 +05:00
Andrej730
e3ea12a517
Reuse export_attributes for layers, groups, constraints, classifications
2025-01-24 18:45:13 +05:00
Andrej730
60f8044820
Support adding IfcPresentationLayerWithStyle from UI
...
Example - https://i.imgur.com/0mssU2s.png
2025-01-24 18:45:13 +05:00
Andrej730
d5b1b6f66a
Reuse draw_attributes for groups, layers, structures and systems
2025-01-24 18:45:13 +05:00
Andrej730
f3fc55f246
Change <logical> primitive data type from bool to enum
...
As it also has a third value "UNKNOWN" which has it's own meanig in IFC and therefore IfcLogical cannot be represented by simple booleans.
Example in Bonsai - https://i.imgur.com/xuPMcwA.png
2025-01-24 18:45:13 +05:00
Andrej730
d37caedda7
layer.add_layer_with_style
2025-01-24 18:45:12 +05:00
Andrej730
d1082897b1
bim.select_representation_item - add poll message
2025-01-24 18:45:12 +05:00
Andrej730
c12636f4cc
black .
2025-01-24 18:45:12 +05:00
Andrej730
35d20e649d
button to open pset templates user folder
...
to make it more discoverable
Example - https://i.imgur.com/BKN3rkj.png
2025-01-24 12:57:41 +05:00
Andrej730
5c7bea6dea
bim.open_path - utility operator
2025-01-24 12:57:40 +05:00
Andrej730
d979c6a044
bim.open_uri - display url in description
2025-01-24 12:57:40 +05:00
Andrej730
65f2da4beb
Fix creating pset templates after 5e930972d6 #6017
2025-01-24 12:34:36 +05:00
Dion Moult
755d178b6b
Fix bug where adding / removing layers never triggered a regeneration of walls.
...
Continue our slow, ongoing purge of listeners.
2025-01-24 17:28:45 +11:00
Dion Moult
f1187e33d9
Don't show IFC product selection in the type manager since it's assumed to be IfcElementType from context
2025-01-24 16:36:07 +11:00
Dion Moult
2ec7882c57
Fix #6034 . Boundary module now uses the collector tool like everything else.
2025-01-24 09:57:33 +11:00
Dion Moult
1083651d0a
Bump IOS back up to 2024-12-14
2025-01-24 09:49:44 +11:00
Dion Moult
03bd34d98c
Workaround for speed regression in advanced brep models. See #5999 .
2025-01-24 09:47:17 +11:00
Bruno Perdigão
fa174feaae
Refactor wall offset and direction after f724bb692
2025-01-23 15:33:39 -03:00
Bruno Perdigão
5ec5594c69
Polyline slab tool - You can now change offset and direction
...
As it was implemented in Polyline wall tool, the user can press "O" to
change offset and "F" to flip the direction
2025-01-23 15:33:39 -03:00
Bruno Perdigão
4f77df99a5
Add slab preview decorator
2025-01-23 15:33:39 -03:00
Thomas Krijnen
fa191e44f2
cgal kernel: Move orientation logic #5987
2025-01-23 16:35:51 +01:00
Thomas Krijnen
638b2c59ea
Catch string encoding errors and set status #5992
2025-01-23 16:20:06 +01:00
Bruno Perdigão
4aff6ac842
Fix profile tool after 8b678309f
2025-01-23 11:21:29 -03:00
Andrej730
f67e3f35c7
Fix error tabbing into point cloud representations
2025-01-23 18:14:17 +05:00
Andrej730
1ea6d2a194
Add IfcStructuralPointConnection to reimport_element_representations
2025-01-23 18:14:17 +05:00
Andrej730
3c96ad2965
Fix error tabbing into IfcStructuralPointConnections
2025-01-23 18:14:17 +05:00
Andrej730
4ee8176654
Bonsai to display units for force measure props
...
Example - https://i.imgur.com/EhcyIxp.png
2025-01-23 18:14:17 +05:00
Andrej730
4717dffcdc
Bonsai - assign/unassign structural model for all selected elements
2025-01-23 18:14:17 +05:00
Andrej730
3eeb58dded
assign_structural_analysis_model to support batching
2025-01-23 18:14:17 +05:00
Andrej730
70f17c2094
Structural operators - remove unnecessary Ifc Operators
2025-01-23 18:14:17 +05:00
Andrej730
2e71765f4f
Fix structural operator names for consistency with Blender naming
2025-01-23 18:14:16 +05:00
Andrej730
582476cabe
Fix LoadGroupDecorationData data item name for consistency
2025-01-23 18:14:16 +05:00
Andrej730
8f9417a59a
Fix UI errors in Structural Analysis panel when project has no IfcStructuralAnalysisModel
2025-01-23 18:14:16 +05:00
Andrej730
e18475e1ef
Use cancel icon for disabling operators for consistency
2025-01-23 18:14:16 +05:00
Andrej730
d38608ea04
Fix UI errors with not unset active library id after disabling editing
...
It lead to UI errors when library was removed and Bonsai was still trying to get it from active_library_id.
2025-01-23 18:14:16 +05:00
Andrej730
42d01ac222
Fix append_asset conversion issue after 3ffc0bc #6012
...
Custom file.add wasn't considering IfcLengthMeasure attributes...
2025-01-23 18:14:16 +05:00
Andrej730
5bc91ec4e4
append_asset - fix bug identifying None profiles as equivalent
2025-01-23 18:14:16 +05:00
Andrej730
ad99990f17
typing
2025-01-23 18:14:15 +05:00
Andrej730
8dce7b9f68
black .
2025-01-23 18:14:15 +05:00
Bruno Perdigão
d8342134a0
Wall polyline tool - refactor offset functionality
2025-01-23 09:31:28 -03:00
Bruno Perdigão
8b678309fd
Refactor polyline tool instructions.
...
Follows 8fc0d7a808
2025-01-23 09:31:28 -03:00
Bruno Perdigão
88dc9d7633
Enable "shift + mouse wheel" to function before locking angle.
2025-01-23 09:31:28 -03:00
Bruno Perdigão
09dbae7c56
Replace hard-coded unit scale with ifcopenshell.util.unit.calculate_unit_scale
2025-01-23 09:31:28 -03:00
Dion Moult
c6b64baccb
Fix #6028 . Deprecate schema dir as it's basically just data.
2025-01-23 23:10:40 +11:00
Dion Moult
15bc968179
Remove dead code from schema.py
...
Slowly getting to a point where we can completely delete this legacy
file.
2025-01-23 22:59:41 +11:00
Dion Moult
b7e4904905
Change gitkeep into gitignore and move ignore up to root gitignore
...
I kept on getting confused on why things were being ignored in the data
dir and didn't know where to look.
2025-01-23 22:48:25 +11:00
Kipre
039b7ef4ca
Fix issue with eliminate_touching_operands
2025-01-23 11:23:34 +01:00
Dion Moult
e2f10a5784
Minor UI improvement to keep the right alignment of total elements in the material manager
2025-01-23 20:54:43 +11:00
Dion Moult
adff44febd
Snaps are on by default
...
Users can still turn them off. We are a precision modeling app after all
:)
2025-01-23 20:44:20 +11:00
Dion Moult
35d2791657
Fix warning when aggregate decorator cannot be drawn on the screen.
2025-01-23 20:29:21 +11:00
Scott Lecher
a7a9fcc73a
adds calculations for projected_length of gradient curve segments ( #6006 )
2025-01-22 15:37:29 -08:00
Andrej730
5c3045b4db
Temporarily disable 3ffc0bc due to a bug with units conversion
2025-01-22 20:45:06 +05:00
Andrej730
b812d21282
Fix non-existent name argument in add_si_unit docs
2025-01-22 19:07:44 +05:00
Andrej730
083aa4da85
Fix error after 5e93097
2025-01-22 19:07:44 +05:00
Andrej730
605a29786c
Fix tests after 7b62b03
...
Since calculate_unit_scale now requires a project.
def calculate_unit_scale(ifc_file: ifcopenshell.file, unit_type: str = "LENGTHUNIT") -> float:
"""Returns a unit scale factor to convert to and from IFC project units and SI units.
Example:
.. code:: python
ifc_project_length * unit_scale = si_meters
si_meters / unit_scale = ifc_project_length
:param ifc_file: The IFC file.
:param unit_type: The type of SI unit, defaults to "LENGTHUNIT"
:returns: The scale factor
"""
> if not (units := ifc_file.by_type("IfcProject")[0].UnitsInContext):
E IndexError: list index out of range
2025-01-22 18:24:52 +05:00
Dion Moult
3dfc7097b2
Fix #6013 . Fix bug where Blender object names weren't updated when using copy attributes.
2025-01-22 22:54:58 +11:00
Andrej730
4adca79301
Fix edit_attributes triggering name_callback and adding indices to names #6013
...
It was triggering name_callback, adding indices to the names and writing the name with index to ifc.
Also now check previous and new object name explicitly instead of relying on `obj.name` as it may have Blender indices (Blender doesn't support multiple objects sharing the same name).
2025-01-22 16:35:23 +05:00
Andrej730
a8672bc5cb
root.set_object_name to reuse loader.get_name
2025-01-22 16:35:23 +05:00
Andrej730
882bacf91a
bim.copy_attribute_to_selection - add info message
...
It's important to have somewhere information on how many elements were actually affected since some of the selected objects may not support the used attribute.
Example - https://i.imgur.com/UrLNWcF.png
2025-01-22 16:35:23 +05:00
Andrej730
23a6721f8e
Fix bim.copy_attribute_to_selection missing undo
2025-01-22 16:35:23 +05:00
Andrej730
db93ca1067
bim.inspect_from_object - support representation items
2025-01-22 16:35:22 +05:00
Andrej730
f02fd69934
Bonsai - deprecate bpy.app.version checks
...
As we support only Blender 4.2+
2025-01-22 16:35:22 +05:00
Andrej730
74a9669fa8
Fix error tabbing into IfcRevolvedAreaSolid with a boolean + add resolve_base_items
...
resolve_items couldn't find IfcRevolvedAreaSolid inside a boolean result
2025-01-22 16:35:22 +05:00
Andrej730
6ce4b5d0e8
Fix error selecting boolean (RepresentationItemObject missing ifc_definition_id)
2025-01-22 16:35:22 +05:00
Andrej730
391091ad12
typing
2025-01-22 16:34:58 +05:00
Andrej730
a774a75509
black .
2025-01-22 16:00:11 +05:00
Andrej730
06f25b9846
bim.select_boolean - fix operator name
2025-01-22 11:50:49 +05:00
Andrej730
b752f798bd
bim.enable_editing_booleans - add poll message
2025-01-22 11:50:48 +05:00
Andrej730
5ca615114f
Also support changing profile for other sweptsolids
...
E.g. changing it for IfcRevolvedAreaSolid - https://imgur.com/a/jHOC8rt
2025-01-22 11:50:48 +05:00
Bruno Perdigão
c72f17068c
Add support for direction sense and offset in slabs with x_angle
2025-01-21 10:49:29 -03:00
Bruno Perdigão
372654267c
Fix issues with add/remove layer handler when using "Quick Create Type".
2025-01-21 10:49:29 -03:00
Bruno Perdigão
5cf4740f8e
Add direction sense and offset support for slabs
2025-01-21 10:49:29 -03:00
Bruno Perdigão
3740b86678
Add handlers to update layer when adding and removing material layer
2025-01-21 10:49:29 -03:00
Bruno Perdigão
325d6138d3
Add more options to Bonsai snap target. Follow 5649708ca4
2025-01-21 10:10:57 -03:00
Gorgious56
fc58b1769c
Improve logic for https://github.com/IfcOpenShell/IfcOpenShell/commit/bced62bd5c6615ec1ff8c3a6af3334e469e5f9fa
2025-01-21 13:56:32 +01:00
Dion Moult
82fbec68d1
Fix #5973 . You can now select the item from the item panel.
2025-01-21 23:52:33 +11:00
Andrej730
bb1ec569bc
Option to name existing used unnamed profiles
...
Example - https://imgur.com/a/IhMbs6K
2025-01-21 17:31:21 +05:00
Andrej730
5a766e79bd
Show error message trying to edit not supported type of profile
...
E.g. previously if you would tab into editing IfcExtrudedAreaSolid that was using not supported profile type (e.g. IFCCSHAPEPROFILEDEF) it would import it as empty geometry and tabbing out then would save it corrupting the original profile. Now there is an error message that it's not yet supported - https://i.imgur.com/NzksYVP.png
2025-01-21 17:31:21 +05:00
Andrej730
ff337bc849
Change currently edited item's profile
...
Example - https://imgur.com/a/2yiVIW5
2025-01-21 17:31:20 +05:00
Andrej730
992424c748
Update item decorator when moving item in viewport
...
Before this fix - https://imgur.com/a/mhpBvCG
2025-01-21 17:31:20 +05:00
Andrej730
0268f140ad
typing
2025-01-21 17:31:20 +05:00
Andrej730
59c0719b03
black .
2025-01-21 17:31:20 +05:00
Andrej730
c91fbc4d40
Setup user data dir
...
Create some empty folders in the user data directory to hint the user.
2025-01-21 17:30:38 +05:00
Gorgious56
bced62bd5c
When switching between ElementType and Element, keep the same class and predefined type if possible
2025-01-21 13:29:25 +01:00
Dion Moult
b809bc89f0
See #5973 . Representation items UI now works in item mode.
2025-01-21 23:28:33 +11:00
Dion Moult
2452b1be50
See #5973 . Only show shape aspect attributes if creating a new shape aspect to make it clearer how to use the UI.
...
Previously the UI for creating new aspects and reusing an existing
aspect showed simultaneously which was confusing.
2025-01-21 23:21:07 +11:00
John Yani
7de8427a28
[Bonsai docs] Update version switching logic ( #6005 )
...
* Create brand.html
* Update custom.css for version switcher
* Update brand.html
* Update brand.html
Improve select box logic
2025-01-21 11:06:24 +11:00
John Yani
ee0adf2fff
[Bonsai docs] Add version switcher to sidebar and update custom styles ( #6004 )
...
* Create brand.html
* Update custom.css for version switcher
* Update brand.html
2025-01-21 10:24:53 +11:00
John Yani
2ce420ef6f
Follow up #5994 ( #6003 )
...
* Create docs-deployment.yml
* Update docs-deployment.yml
Add CNAME
* Update docs-deployment.yml
* Create docs-deployment-unstable.yml
* Add requirements.txt
* Change trigger branch
2025-01-21 08:45:39 +11:00
Bruno Perdigão
290849d43a
Fix snap to axis after 5649708ca
2025-01-20 14:59:04 -03:00
Andrej730
5e930972d6
User 'data' folder #5564
...
Bonsai now creates a user data folder that allows you overriding Bonsai data files. E.g. you can put you own `default.css` as `data/assets/default.css` in that folder and it will override the `default.css` Bonsai is using for the drawings. Previously you could have change internal `default.css` but Bonsai would always restore the original one on every update / reinstallation.
You can also store your .ifc files in data/libraries or data/templates and Bonsai will ensure they're loaded and you won't need to worry about Bonsai removing them later.
E.g. on Windows this path is `C:\Users\xxx\AppData\Roaming\bonsai\bonsai\data`/
You can also find path in the preferences - https://i.imgur.com/kwMc0JU.png
2025-01-20 19:32:59 +05:00
Bruno Perdigão
c08d25de42
Change Bonsai snap target UI to column.
2025-01-20 11:31:58 -03:00
Bruno Perdigão
5649708ca4
Add support and UI for Bonsai snap target.
...
The user can now select snap target for Bonsai polyline tool.
The options are shown in the bottom of Blender's Snapping panel.
2025-01-20 10:56:22 -03:00
Bruno Perdigão
9e81a3da17
Rename "Edge-Intersection" to "Edge Intersection"
2025-01-20 10:56:22 -03:00
Bruno Perdigão
b509374c27
Add initial curve snapping functionality
2025-01-20 10:56:22 -03:00
Gorgious56
704bb27cf5
You can now user ALT + Click to ensure an object is unlinked from non-IFC collections when assigning a new container
2025-01-20 14:25:55 +01:00
Dion Moult
7b62b035c9
Fix #5964 . Only get the unit assignment from the project to prevent ambiguity.
...
I really don't know why I didn't do this before.
2025-01-20 23:50:03 +11:00
Dion Moult
c5fe80db7b
Make georeferencing decorator use soft limits. Don't scale font.
2025-01-20 23:48:51 +11:00
Andrej730
3ffc0bc39c
append_asset to use custom file.add to prevent duplicating profiles and materials #5925
2025-01-20 16:23:31 +05:00
Andrej730
0a266bba5d
Fix #6000
2025-01-20 16:16:39 +05:00
Andrej730
ecf0d255f7
Roll back build from a65aa92 #6001
2025-01-20 16:16:39 +05:00
Andrej730
c0499a2c88
black .
2025-01-20 16:16:38 +05:00
John Yani
3ad247b9a7
Automatic build and deploy bonsai docs on push ( #5994 )
...
* Create docs-deployment.yml
* Update docs-deployment.yml
Add CNAME
* Update docs-deployment.yml
* Create docs-deployment-unstable.yml
* Add requirements.txt
2025-01-20 21:13:21 +11:00
Bruno Postle
13b93a9ea8
Move cache_dir from site-packages to local folder ( #5856 )
...
Previously cache_dir was located under site-packages, which is managed
by blender and could be read-only. Now location defaults to eg.
~/.cache/bonsai or equivalent location on other platforms. See #5564
Note this adds a dependency on the platformdirs python module
2025-01-20 13:14:51 +05:00
Dion Moult
ebdfe2bccd
Fix #5319 . Workaround for upstream bpypolyskel bug where dormer ridges were not flat.
2025-01-20 17:17:37 +11:00
Dion Moult
942c3fec87
Add missing bin directory
2025-01-20 14:35:50 +11:00
Dion Moult
651c24bbfe
See #5799 . Fix segfault in upstream Blender when unlinking material objects in specific scenario.
...
I can't explain this one so I'm pretty embarrassed to commit this, but
it crashes (see situation in #5799 ) on my machine and I can't recreate
it outside this scenario. In any case I think as a general strategy we
should:
1. Minimise reliance on msgbus
2. Msgbus listeners themselves should be wary of invalid state (e.g. if
object is now unlinked)
3. Not clear listeners (don't overreach)
2025-01-20 14:01:11 +11:00
Dion Moult
b2213592ea
Fix #5799 . Also purge presentation style assignment when purging unused styles.
2025-01-20 13:59:00 +11:00
Dion Moult
c311b65af5
See #5799 . Allow merging unnamed styles.
...
Styles are special because their names aren't critically semantic. It's
more to do with the style definition.
2025-01-20 13:58:39 +11:00
Dion Moult
e8b097e2cb
See #5799 . Remove slow / unnecessary material criticals that also have a risk of crashing
...
In general Blender on my machine at least sometimes has huge lag with
material previews.
2025-01-20 13:57:07 +11:00
Dion Moult
193ff1cd0c
Mention builds website in docs.
2025-01-20 12:15:49 +11:00
Dion Moult
a65aa92c87
See #5999 . Revert to older bot build before speed regression.
2025-01-20 12:15:36 +11:00
Dion Moult
6af19bc98d
Fix 3x slower major speed regression introduced in 98a9550260
...
The commit that introduced the problem was trying to optimise rendering
dense meshes with the opening decorator. However, it introduced more
calculation in the initial project load and stored more data on every
object. This resulted in models loading 3x slower for me which is pretty
major. The original problem needs further investigation.
2025-01-20 11:24:19 +11:00
Dion Moult
5769c0d442
Fix #5754 . Cosmetic bug where UI was not refreshed when using advanced mode causing incomplete decorators to be drawn.
2025-01-20 00:25:29 +11:00
Dion Moult
5c058dff3e
Fix #5766 . Bump IOS.
2025-01-19 21:49:51 +11:00
Dion Moult
f86e414055
Forgot to add a placement for new elements which is invalid.
2025-01-19 21:38:52 +11:00
Dion Moult
c17febac0c
Fix #5996 . Bug where getting selected or active objects was not clear.
...
Sometimes we want to fetch selected objects, and that includes the
active object, even if the active object isn't actually highlighted in
the viewport (albiet rare, I think?).
Conversely sometimes we want to get the active object, even if it isn't
actually highlighted. The tool.Blender functions now have kwargs to
distinguish between these.
2025-01-19 17:17:56 +11:00
Dion Moult
2d811a6786
Fix fetching layers in item mode. Apparently the inverse name changes slightly.
...
Maybe because an item has a single layer whereas the shape is meant to
have many layers?
2025-01-19 17:09:32 +11:00
Dion Moult
6eed5607c4
Fix #5972 . Purge old non-item-based boolean code
2025-01-19 17:09:02 +11:00
Dion Moult
0b46a31c25
Add item menu is now tailored for CSG representations.
...
I find this a bit of a strange behaviour in IFC. Imagine you start with
a Tessellation representation type. You're only allowed meshy things, no
solid extrusion. And vice versa if you have a SweptSolid representation
type.
Now imagine you suddenly create a boolean. Now, you can mix both
tessellations and solids together.
2025-01-19 16:58:10 +11:00
Dion Moult
4d7f078f8b
Ensure item decorator is updated when editing things in item mode.
2025-01-19 16:56:31 +11:00
Dion Moult
046f7cbfd2
See #5972 . You can now select booleans recursively.
2025-01-19 13:54:40 +11:00
Bruno Postle
4152641d1f
Ensure files in libs/bin are executable
...
When blender extracts wheels it doesn't preserve executable permissions
2025-01-18 21:17:43 +00:00
Bruno Postle
ec55c8183f
remove duplicate 'libs' folder
...
The Bonsai installer contained a 'libs' folder in both the ZIP bundle
and the bonsai wheel, but only the one in the wheel was actually used
2025-01-18 19:59:57 +00:00
Bruno Postle
b54741dd0b
Merge branch 'v0.8.0' of github.com:IfcOpenShell/IfcOpenShell into v0.8.0
2025-01-18 19:18:15 +00:00
Bruno Postle
b4190876b0
Actually put ifcmerge in the linux ZIP installer
2025-01-18 19:16:50 +00:00
Bruno Perdigão
864eeb42e9
Add filling objectcs to OverrideMove
2025-01-18 15:15:54 -03:00
Bruno Perdigão
7fcb7c6433
Allow moving the current aggregate/nest when aggregate/nest mode is active
2025-01-18 12:17:28 -03:00
Bruno Perdigão
015d8f6722
Add nest mode operators to workspace UI.
2025-01-18 12:06:00 -03:00
Bruno Perdigão
c07c2d7692
Complement changes from abd05e939a
2025-01-18 11:48:37 -03:00
Dion Moult
a57a0eb4eb
See #5972 . Prioritise clipping results where possible.
2025-01-19 01:09:11 +11:00
Dion Moult
e40644c4f6
See #5972 . You can now remove boolean operations in the stack without deleting operands.
2025-01-19 01:08:47 +11:00
Dion Moult
8c746b1a2c
Validate representation type items when leaving item mode.
2025-01-19 00:30:30 +11:00
Dion Moult
8e98aecc0b
Document add boolean API
2025-01-19 00:30:30 +11:00
Bruno Postle
34a2d95524
Bonsai offers to install Git and ifcmerge ( #5961 )
...
The ZIP installer now contains a `libs/bin` folder that contains
`ifcmerge`. Bonsai on `register()` adds this folder to the system `PATH`
for the current Blender session. Advantage of this is that we don't have
to fiddle with the registry on windows, or install files to
`~/.local/bin` on Linux, it _should_ work on Darwin, updates are
automatic, and we have a mechanism to ship other executables if
required.
(Note that ifcmerge.exe increases the size of the Windows Bonsai ZIP
download by about 7MB)
If Git isn't installed on Windows, the Git panel now offers to install
it from the Windows Package Manager Community Repository using `winget`.
2025-01-18 10:22:45 +00:00
Dion Moult
a12427e44a
See #5972 . Add tests for adding boolean and check against recursive booleans and invalid boolean items.
2025-01-18 21:13:54 +11:00
Dion Moult
35734f4b67
Guess representation type from items based on where rule
...
Previously we never implemented this in a very strict way so it was
prone to mistakes.
2025-01-18 18:35:13 +11:00
Dion Moult
c54ea1e5d2
Shape builder can now create blocks
2025-01-18 18:34:40 +11:00
Bruno Perdigão
abd05e939a
Add nest decorator
2025-01-17 23:00:05 -03:00
Bruno Perdigão
d02c5ca1e6
Rename OverridaAggregateMove to OverrideMove.
...
It now deals with nests too.
2025-01-17 22:58:29 -03:00
Bruno Perdigão
a5afba03ab
Add "nest mode" similar to "aggregate mode".
2025-01-17 22:47:11 -03:00
Bruno Perdigão
3f914cdf27
Remove unused handler from AggregateModeDecorator
2025-01-17 22:43:05 -03:00
Bruno Perdigão
1d03e916f3
Fix after c4f85dffa4
2025-01-17 17:45:21 -03:00
Bruno Perdigão
fd279234f3
Fix #5818
2025-01-17 16:41:01 -03:00
Bruno Perdigão
a44439655c
Install Bonsai decorators from Viewport Overlays in load_post.
2025-01-17 16:23:40 -03:00
Bruno Perdigão
c4f85dffa4
Fix OverrideMoveAggregate to work for multiple layers of aggregates.
2025-01-17 15:51:26 -03:00
Bruno Perdigão
8d63845f3d
Change AddSlabFromWalls to consistently create walls in a counterclockwise direction.
...
This guarantees that the external face of the walls aligns with the edges of the slab.
2025-01-17 15:09:57 -03:00
Thomas Krijnen
e0e24948be
Update build_rocky.yml - safe.directory
2025-01-17 14:07:36 +01:00
Thomas Krijnen
84420a8973
Don't allow empty sha for add_commit_sha
2025-01-17 13:57:14 +01:00
Dion Moult
7ee055f4f3
See #5972 . You can now add half space solid items in item mode.
2025-01-17 23:02:32 +11:00
Andrej730
1f436bcec6
replace date picker util operators with wm.context_set_string
...
Since they were just setting a scene property which can be done by a default operator.
2025-01-17 17:00:06 +05:00
Andrej730
468c1a2580
Highlight currently selected date in date picker
...
Example - https://imgur.com/a/ItNg9sZ
2025-01-17 17:00:06 +05:00
Andrej730
e8cb9e7f3c
Date picker to support IfcDateTime
...
See https://imgur.com/a/9a7JfMO
2025-01-17 17:00:06 +05:00
Andrej730
fa98a7e8f7
black .
2025-01-17 17:00:06 +05:00
Andrej730
686a5e7387
Fix #5988 after 6fb0f5e63a
2025-01-17 15:24:02 +05:00
Dion Moult
e1da08579c
See #5972 . You can now add booleans in item editing mode, with support for all three boolean operators.
2025-01-17 20:55:27 +11:00
Dion Moult
0a87e92dcf
Move geoference visualisation UI into panel header to be consistent.
2025-01-17 20:54:06 +11:00
Dion Moult
24b3cfc067
Fix #5897 . Fix #5488 . Fix #5498 . Bug where you couldn't edit newly added annotation.
...
The annotation adding code was a bit of a mess, spread around
create_annotation, create_annotation_occurrence, and
bpy.ops.bim.add_annotation. I've now consolidated it all into
core.add_annotation and updated it to work with the new item editing
mode (basically new objects need to reload their representation to
populate item_ids). Things are still messy, but a bit less now.
2025-01-17 20:53:29 +11:00
Thomas Krijnen
c163b260cf
Try solve #5989
2025-01-17 10:45:21 +01:00
Andrej730
9e50c89c01
Work schedule UI - use cached data instead of accesing IFC
2025-01-16 18:30:44 +05:00
Andrej730
b28a3b6e32
Basic header for work schedule panel header #5928
...
Example - https://i.imgur.com/9thZQCX.png
2025-01-16 18:30:44 +05:00
Andrej730
9573628bf6
fix typo in sequence/prop.py and use more consistent name for props
...
Issue was that taskcolumns_enum doesn't exist
2025-01-16 18:30:44 +05:00
Andrej730
5f034bf4a9
bim.copy_railing_parameters - add poll message
2025-01-16 17:36:12 +05:00
Andrej730
de6e54040a
FilledOpeningGenerator - update only parts instead of the full decomposition
...
similar to 0662b0c
2025-01-16 17:36:12 +05:00
Andrej730
50b39fdd10
bim.clone_opening - update affected representations
2025-01-16 17:36:12 +05:00
Andrej730
eef04fb91c
bim.clone_opening - always show in opening's ui
...
Otherwise it was hidden until user guesses that 2 objects need to be selected for it to appear.
Also, not sure if it's useful operator anymore - it seems just duplicating an opening and then adding it does the same thing.
2025-01-16 17:36:11 +05:00
Andrej730
a383f60915
Show voided elements in UI
...
E.g. show voided wall when window or wall's opening is selected.
Example - https://i.imgur.com/jxjWPeE.png
2025-01-16 17:36:11 +05:00
Andrej730
44131a7fe5
Select filling objects from UI
...
Example - https://i.imgur.com/BijTwgo.png
2025-01-16 17:36:11 +05:00
Andrej730
c66f2131e2
bim.select_entity - move to bim module
...
as it can be generally useful, not just in tester
2025-01-16 17:36:11 +05:00
Andrej730
035999d0c3
bim.update_openings_focus - remove unnecessary ifc operator
2025-01-16 17:36:11 +05:00
Andrej730
61d68b74ca
bim.add_filled_opening - remove unused operator
2025-01-16 17:36:10 +05:00
Andrej730
133459faec
typo
2025-01-16 17:36:10 +05:00
Andrej730
6fb0f5e63a
typing
2025-01-16 17:36:10 +05:00
Andrej730
2859e9632e
black .
2025-01-16 17:36:10 +05:00
Andrej730
521a8183e7
Fix #5953 after d6e6a6d
2025-01-16 17:36:09 +05:00
Dion Moult
a63f67ad32
Fix #5841 . Incorrect axis usage when generating LAYER2 elements from polyline.
2025-01-16 23:19:11 +11:00
Dion Moult
aeba2885e4
Fix #5984 . Incorrect axis usage when generating slabs.
2025-01-16 23:11:51 +11:00
Dion Moult
f50ae2faa5
See #5972 . You can now load a hierarchy to visualise the boolean result tree.
2025-01-16 22:58:17 +11:00
Dion Moult
bd739f8bfd
Fix undo bug when marking booleans as manual
2025-01-16 22:39:37 +11:00
Dion Moult
5b2243089d
See #5972 . You can now delete boolean operands in item editing mode.
2025-01-16 22:10:28 +11:00
Dion Moult
2fe4680ca1
See #5972 . Boolean operands are now loaded in item editing mode and are editable.
2025-01-16 21:28:05 +11:00
Taku Makoni
21624d6065
Wrong Import Package ( #5982 )
2025-01-16 12:20:59 +11:00
Taku Makoni
b9f40342b2
Grammatical error
2025-01-16 11:52:09 +11:00
Bruno Perdigão
3e879c6156
Change how new objects added are handled in aggregate mode.
...
When in aggregate mode, new objects will now be automatically assigned to
the current aggregate.
2025-01-15 16:11:27 -03:00
Bruno Perdigão
c360b91f4a
Remove constraints from the aggregates.
2025-01-15 16:11:27 -03:00
Andrej730
23b1a71cba
Support adding duplicated existing boolean
...
Example - https://imgur.com/a/rRQz9dx
2025-01-15 18:41:21 +05:00
Andrej730
5d17554d04
bim.add_boolean - support adding multiple booleans at once
...
Example - https://imgur.com/a/IWDqMRT
2025-01-15 18:41:20 +05:00
Andrej730
1f3fc3c2b9
bim.add_openings - display in UI if multiple potential openings are selected
2025-01-15 18:41:20 +05:00
Andrej730
d6da8a7ee1
Support duplicating potential openings and potential/existing booleans
2025-01-15 18:41:20 +05:00
Andrej730
cfb4cd8af9
bim.add_potential_opening - remove unused code
...
draw_settings() was never used
2025-01-15 18:41:20 +05:00
Andrej730
7eff4db4eb
reuse add_tracked_opening
2025-01-15 18:41:19 +05:00
Andrej730
689688c76b
Fix error selecting material usage in Materials UI
...
Previously it would error, now it selects related profile / layer set.
2025-01-15 18:41:19 +05:00
Andrej730
0ea513818b
Support assigning material sets as usages from UI #5933
...
It's on alt+click in Materials UI, see example - https://imgur.com/a/8gP7iAZ
2025-01-15 18:41:19 +05:00
Andrej730
2fdcb41c4e
black .
2025-01-15 18:41:19 +05:00
Dion Moult
65c99c57cd
Prefill class / product type if using a particular BIM tool for convenience, and hide fields.
2025-01-15 22:04:58 +11:00
Dion Moult
fe54b24f5f
Fix bug where box decoration when adding empty geometry failed
2025-01-15 22:04:24 +11:00
Dion Moult
7fdfdbf8b4
Fix #5971 . You can now specify a name and description when adding objects. Clean naming and description is critical!
2025-01-15 20:57:19 +11:00
Dion Moult
53906d824a
Fix #5977 . Silly mistake I forgot all([]) is still True.
2025-01-15 20:47:56 +11:00
Thomas Krijnen
a687a90039
Break out multiple tasks per representation when rep is directly reused #5978
2025-01-15 10:24:52 +01:00
Thomas Krijnen
c37fd6ae0b
Don't throw exception but set to $ when encountering invalid instance name #5680
2025-01-15 10:08:31 +01:00
Dion Moult
06e8e2b35c
Remove obsolete separate_verts_layer when marking edge angles for roofs
...
New roof system automatically handles this scenario (using poke
operator) so no need to mark it.
2025-01-15 19:46:34 +11:00
Dion Moult
fd51b9a9e9
Fix #5968 . Fix #4040 . Rewrote roof generation using per face extrusions and cutting planes instead of edge sliding.
...
WARNING! The roof generation is now quite significantly different. This
WILL change your geometry when you refresh roofs from existing models.
- The roof profile now always represents the top of eave. This better
represents how things are built rather than bottom of eave which was
previous.
- The roof therefore always grows down from the profile. The rafter
edge angle can only be acute. This means that the roof will never grow
larger than the footprint profile that you've drawn. (before, the
footprint was not guaranteed to match).
- The roof thickness is now the actual thickness of the roof, not the
"vertical dimension" of the roof. This means that the roof thickness can
now match intended layer thicknesses instead of you needing to do math
to work it out.
I've rewritten the internals of how roofs were generated to be hopefully
a lot simpler but as a tradeoff it's more restrictive. After the
skeleton is generated, non-uniform angles would be handled through
vertex splitting and moving. This works in simple scenarios but fails in
more complex ones. The new approach only handles non-uniform angles on
triangular faces. These faces are really easy to handle compared to
ngons, but are also more robust. The rafter edge angle is also now
handled using a clipping plane, which is a lot, lot simpler than vertex
sliding math.
Each face is now processed separately and then merged at the end. This
means that if a face has a different angle, it will now correctly
represent the different thickness at that portion of the roof.
In the process consistent roof thickness / rafter angle bugs were fixed.
2025-01-15 19:43:39 +11:00
Andrej730
3f2f296d5f
Fix error with Shift-E #5975
...
E.g. two objects are selected - tesselation and profile and tesellation being active object. Using s-e with deselect tesselation object as it doens't have a usage but Bonsai would still try to run bim.enable_editing_extrusion_profile on it leading to the error.
Also fix possible issues for hotkey executed without active object (it seems all operators in hotkey do require active object)
2025-01-14 17:42:03 +05:00
Andrej730
020937835a
Fix issue enabling ifcsverchok if sverchok installed under a different name #5913
2025-01-14 17:42:03 +05:00
Andrej730
a52e3615d6
Map ifc2x3 IfcAnnotationOccurrence to IfcStyledItems in ifc4 #5917
2025-01-14 17:41:58 +05:00
Andrej730
adb61c5a16
bonsai makefile - use new option for old no-clobber behaviour
...
Apparently (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62572 ) coreutils have changed `mv -n` to throw an error now instead of working silently, therefore our build was failing on Mac when Github Action switched from Ubuntu 22 to 24.
`--update=none` seems to restore the old behaviour.
2025-01-14 17:41:58 +05:00
Andrej730
a50973ede7
typing
2025-01-14 17:41:58 +05:00
Andrej730
74ca86678a
ifcfm cobie - color code ods file tabs too
2025-01-14 13:48:50 +05:00
Gorgious56
ac2e69bd66
Don't close type manager when using the enum search feature while adding a new type
...
Also reduce the attribute name a bit
2025-01-14 08:44:21 +01:00
Dion Moult
595a3b3f87
Preselect IFC class when adding elements for convenience.
2025-01-14 14:22:15 +11:00
Dion Moult
48f534e7c1
Say "Type" instead of None in the general BIM tool.
2025-01-14 14:13:39 +11:00
Dion Moult
1ed770d454
Fix #5921 . Bug when parsing IDS XML of facets with no attributes.
2025-01-14 13:36:33 +11:00
Dion Moult
ec600ec72e
IfcTester can now read from XML strings in addition to opening files on disk
2025-01-14 13:35:45 +11:00
Dion Moult
adcc23541a
Fix bug where starting a new file in an existing session would prompt an error.
...
Bpy.context.active_object is not available in-between loading / starting
a new file.
2025-01-14 13:35:01 +11:00
Dion Moult
9a77c94758
Fix #5967 . Incorrect logic in the for/else block when adding new elements.
...
The for/else block was too greedy, meaning that if nothing was selected,
it would still try to create slabs from walls. I find for/else confusing
so I restructured the section to do more early returns and unindent the
logic.
2025-01-14 12:20:22 +11:00
Moritz Amberger
e89d195f9b
moved full_schema, is_strcit, should_expand, should_get_inverse, should_get_psets. should_get_geometry and should_skip_geometry_data to the Patcher class definition. deleted those parameters from the patch definition so that users are able to set them by themselves. removed the hardcoded tmp-File for the db_file name
2025-01-14 09:30:34 +11:00
tim
228e9d0571
Refactor detect_icon_color_mode to accept attribute path suffix
...
• Removed bpy.context.preferences.themes[0] from the input and hardcoded it in the function.
• color_path now only requires the attribute path suffix (e.g., "user_interface.wcol_regular.text").
• Updated error handling to default to "dm" instead of "lm".
2025-01-14 09:22:53 +11:00
tim
7280669725
Typo
2025-01-14 09:22:53 +11:00
tim
83b8bb153d
One function for model and cad custom icons
...
Apply detect_icon_color_mode function to model and cad workspaces
2025-01-14 09:22:53 +11:00
tim
88891409fd
New icon color mode function
...
New function for determining which icon color mode to use: dark (dm) or light (lm)
2025-01-14 09:22:53 +11:00
tim
b6ba1aaa8c
Hide shortcuts from header
2025-01-14 09:22:22 +11:00
ti
ffb3d2d6e9
check for None
2025-01-14 09:22:03 +11:00
Dion Moult
efede9eb03
No idea why Github actions is failing for MacOS. All code looks good to me.
2025-01-14 00:14:03 +11:00
Andrej730
ac315e8a55
ifcfm cobie 2.4 - color code excel tabs
...
example - https://i.imgur.com/tSeqyjj.png
2025-01-13 17:53:02 +05:00
Andrej730
b7c18221f4
get_bbox - optimize by using numpy arrays
2025-01-13 17:53:02 +05:00
Andrej730
7a49f1611e
get_shape_matrix - small optimization
...
reuse existing matrix instead of recreating new
2025-01-13 17:53:02 +05:00
Andrej730
5c0a7af830
cobie24 - implement Coordinate tab #5926
2025-01-13 17:53:02 +05:00
Andrej730
a968b61d02
np_matrix_to_euler, np_matrix_normalized
2025-01-13 17:53:01 +05:00
Andrej730
0ac9d739f8
remove unused code
2025-01-13 17:53:01 +05:00
Andrej730
74c6480808
bim.add_element to select added object
2025-01-13 17:53:01 +05:00
Andrej730
0601802005
typing
2025-01-13 17:53:01 +05:00
Dion Moult
9784fb1c49
Pyodide example app should use IfcShapeRepresentation to be valid
2025-01-13 23:12:49 +11:00
Gorgious56
039dcbaefa
Stair Modifier : You can now set a total length target that will update individual tread runs automatically. You can lock the total length target and modify tread run or number of treads to keep the same global dimensions.
2025-01-13 12:04:13 +01:00
Gorgious56
1cd17fd5f8
Merge pull request #5947 from IfcOpenShell/update_type_manager
...
Update Type Manager
2025-01-13 09:40:42 +01:00
Gorgious56
2f0f9fe08b
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into update_type_manager
2025-01-13 09:38:41 +01:00
Gorgious56
50ed75fcc2
Fix potential bug where a class doesn't have a predefined type
2025-01-13 09:32:23 +01:00
Gorgious56
9eaf41c9f0
The filter search field now also filters description and predefined type
2025-01-13 09:28:56 +01:00
Dion Moult
581a674654
Fix #5952 . Aggressively block scaling of IFC elements to prevent user confusion.
2025-01-13 18:01:25 +11:00
Dion Moult
e29f686d3f
Update setting literal from old name of "debug" to new name "debug-boolean".
2025-01-13 15:45:27 +11:00
Dion Moult
8cf7057abc
Fix #5954 . Special automatic movement of features shouldn't then also move children of those features.
...
If you move a wall, and that wall has features (e.g. openings), it's
desirable to also move those openings (because they are invisible). This
is a special exception to `should_transform_children` because the
definition of the feature (opening) is inherently tied to the parent
(wall).
What wasn't considered is that this would typically then also move
subchildren of the features (e.g. fills like doors). I'm surprised
nobody caught this earlier.
I did also consider another approach where if you move a wall, it moves
all unfilled openings, and if you move a door which fills a opening, it
moves the opening too. Intuitively it sounds nice, but it doesn't work
because:
- Openings can have multiple fillings. If you move all fillings, they
all fight to move the openings.
- All logic about children goes one way: a placement may have child
placements relative to it. This breaks the convention (if moving a door
instead moves its opening) which can make brains explode.
- It starts to conflate rules about relative / referenced placements
with spatial decomposition. We assume all IFCs are valid and follows the
convention of relative placement but we cannot guarantee this. This also
leads to brain explosion.
2025-01-13 15:44:52 +11:00
Dion Moult
316b9554d4
Fix #5959 . Bug where default selection basket in selector query was not added per facet list.
...
Previously the code looked for additive facets (entity, instance)
anywhere in the query, and then only added the default basket once at
the beginning of the query. This change makes it look for additive
facets in order (that way you could start with a default selection, and
then later use an additive facet) and does it per facet list (so you can
omit the additive facet at the beginning of each list).
2025-01-13 12:46:44 +11:00
tim
95fa6f39c4
New furniture icon
...
Chair icon for furniture
2025-01-13 10:47:35 +11:00
Thomas Krijnen
65ffbe081b
Pyodide app readme
2025-01-12 15:50:19 +01:00
Thomas Krijnen
936984dd31
Update publish-pyodide-demo-app.yml
2025-01-12 15:16:57 +01:00
Thomas Krijnen
590c6eed0a
Update publish-pyodide-demo-app.yml
2025-01-12 15:12:44 +01:00
Thomas Krijnen
a696c7bbb5
Update publish-pyodide-demo-app.yml
2025-01-12 15:10:59 +01:00
Thomas Krijnen
6ff1d06938
Create publish-pyodide-demo-app.yml
2025-01-12 15:07:44 +01:00
Thomas Krijnen
6deb7121cc
demo-app/CNAME
2025-01-12 15:00:54 +01:00
Thomas Krijnen
6aec2f7a02
pyodide/app-demo
2025-01-12 14:50:20 +01:00
Dion Moult
0eb987fc07
Black
2025-01-12 22:43:41 +11:00
Dion Moult
04092d19be
Refactor common function for parametric objects into tool.Model
2025-01-12 22:43:34 +11:00
Dion Moult
8364c87777
Fix #5941 . Context override when adding objects should only have one object. This is a temporary fix.
...
The proper fix is to refactor add_door and friends into core. That way
it can be properly reused instead of this hacky context override.
2025-01-12 22:39:32 +11:00
Dion Moult
2d38d8520c
Fix regression where you couldn't move spatial elements from the new aggregate move override.
2025-01-12 21:47:42 +11:00
Dion Moult
03d3b1e52c
Changed my mind, remove AssignConstituentFractions patch. See #5441 .
2025-01-12 17:51:32 +11:00
Dion Moult
79fe1bfcfc
Minor fix from new patch recipe in PR #5441 (src no longer required)
2025-01-12 17:45:43 +11:00
Louis Trümpler
59c1d7fa54
Add AssignConstituentFractions recipe
2025-01-12 17:41:50 +11:00
tim
f0e1be765d
New Roof and Railing icons
...
https://github.com/IfcOpenShell/IfcOpenShell/issues/5375
2025-01-12 17:38:57 +11:00
Lucas Nascimento
a2bfc006b7
black formatting
2025-01-12 17:25:21 +11:00
Lucas Nascimento
dff9f56ce3
black formatting and changes in shader typing
2025-01-12 17:25:21 +11:00
LM-Nascimento
80996dee1f
Update unit.py
2025-01-12 17:25:21 +11:00
Lucas Nascimento
a329de9f71
licence comment
2025-01-12 17:25:21 +11:00
Lucas Nascimento
1918138f68
cleanup
2025-01-12 17:25:21 +11:00
Lucas Nascimento
aa21fe9060
separate shader file from decoration data
2025-01-12 17:25:21 +11:00
Lucas Nascimento
6eee445502
Cleaning up and type hints
2025-01-12 17:25:21 +11:00
Lucas Nascimento
3eb29af496
seems to be working
2025-01-12 17:25:21 +11:00
Lucas Nascimento
2912580087
shit ton of changes
2025-01-12 17:25:21 +11:00
Lucas Nascimento
477725529b
now with shader for point loads
2025-01-12 17:25:21 +11:00
Lucas Nascimento
d915dc9df0
update decorator to match shader + changes to text rendering
2025-01-12 17:25:21 +11:00
Lucas Nascimento
53a2b87c97
updates to shader class
2025-01-12 17:25:21 +11:00
Lucas Nascimento
d10b327c5f
Initial commit, able to show structural curve action on the sample file of IFC documentation
2025-01-12 17:25:21 +11:00
Radek Hlaváček
293cd83a9c
Update report.html
...
Adding "Skipped" grey colored container for specification and requirement if no applicable element is found
2025-01-12 17:14:22 +11:00
ti
07817ec6fc
updated restriction types
2025-01-12 17:13:36 +11:00
c4rlosdias
d1ad082979
Add derived unit
2025-01-12 17:12:20 +11:00
Thomas Krijnen
ba9693519b
Remove mathutils import from shape_builder.py
2025-01-12 17:05:32 +11:00
Dion Moult
41362e1582
Fix #5950 . IfcTester now considers optional requirement facets as per latest documentation.
...
The IDS documentation used to state that "optional" on requirement
facets was "for information only" and didn't affect the pass / fail
state. This was changed a while ago (which I missed) to a new behaviour:
both no values and passing values will pass.
2025-01-12 16:28:14 +11:00
Dion Moult
8e77011dda
Fix #5949 . Remove material set psets panel in favour of merging into material manager psets panel.
...
Previously, to edit a single IfcMaterial pset, you'd do so in the
material manager. In contrast, to edit a IfcMaterialSet pset, you'd do
so only when assigned to an object. Not only is it bad to edit psets in
two locations, it also means you can't edit psets until you've first
assigned the material set to an object which is bad. Now it's less code,
and material / material set psets are in the same spot.
There still more consolidation work to do, to allow editing of sets in
the material manager and to figure out how to show item psets, but it's
a step in the right direction.
2025-01-12 15:45:02 +11:00
Dion Moult
02632440b0
See #5949 . Only show material psets and classifications if actually editing in the material manager.
...
Previously, you could disable editing and it would still show irrelevant
psets or classifications.
2025-01-12 15:45:02 +11:00
Bruno Postle
0a4ab32810
Fix missing carriage return
...
SyntaxWarning: invalid escape sequence '\I'
2025-01-11 13:36:54 +00:00
Dion Moult
c446aab9a0
Fix #5951 . Regression when removing mathutils dependency from shape builder and parametric stairs were expecting Vector and instead got numpy.
2025-01-11 15:39:13 +11:00
Dion Moult
2e7cbb759e
Fix #5955 . Regression in 0983f812fd where you couldn't remove a style that wasn't being edited.
2025-01-11 14:51:18 +11:00
Gorgious56
68f175fc71
Fix bug when trying to add an ifc type occurence from the toolbar in the properties editor
2025-01-10 15:42:37 +01:00
Gorgious56
a428169a13
Fix bug when duplicating an ifc type
2025-01-10 15:29:31 +01:00
Gorgious56
7db0196791
Fix bug where the thumbnail of the active class wasn't updated
2025-01-10 15:17:26 +01:00
Gorgious56
4f4c557f61
Another attempt.
...
Went back to previous toolbar : icon + type name + dot grid icon which all launch the type manager.
Validating the type manager popup now only closes it. Functionally is the same thing as clicking Cancel. Don't really know what to do to fix it. Does cancel make sense in the type manager ? Do we want to be able to undo what is possible to be done from within the type manager ?
You can change the active type either with the dropdown in the popup and in the grid flow. I changed it so that changing the type in the dropdown jumps to the corresponding page. BTW first time using github copilot to figure out the maths and it worked magically :) . I'm not against removing the dropdown but I feel like it's nice to see a plain list to choose from.
You can input a specific page number or scrub the page number field. Might be usefull if user has dozens of pages to flip through.
Right now the search is very simple, it does not implement fuzzy search or anything fancy with *
2025-01-10 14:24:33 +01:00
Dion Moult
d88adf2d02
See #5938 . Correctly detect negative extrusion depths and directions.
2025-01-10 22:48:11 +11:00
Dion Moult
956b7dcb92
Fix #5941 . Regression in ae22eec9 where active object wasn't considered when adding a parametric door.
2025-01-10 21:50:52 +11:00
Dion Moult
0a32149be3
Fix #5944 . You can now tab / edit IfcAnnotationFillArea with the new item editing mode.
2025-01-10 19:49:04 +11:00
Gorgious56
aafb6fc426
Add search bar with simple filter function to the type manager
2025-01-10 09:44:12 +01:00
Dion Moult
cac3d7f699
Fix #5939 . Fix #2751 . IfcPatch no longer needs the (rarely used) input src arg by default.
2025-01-10 16:59:45 +11:00
Dion Moult
83add56e6c
Fix #5949 . When duplicating objects, copy over IFC links (shape representation ID, item_ids, edge_item_ids) in a more reliable way
2025-01-10 15:22:53 +11:00
Dion Moult
e4412e2f51
Black
2025-01-10 15:21:18 +11:00
Dion Moult
4a1422d292
New annotations should not go into the unsorted collection
2025-01-10 14:13:28 +11:00
Stephen Boddy
1e448cb170
Add mini-guide to setting up IDE for debugging
2025-01-10 12:34:56 +11:00
Bruno Perdigão
07bb7e68dd
Fix #5932
2025-01-09 16:14:11 -03:00
Bruno Perdigão
cf054e11a1
Refactor: improve preview decorators for other products, following 420a4cfdc
2025-01-09 15:59:15 -03:00
Bruno Perdigão
6b8024f835
Refactor: Improve profile preview decorator to prevent GPU context errors
2025-01-09 15:59:15 -03:00
Bruno Perdigão
66577fd30d
Prevent polyline profile from being called by Column Tool
2025-01-09 15:59:15 -03:00
Bruno Perdigão
0124b7a0e9
Allow polyline profile for IfcCoveringType
2025-01-09 15:59:15 -03:00
Bruno Perdigão
737402cae4
Fix profile scale issue in profile preview decorator.
2025-01-09 15:59:15 -03:00
Bruno Perdigão
8b1d4ca5d4
Implement polyline tool for profiles.
2025-01-09 15:59:15 -03:00
Gorgious56
a6e953a550
Update Type Manager
...
Add back the type dropdown and looking glass icon in the toolbar
Clicking on a type in the manager no longer closes the popup anymore.
A visual indictor is displayed on the active type
Changed the parameters icon in the individual type interface
Fix bug in "Slab from Walls" Shift + A code
2025-01-09 17:45:40 +01:00
Dion Moult
40dcfd450f
See #5940 . Fix bug where using preserve existing in IfcCSV didn't fully purge extra rows, possibly leading to orphaned data (which LibreOffice will render as 0 if it is a number value type)
2025-01-09 18:25:00 +11:00
Dion Moult
e220b6981e
See #5940 . Fix bug where ODS and XLSX didn't correctly check for whether summaries existed and sometimes printed out "None" rows
2025-01-09 18:24:09 +11:00
Dion Moult
84931fbbd2
See #5941 . Don't show mode changes if an object is unselectable.
...
Unselectable things should be uneditable. That's what the lock/unlock is
for.
2025-01-09 17:40:52 +11:00
Gorgious56
2d5bc49ee0
Going in and out of AGGREGATE mode doesn't overwrite other objects' display type anymore
2025-01-08 16:53:59 +01:00
Gorgious56
d4ff789688
You can now mass enable edition, disable edition and validate edition of Ifc Entity Attributes.
...
This highlights a potential bug that already existed due to the way the attribute system is designed. Where the user mass-edits attributes from different IFC types, resulting in discrepancies due to the same attributes having a different index. eg IfcWindow has the Tag attribute at index 3, IfcDoor at index 4. So using the ALT modifier feature from vanilla Blender to mass-modify similarly named attributes on the Tag attribute of the IfcWindow will modify the PredefinedType attribute on the IfcDoor (index 3). For this reason I added the ALT modifier to the buttons so mass-operations are a conscious effort for more knowledgeable users. Might reconsider if problems arise but this is IMO a good QOL feature.
Also fix floating point precision errors on Pset float values stored as strings (re last commit)
2025-01-08 11:29:06 +01:00
Gorgious56
5c3f0f0df9
Fix floating precision artifacts when displaying float values in the Attributes panel
...
Minor fixes on previous commit
2025-01-08 10:28:27 +01:00
Bruno Perdigão
519e667464
Fix bug with bim.aggregate_assign_new_objects_in_aggregate_mode.
2025-01-07 18:17:32 -03:00
Bruno Perdigão
e3abfd60cb
Typo.
2025-01-07 18:16:59 -03:00
Bruno Perdigão
864e8d3a48
Typo.
2025-01-07 18:05:23 -03:00
Bruno Perdigão
d2b05ea3dc
Fix bug related to constraints and aggregate duplication
2025-01-07 18:00:47 -03:00
Thomas Krijnen
d063bdbbf1
wasm wheel fixes
2025-01-07 20:56:16 +01:00
Thomas Krijnen
a42a49e088
wasm wheel fixes
2025-01-07 20:47:25 +01:00
Gorgious56
ae22eec958
Door modifier operators now apply to all elligible selected objects. This makes it way easier to modify a single attribute in several unrelated parametric doors thanks to the ALT + input feature from vanilla Blender. This allows for mass-removing, mass-removing, mass-editing, mass-validating, and mass-cancelling edition of door modifiers.
...
Also allow UNDO for some door operators which seems like they should support it
And Fix #5937 : minor typo
2025-01-07 17:43:43 +01:00
Bruno Perdigão
b657eee564
Change extrusion direction when converting to extrusion in Representation Utilities.
2025-01-07 12:41:15 -03:00
Thomas Krijnen
9d1daa4dc5
ifcpatch - try both out of tree and subpackage imports #5939
2025-01-07 15:43:44 +01:00
Bruno Perdigão
dbf33283ab
Add Bonsai decorators toggle to Blender Viewport Overlays.
...
https://imgur.com/auQcp2Y
2025-01-07 11:32:14 -03:00
Gorgious56
0983f812fd
You can now use the Asset Browser to set a Material Asset as an external style.
...
To do so Right Click on a material in the Asset Browser then `Set To External Style`. The style editor must be loaded in the properties editor.
Also run black on a file from previous commit and fix a bug soft-locking the style editor when removing a style that is being edited
2025-01-07 14:55:17 +01:00
Thomas Krijnen
3ced6e7bb1
wasm wheel fixes
2025-01-07 13:23:10 +01:00
Richard Brice
933d845472
Fixes IfcPolynomialCurve when used as IfcCurveSegment.ParentCurve in horizontal alignments
2025-01-06 14:36:37 -08:00
Gorgious56
8313c05884
Merge pull request #5930 from Gorgious56/improve_modifiers
...
Modifiers QOL
2025-01-06 12:10:26 +01:00
Gorgious56
f6e588b48c
You can now copy roof parameters from active to selected objects
2025-01-06 11:35:17 +01:00
Gorgious56
547c5fb8a9
TAB now applies modifier parameters on the active object. ESCAPE now cancels editing modifier parameters on the active object.
2025-01-06 11:06:41 +01:00
Gorgious56
570e29cfe4
Add operator to copy railing modifier parameters ( #3413 )
...
* You can now copy railing properties from active to selected
Hitting ESCAPE cancels editing railing path
2025-01-06 10:10:54 +01:00
Thomas Krijnen
2e35b07fa6
Fetch boost from github releases in build scripts
2025-01-06 10:05:59 +01:00
Thomas Krijnen
1b6ee26854
Don't fail on empty ReferencedSource in IfcTester
2025-01-05 14:40:27 +01:00
Thomas Krijnen
7b21858cd4
Inform about supported reporter types in IfcTester
2025-01-05 14:37:41 +01:00
Thomas Krijnen
12800bbeee
IFCPATCH_RECIPE_DIR to allow loading out of tree recipes
2025-01-05 11:07:48 +01:00
Gorgious56
3a7488d54b
Fix #3261 : You can now purge unused openings that do not intersect with their related building element.
...
It's a naive implementation and very inefficient. Moreover there may be false positives because it's testing overlapping the evaluated mesh element with all openings applied.
2025-01-03 17:37:46 +01:00
Gorgious56
7bfa926e6d
Fix error when instantiating a wire mesh
2025-01-03 16:41:05 +01:00
Gorgious56
fd7a7d44c3
Special geometry data on meshes are also loaded as geometry attributes.
...
No functional change apart from in dissolve_triangulated_edges where it will try to load the attribute if it can. I believe it will be easier in the long term to use the builtin Attributes system. Unfortunately Curves don't support Attributes yet. Also, attributes are more lightweight compared to custom properties.
2025-01-03 16:12:51 +01:00
Gorgious56
fe6a6d1a0d
You can now disable aggregate mode with ESCAPE in the 3D Viewport
...
- Fix minor typo
2025-01-03 15:04:28 +01:00
Gorgious56
98a9550260
Fix slowness when rendering dense meshes with the opening decorator
...
It uses a custom boolean attribute on the mesh to decide whether an edge should be displayed or not. I think later on it can be used to get rid of the dictionary accessors which make the blend file size skyrocket.
2025-01-03 14:12:16 +01:00
Gorgious56
fe253af5ae
Don't draw triangulation artifact edges in the opening decorator
2025-01-03 13:04:37 +01:00
Gorgious56
e933ff08f8
Use relevant tool.Geometry functions for querying openings relations
2025-01-03 12:22:08 +01:00
Gorgious56
25af639dae
Fix memory leaks due to orphaned meshes in the opening and boolean operations
2025-01-03 11:30:42 +01:00
Gorgious56
5b3e3fc646
Fix not being able to apply or hide specific openings
2025-01-03 10:54:54 +01:00
Gorgious56
57dbea2974
Fix #3854 : Assigning a class to a potential opening removes it from the openings pool
...
Also fix an error in previous commit
2025-01-03 10:33:41 +01:00
Gorgious56
cc3074cdcc
#5919 : Add an option to set the opacity of the rest of the model when modifying openings
...
Option is located in the preferences
2025-01-03 10:01:36 +01:00
Gorgious56
4c9697d260
Consolidate logic for toggling display of openings
2025-01-03 09:59:47 +01:00
Gorgious56
8dfcea0e24
Fix internal openings list not being cleared when applying an opening
2025-01-03 09:42:55 +01:00
Gorgious56
f0fac7ad8b
Reorganize addon preferences layout
...
Hopefully it's a little bit less daunting
2025-01-03 09:40:08 +01:00
Bruno Perdigão
f6c34ac196
Refactor enable_constraints for performance reasons.
...
`context.view_layer.update()` was being called for every object in the loop.
Now it is just called after all the constraints are enabled.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
5ebaaa6c8c
Minor fix to disable_aggregate_mode().
2025-01-02 17:11:43 -03:00
Bruno Perdigão
9838a54173
Minor fix in aggregate decorator.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
2c3c0b9d95
Improve performance for TAB into aggregate mode.
...
Use disable/enable constraint instead of `constraint.apply`. It keeps the
parts location with matrix calculation
2025-01-02 17:11:43 -03:00
Bruno Perdigão
548f6e0566
Improve performance for bim.aggregate_assing_new_objects_in_aggregate_mode()
...
Add constrain only to new objects instead of rebuilding all constraints from scratch.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3874d19caa
Allow aggregate to me moved while in aggregate mode without moving its parts.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
87fee0b850
Add features for handling newly created objects in aggregate mode
...
- Highlight new objects in red when in aggregate mode
- Introduce an operator to add new objects to the current aggregate, accessible via a button in the header menu
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3bccc993b7
Small fix in aggregate decorator.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
31ae2c5437
Create UI operators for aggregate mode in model workspace.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
85c48f6a63
Small refactor of aggregate decorator.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
833cc0604c
Improve performance in aggregate mode by removing hide_select.
...
Additionally, update rendering of objects outside the aggregate to use
'WIRE' instead of 'BOUNDS'.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3dd83598e9
Prevent TAB from editing objects outside the aggregate in aggregate mode.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3050abdb87
Small fix.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
f7c4b13d0a
Aggregate decorator refactor.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
91d3b8161e
Integrate aggregate mode toggle with Bonsai's TAB edit mode override.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
e9cc205ddd
Enable aggregate decorator by default on file startup.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
c48f50a67e
Small fix in aggregate move selection.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
6d9ee8828e
Small fix
2025-01-02 17:11:43 -03:00
Bruno Perdigão
28c95a7d9a
Remove debug print statements.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
9a6ff7c37c
Add bounding box decorator over aggregates.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
226ea10de8
Add aggregate mode decorator.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3c590f097a
Prevent aggregate objects to be edited by TAB when not in aggregate mode.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
cbdbd5bd83
Add operator to toggle aggregate mode on and off.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
ccdf1cee0a
Hide selection of objects outside the aggregate when in "aggregate edit mode".
2025-01-02 17:11:43 -03:00
Bruno Perdigão
21d3b1d472
Small fix
2025-01-02 17:11:43 -03:00
Bruno Perdigão
0c7a0a6bda
Add aggregate decorator.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
3dcded819f
Add new way to move objects that are a part of an aggregate.
...
Now, when trying to move an object that is a part of an aggregate, the
`OverrideMoveAggregate` will be called, meaning that it will move the whole
aggregation. It works by creating constraints and moving the aggregate instead
of the selected object.
It also introduces the idea of editing an aggregate (no hotkey yet). When active, the user
will be able to move the parts of the aggregate instead of the whole aggregation: https://imgur.com/IcCGtPN
2025-01-02 17:11:43 -03:00
Bruno Perdigão
6f11f74aac
Apply aggregate constraints instead of removing.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
0daf4c9324
Remove constraints when object is unassigned from the aggregate.
2025-01-02 17:11:43 -03:00
Bruno Perdigão
7f838f81b4
Add aggregate constraints to import_ifc.py
2025-01-02 17:11:43 -03:00
Bruno Perdigão
cf9446c4a5
Constrain part objects to aggregate object when creating aggregations.
2025-01-02 17:11:43 -03:00
Richard Brice
26ba761c68
Refactors alignment geometry
2025-01-02 11:10:56 -08:00
Gorgious56
bb9be861c8
Fix blend file being saved twice in a row with CTRL-S
...
This caused a noticeable hiccup when a large file is saved twice on a network drive. Also it messed up the backup system.
2025-01-02 14:32:29 +01:00
Gorgious56
ad815b697e
Fix #5570 : Regen button now appears in the toolbar for windows and doors
2025-01-02 14:12:26 +01:00
Gorgious56
ca90ddc0b4
Fix 3134 : Flip shortcut is now displayed in the toolbar for doors and windows
2025-01-02 14:02:00 +01:00
Gorgious56
fb35e80be0
Editing the representation of an opening now updates the gpu shader accordingly
2025-01-02 13:06:14 +01:00
Gorgious56
21a62116a8
You can now hide all openings by pressing ESCAPE in the 3D Viewport
...
- Also fix CTD on UNDO after pressing ESCAPE due to previous commit
2025-01-02 11:17:48 +01:00
Gorgious56
c2708b13d9
Minor fix on previous commit to correctly go out of ifc edit mode without saving representation
2025-01-02 10:54:55 +01:00
Gorgious56
b949efe8ba
Fix #5849 : Use Keymap item instead of modal operator for override escape in 3D viewport
...
- Enables the vanilla Blender autosave feature back, since a running modal operator deactivates it
- ESC is not used by any other vanilla keymap in the 3D viewport (may be conflict with other addons)
- Hitting ESC over another type of editor (eg enum field in the properties editor) will not trigger disabling ifc item mode
- You can now hit ESC in IFC edit mode to cancel editing the geometry and go back to ifc object mode
2025-01-02 10:27:52 +01:00
Thomas Krijnen
463289e462
pyodide build ( #5916 )
2024-12-31 16:09:54 +01:00
Thomas Krijnen
2fbb47d797
build_pyodide.yml
2024-12-30 17:07:40 +01:00
Thomas Krijnen
6d3612bd5b
WASM build updates
2024-12-30 16:47:59 +01:00
Thomas Krijnen
3592e3f9c0
cityjson off by default
2024-12-30 16:44:47 +01:00
Andrej730
8fc0d7a808
Polyline tool - use Blender icons for status bar text
...
To make it similar to default Blender operators.
Example - https://i.imgur.com/wUEQeQL.png
2024-12-30 17:28:01 +05:00
Andrej730
9454d281fc
handle_snap_selection - disable in input mode
...
As it's used in mouse mode and in input mode it just recalculates the values.
2024-12-30 17:28:01 +05:00
Andrej730
64e4f00f19
Left mouse to cancel input mode in polyline tool
...
Previously it would just have no effect, now it should be more natural.
2024-12-30 17:07:53 +05:00
Andrej730
0f25701967
validate_input - add basic tests
2024-12-30 17:07:53 +05:00
Andrej730
80fec36b98
validate_input - allow typing feet value without feet symbol
...
Similar to how we don't require to specify meters when project is in meters.
2024-12-30 17:07:53 +05:00
Andrej730
1065239501
validate_input - add rounding to remove float garbage
2024-12-30 17:07:53 +05:00
Andrej730
8f4b0f1fd6
Fix error refresh linked aggregate with 2+ levels of aggregates #5911
...
Error occurred if IfcElementAssembly, that was currently refreshed, had another IfcElementAssembly as it's part. Then, it was removed twice - once during delete_objects and another time during delete_ifc_object, leading to the error.
2024-12-30 17:07:52 +05:00
Andrej730
6965399b2a
typing
2024-12-30 17:07:52 +05:00
Andrej730
da9cbbc61b
black .
2024-12-30 11:58:35 +05:00
Ryan Schultz
b506b72d9f
Toggle openings for part's aggregate as well.
2024-12-29 17:05:21 -06:00
Ryan Schultz
78afcf9c7a
Be able to close openings no matter what is selected.
2024-12-29 16:07:56 -06:00
Ryan Schultz
c562a2c2ac
closes #5876 : be able to 'apply void' no matter which order you select the wall (or any other class object) and void.
2024-12-29 12:49:38 -06:00
Thomas Krijnen
f3c52c5cbf
Quick wrapper clean-up
2024-12-29 15:53:21 +01:00
Thomas Krijnen
9fa44fdc3c
Setting rename
2024-12-29 15:53:07 +01:00
Bruno Perdigão
973dd818c4
Add slab direction decorator.
...
It's useful when working with angled slabs. There is no UI for it yet.
2024-12-27 21:02:47 -03:00
Andrej730
f362ba4edc
Fix typo
...
Co-Authored-By: sboddy <12862430+sboddy@users.noreply.github.com >
2024-12-27 21:21:54 +05:00
Andrej730
2b1126d24d
Hide list attributes from attributes UI
...
As they're more internal and not very useful to users.
Example of list attributes popping up before this commit - https://i.imgur.com/Nxcb10O.png
2024-12-27 19:43:30 +05:00
Andrej730
227f315746
Support quantity take-off for element types
...
Previously it would ignore any element types and work only on occurrences though quantity sets do support product types in general.
2024-12-27 19:43:30 +05:00
Andrej730
d55a291589
get_top_area to calculate area for the roof #5899
2024-12-27 19:43:30 +05:00
Andrej730
6c6e40b07c
get_side_area - add angle argument
2024-12-27 19:43:30 +05:00
Andrej730
810ad58c06
Fix get top area doc-string
...
It says that angles lower than the provided angle are ignored when it actually works the opposite way.
2024-12-27 19:43:29 +05:00
Andrej730
19c1394d94
typing
2024-12-27 19:43:29 +05:00
Andrej730
c770776228
Quantity take-off - add a fallback option #5899
...
If current set of rules (e.g. IfcOpenShell) doesn't provide a way to quantify some type of element, then user now have an option to fallback to other calculator (Blender).
Location - https://i.imgur.com/csIPOuo.png
2024-12-27 19:43:29 +05:00
Andrej730
00ba54f5f2
blender qto calculator - simplify x, y, z calculations
2024-12-27 19:43:29 +05:00
Andrej730
845ebb8543
Fix bug in Blender quantities calculator ignoring openings from an aggregate
...
It wasn't considering that object's geometry might be also altered by opening added not directly but to it's aggregate.
2024-12-27 19:43:29 +05:00
Andrej730
5ef10073cd
black .
2024-12-27 19:43:28 +05:00
Bruno Perdigão
b9423b191a
Add AddWallsFromSlab operator.
...
This operator allows users to create walls from a slab.
When the wall tool is active, pressing `Shift + A` will generate walls based on the exterior polygon of the selected slab.
2024-12-27 11:27:30 -03:00
Bruno Perdigão
ba5e968b8f
Fix bug caused by refactor a6a8a0f4b.
2024-12-27 09:40:59 -03:00
Bruno Perdigão
5e77453d1d
Add "Edge Intersection" option to snapping points.
2024-12-26 18:25:43 -03:00
Bruno Perdigão
a6a8a0f4b7
Small refactor in snapping system.
2024-12-26 18:17:39 -03:00
Bruno Perdigão
e65af4425e
Add decorator for "Edge Intersection" snapping point.
2024-12-26 18:17:39 -03:00
Andrej730
a4aaf9b4c3
Add info message if some elements were skipped from quantification #5905
...
Example - https://i.imgur.com/DwklNFS.png
2024-12-26 18:27:55 +05:00
Andrej730
51c9e1eaa2
Save loaded paths to linked IFC models in IFC #5899
...
Short demo - https://imgur.com/a/3LIt9Sr
2024-12-26 18:26:26 +05:00
Andrej730
f8828d3853
If models linked using relative path - store path as relative to ifc, not blend
...
As now we do support storing the list of linked models in IFC.
2024-12-26 18:26:26 +05:00
Andrej730
03793db75f
Keep IfcStore.path as empty string if file is not saved
...
Previously it would get cwd value in that case as bpy.path.abspath("//") returns cwd if .blend is not saved.
2024-12-26 18:26:26 +05:00
Thomas Krijnen
faa13a938d
Preliminary file existance check before attempting mapping
2024-12-26 14:03:36 +01:00
Thomas Krijnen
457f441187
Fix comparison in destructor
2024-12-26 14:03:36 +01:00
Andrej730
6486a8947c
Fix macos builds
2024-12-26 15:36:51 +05:00
Andrej730
3b10d8a9c4
Fix error loading document references in ifc2x3 after 1655341
2024-12-25 17:40:52 +05:00
Andrej730
60d6252fe7
Change documents name/identification from UI
...
Example - https://imgur.com/a/TAkxxSF
2024-12-25 17:40:51 +05:00
Andrej730
ff147a4c24
Fallback for queries if no elements filter is provided #5901
2024-12-25 17:40:51 +05:00
Andrej730
e3aaf5defa
dev_environment - stop script execution on errors
2024-12-25 15:21:00 +05:00
Andrej730
6aaaf99314
dev_environment - move wild cards out of quotation marks #5904
2024-12-25 15:21:00 +05:00
Andrej730
1e4420d824
dev_environment - remove redundant slash at the end of BLENDER_PATH
...
Co-Authored-By: tim <59872808+trhyder@users.noreply.github.com >
2024-12-25 15:21:00 +05:00
Andrej730
769025e084
typing
2024-12-25 15:20:40 +05:00
Andrej730
f62b8073c6
black .
2024-12-25 15:20:40 +05:00
Bruno Perdigão
75483edb22
Fix limitations in AddSlabFromWalls operator.
...
- The operator is now unaffected by the order in which walls are joined.
- It has been updated to support split walls.
2024-12-23 18:12:29 -03:00
Bruno Perdigão
d44942fbae
Typo
2024-12-23 18:10:35 -03:00
Bruno Perdigão
051da8e481
Allow mitre join to create a connection between contiguous walls.
2024-12-23 18:10:35 -03:00
Bruno Perdigão
46c7981842
Change "Split" function to create connection between the new walls.
2024-12-23 18:10:35 -03:00
Bruno Perdigão
7dbfe91b4b
Allow intersect_edges_v2 to work with 2d vectors.
2024-12-23 18:10:35 -03:00
Andrej730
7e8094aaa0
bim.load_linked_project - move processing chunk code to common method
2024-12-23 18:59:56 +05:00
Andrej730
20172a29c2
small optimization
...
avoid copying arrays of data if not necessary
2024-12-23 18:59:56 +05:00
Andrej730
39b64775be
bim.load_linked_project - add invoke for debugging purposes
2024-12-23 18:59:56 +05:00
Andrej730
170b6fc67e
typing
2024-12-23 18:59:55 +05:00
Andrej730
6dfb25862c
black .
2024-12-23 18:59:55 +05:00
Andrej730
f1080a8278
ifcopenshell.open - more robust file existence check
2024-12-23 16:19:56 +05:00
Andrej730
6b0b7989b0
Fix error appending elements without type #5902
2024-12-23 15:48:53 +05:00
Andrej730
9128bf2d47
Fix missing line after f22636d #5896
2024-12-23 15:32:15 +05:00
Andrej730
6edc6cec71
Fix Migrate not migrating ifc file header #5903
2024-12-23 12:33:32 +05:00
Andrej730
d0e2995a84
bim.copy_text_to_clipboard - more detailed tooltip
...
Now it will show the text being copied (e.g. attribute name).
2024-12-23 12:33:17 +05:00
Andrej730
31069d6643
Fix error creating polylines in ifc2x3 after 9fbcb39
...
By accident it was providing numpy array instead of ifc points entities.
2024-12-23 12:33:17 +05:00
Andrej730
09b4681413
Fix #5892
...
By accident not commited `attr = context.button_pointer` line that was leading to console errors
2024-12-23 11:35:55 +05:00
Ryan Schultz
cb0fdbec66
Quick way to get search strings from selections: https://community.osarch.org/discussion/comment/23305/#Comment_23305
2024-12-22 11:25:42 -06:00
Bruno Perdigão
40f1055ac3
Add AddSlabFromWalls operator.
...
This operator allows users to create a slab from a selected closed loop of walls.
When the slab tool is active, pressing `Shift + A` will generate a slab based on the exterior polygon of the selected walls.
2024-12-20 17:42:13 -03:00
Bruno Perdigão
44ef07c43e
Add WallAxisDecorator.
2024-12-20 17:42:13 -03:00
Andrej730
1f68464d46
Bonsai Attribute to support copying it's name to clipboard #5892
...
Example - https://i.imgur.com/Jf1jofZ.png
2024-12-20 19:39:47 +05:00
Andrej730
f7395ccd52
Fix misleading CAD Fillet hotkey, add some CAD hotkeys descriptions #5893
...
It was misleadingly displayed in UI as shift+v while it was shift+f.
2024-12-20 18:59:22 +05:00
Andrej730
a79c4b1ace
typing
2024-12-20 18:59:22 +05:00
Thomas Krijnen
579628fcb1
Properly handle taxonomy::loft with curved edges coming from ExSolidTapered #5891
2024-12-20 13:49:33 +01:00
Andrej730
74fe1b4eb9
append_asset - ensure to update existing rels appending second asset
...
E.g. in #5890 pset was shared by 2 elements and they it worked is
1) it appended first element and it's rel to pset
2) it appended second element and skipped updating it's rel as it was appended before. Now it's going to update it to ensure it encludes second element too.
I believe, issue occurred after 8c28f52 when we stopped duplicating inverses and started to reuse them.
2024-12-20 12:47:10 +05:00
Bruno Perdigão
8c6eddfb66
Disable LEFTMOUSE when input mode is on, in polyline tool.
2024-12-19 20:02:39 -03:00
Andrej730
284ec46b81
add_door_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
d6e6a6d559
add_railing_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
f22636d880
add_window_representation - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
eae92b55bb
shape_builder - np utils
2024-12-19 18:31:49 +05:00
Andrej730
5b315bfa8f
shape_builder - add test for mirror
2024-12-19 18:31:49 +05:00
Andrej730
5cd769e5b4
shape_builder tests - remove mathutils dependency #5192
2024-12-19 18:31:49 +05:00
Andrej730
e2b550f7af
regenerate furniture library after migrating to numpy
2024-12-19 18:31:48 +05:00
Andrej730
bf892a6a06
Furniture library - small change after #4989
2024-12-19 18:31:48 +05:00
Andrej730
0e8eeb18ac
shape_builder - remove mathutils dependency completely #5192
2024-12-19 18:31:48 +05:00
Andrej730
b4a0a5df6c
mathutils deprecation - mep_bend_shape #5192
2024-12-19 18:31:48 +05:00
Andrej730
5469d3f9d5
mathutils deprecation - mep_transition_shape #5192
2024-12-19 18:31:48 +05:00
Andrej730
4a68285d1f
mathutils deprecation - meshes #5192
2024-12-19 18:31:48 +05:00
Andrej730
01c2edfd16
mathutils deprecation - extrude #5192
2024-12-19 18:31:47 +05:00
Andrej730
c32616faca
mathutils deprecation - mirror #5192
2024-12-19 18:31:47 +05:00
Andrej730
6e8815eacc
mathutils deprecation - rotate #5192
2024-12-19 18:31:47 +05:00
Andrej730
8250f02866
mahtutils deprecation - translate #5192
2024-12-19 18:31:47 +05:00
Andrej730
c1ec42c95b
mathutils deprecation - circle, plane, placements, curves #5192
2024-12-19 18:31:47 +05:00
Andrej730
63f56d2f21
mathutils -> numpy - polyline, rectangle #5192
2024-12-19 18:31:47 +05:00
Andrej730
bd0cf6cf3f
black .
2024-12-19 18:31:46 +05:00
Andrej730
7be21bf02e
mep - fix errors adding a bend/a transition
...
mesh is already removed by replace_object_ifc_representation
2024-12-19 18:31:46 +05:00
Thomas Krijnen
352e361ea5
Check for nullptr before resolving inverses
2024-12-19 10:40:59 +01:00
Thomas Krijnen
9efc9d2044
Fix iteration over indeterminate in rule execution
2024-12-18 11:45:47 +01:00
Thomas Krijnen
d271fd1779
Fail faster on representation map not suitable for reuse #5672
2024-12-17 20:58:10 +01:00
Thomas Krijnen
bd7c19a861
Defensiveness #5683
2024-12-17 20:57:01 +01:00
Thomas Krijnen
abb1fe6f60
#5684 Ignore singular object placement
2024-12-17 13:30:21 +01:00
Thomas Krijnen
243e974866
Fetch when already cloned in nix build script
2024-12-17 12:28:32 +01:00
Ryan Schultz
07cf701e90
tweaks to a9defb94d0
...
thanks @Andrej730 for the direction.
2024-12-14 13:07:53 -06:00
Thomas Krijnen
1d271611c4
Try work-around brew install issue on OSX build
2024-12-14 15:34:42 +01:00
Thomas Krijnen
559ef3086a
Only manual dispatch for full builds due to LFS quota
2024-12-14 15:34:15 +01:00
Andrej730
7f1b234045
Fix #5871
2024-12-13 19:07:58 +05:00
Andrej730
2251679479
Skip parts without polygons converting mesh to tessellation #5870
...
As IFC doesn't allow mixed geometry types anyway.
2024-12-13 19:07:57 +05:00
Andrej730
34e8e8911d
geometry test - IfcSweptDiskSolid
2024-12-13 19:07:57 +05:00
Andrej730
c4945970e3
test IfcCircle values
2024-12-13 19:07:57 +05:00
Andrej730
99c752904a
Fallback to add_representation for mesh curves #5870 (after 42f32e3)
2024-12-12 18:16:12 +05:00
Andrej730
8574057340
bim.hide_booleans to hide all selected booleans, not just active
...
short demo - https://imgur.com/a/1h2glfj
2024-12-12 17:44:55 +05:00
Andrej730
363c3b0010
bim.show_booleans to show booleans for all selected objects
2024-12-12 17:44:55 +05:00
Andrej730
e098a7c4fc
Add option to disable loading index maps #5848
...
As currently it might still might take too long
2024-12-12 16:55:56 +05:00
Andrej730
ae61f28df7
Optimize loading index map - finding closest vert index #5848
2024-12-12 16:55:56 +05:00
Andrej730
d8cfc017d4
Optimize loading index map #5848
...
Use dict of face sets so we can get face data in O(1) instead of going through all of O(n).
2024-12-12 16:55:56 +05:00
Bruno Perdigão
4e0a813eb4
Fix Solar Analysis UI after changes in Sun Position Add-on.
...
Changes in this file: https://projects.blender.org/pioverfour/sun_position/src/branch/main/sun_calc.py
2024-12-11 16:39:12 -03:00
Bruno Perdigão
a447776fd7
Change georeference decorator UI.
2024-12-11 16:38:24 -03:00
Thomas Krijnen
eb68264bed
Support inner loops in occt sweep_along_curve #5859
2024-12-11 10:54:01 +01:00
Thomas Krijnen
a84a5815d6
Don't check for BOPAlgo_AlertAcquiredSelfIntersection at all for now
2024-12-10 21:45:39 +01:00
Thomas Krijnen
139b83ea0c
Re-enable remove_duplicate_points_from_loop
2024-12-10 21:30:43 +01:00
Thomas Krijnen
ab17c8ffd9
Re-enable force_close in profile curve handling
2024-12-10 21:26:58 +01:00
Thomas Krijnen
0708f49973
Re-enable wire self-intersection handling
2024-12-10 21:26:06 +01:00
Thomas Krijnen
a728470b76
Allow BOPAlgo_AlertAcquiredSelfIntersection when its our final fuzziness attempt
2024-12-10 21:18:20 +01:00
Thomas Krijnen
72eed36313
Rework debug flags in settings
2024-12-10 21:17:37 +01:00
Andrej730
fc9bcb0b82
Support reloading disk solids representation that use Blender curves
2024-12-10 18:09:27 +05:00
Andrej730
5df93cbb52
Support InnerRadius for disk imported as Blender curves #5859
2024-12-10 18:09:26 +05:00
Andrej730
1e0ca1d891
convert-back-units test #5864
2024-12-10 18:09:26 +05:00
Andrej730
9cd4ff9de4
Fix error adding an occurrence with no type selected #5863
2024-12-10 18:09:26 +05:00
Andrej730
b1231b74e2
Save texture style without textures to remove texture style
...
Mentioned in 618ba51 , it probably will be more natural this way - if there are no textures, we hide UV attribute to indicate that it won't be saved and on save we either do nothing, if texture style wasn't saved before, or remove it.
2024-12-10 18:09:26 +05:00
Thomas Krijnen
ea68f90693
Fix other unit conversion issues #5864
2024-12-10 11:19:43 +01:00
Thomas Krijnen
064ccf8ab6
Always apply shape healing to faces with inner bounds for wrong orientation
2024-12-10 09:24:29 +01:00
Thomas Krijnen
db865ec88f
Revert submodule change in 586f9be077
2024-12-10 09:24:29 +01:00
Ryan Schultz
91a061325d
Perform quantity take off near object's QTO. https://imgur.com/a/kzBA1GB
2024-12-09 15:13:13 -06:00
Andrej730
ce6a5080cd
Added headers for resources and cost schedule
...
Need to polish it and readjust it, just adding some headers to make tables more readable.
https://i.imgur.com/5Lb8Vrc.png
https://i.imgur.com/UYysZF1.png
2024-12-09 18:30:12 +05:00
Andrej730
8039fcd6f7
Fix invalid ifc saving texture style without any textures / option to remove surface style
...
Now it won't allow saving texture style without textures and there is a button to remove part of surface style.
2024-12-09 18:30:05 +05:00
Andrej730
194e033662
Fix error editing lighting style attributes 08e38c6
2024-12-09 18:30:05 +05:00
Andrej730
77a4145dcf
Fix error message creating texture style without render style
...
It was suggesting that it's possible to create it with just shading style though it's not currently supported.
Now it also appears when user is about to enable texture style editing, not when they're already trying to save the changes.
2024-12-09 18:30:05 +05:00
Andrej730
365d82f1d5
Loading texture maps - fallback to absolute paths
...
If it's not possible to get relative path, fallback to absolute path and show an info message.
2024-12-09 18:30:05 +05:00
Andrej730
618ba5187c
Readable error trying to create a texture style without textures #5855
2024-12-09 18:30:04 +05:00
Andrej730
6090c1c669
typing
2024-12-09 18:30:04 +05:00
Andrej730
1572bf36a7
Add descriptions to style/material selection operators
2024-12-09 16:56:15 +05:00
Andrej730
2e0ca32653
black .
2024-12-09 16:56:14 +05:00
Ryan Schultz
5086fcc35a
small fix to previous commit.
2024-12-08 20:12:03 -06:00
Ryan Schultz
a9defb94d0
Improved UI for BIM_PT_object_material
...
also can run `bim.select_by_material` by clicking on material name
2024-12-08 20:01:49 -06:00
Ryan Schultz
586f9be077
When toggling openings, voids are wireframe.
...
Discussed: https://community.osarch.org/discussion/2592/any-objections-of-changing-voids-to-wireframe-when-you-toggle-openings
Also, if you keep hitting tab, it cycles in and out of edit mode.
2024-12-07 15:31:37 -06:00
civilx64
ad35ceef2a
add missing import for ifcopenshell.api.georeference
2024-12-07 18:17:36 +01:00
Ryan Schultz
93ec1cbfc2
closes #5086 : a preference to assign which classes display as wireframe upon opening the IFC file
2024-12-07 10:58:58 -06:00
Thomas Krijnen
8bba25497b
Add material name in gltF
2024-12-07 16:36:40 +01:00
Thomas Krijnen
9160038359
Reuse more existing api in cgal face self-intersection detection #5820
2024-12-07 16:26:59 +01:00
Andrej730
c4ffc06a88
Bonsai - extract elements from selection #4316
...
Demo - https://imgchest.com/p/xny8qvox5yb
You can also now reuse 'bpy.data.texts['globalid-filter-3UvnD5Ml95zBDEcwAkAUIp']' kind of queries from Search in ExtractElements query.
2024-12-06 18:57:55 +05:00
Andrej730
2a713846ce
bonsai ifcpatch - add warning for unsupported patches
...
For patches that require filepath to be provided explicitly (they are still supported with "Load from memory" unchecked).
2024-12-06 18:57:55 +05:00
Andrej730
c306014190
ifcpatch - input and file arguments #2751
...
documented when input is currently required
2024-12-06 18:57:55 +05:00
Andrej730
2da5f2d61e
set_element_value - optimizations setting enum values
...
1) Identify from previous pset value whether prop was an enum (by checking if previous value is a list), instead of searching through prop templates
2) Compare previous and new enum values - if they match, skip editing IFC.
2024-12-06 18:57:54 +05:00
Andrej730
c7af55183b
set_element_value for enums - add a test
2024-12-06 18:57:54 +05:00
Andrej730
6fe5af3170
Fix regression for switching to Point/PointCloud representations
2024-12-06 18:57:54 +05:00
Andrej730
73185293df
Fix long time missing create_cog_representation
...
It was used in the code but method wasn't defined. I believe it was lost during 8b7d968 😁
2024-12-06 18:57:54 +05:00
Andrej730
6d01d71c60
add_representation.create_cartesian_point - fix missing z offset for 0 values
2024-12-06 18:57:54 +05:00
Andrej730
848af67fbb
typing
2024-12-06 18:57:53 +05:00
Andrej730
8609bd12cc
Fix default container label not updating #5817
2024-12-06 15:42:23 +05:00
Andrej730
3446643816
bim.switch_representation to handle representations with the same context
...
1) If object had multiple representations for the same context, then switch simply wouldn't work as it would always pick up the first representation it could find. Now it prioritizes the one user is selecting in UI.
2) If some object is selected and it also has multiple representations for the same context, then switch representation would switch it to any representation in that context it first finds. As user doesn't provide representation explicitly in that case, now it will stick to the already active representation on selected object if it matches the context, to avoid accident switches.
Notcied by working with example from #5824
2024-12-05 18:32:54 +05:00
Andrej730
1b61cbba8f
typing
2024-12-05 18:28:45 +05:00
Andrej730
8d2b783b4a
fix small bug in 939cc63ca
2024-12-05 17:24:33 +05:00
Andrej730
538365885b
Hide output path for ifcpatch without output #4721
2024-12-05 17:24:33 +05:00
Andrej730
939cc63cae
SplitByBuildingStorey - fix errors, fix Bonsai UI #4721
...
- The patch was failed when executed from Bonsai since self.src wasn't provided, fixed now.
- Added a temporary hack to diplsay file selector for this patch.
- small refactor.
2024-12-05 17:16:26 +05:00
Andrej730
13106d255c
int formatting function #5039
...
Example - https://i.imgur.com/wDGFNci.png
2024-12-05 15:52:27 +05:00
Andrej730
9cf34f9d8c
Select profile for profile type objects #5814
...
Demo - https://imgchest.com/p/9rydjxwanyk
2024-12-05 15:21:28 +05:00
Andrej730
eb87e7e866
Fix UI errors when selecting directories in file browser
...
It was only checking if it's existing path but wasn't checking whether it's a file, therefore directories with suffixes were slipping in and then failing during `IfcHeaderExtractor(filepath)`.
2024-12-04 17:46:55 +05:00
Andrej730
e4597708d7
simplify getting view 3d space
...
If area is VIEW_3D then area.spaces.active is always VIEW_3D too.
2024-12-04 17:46:55 +05:00
Andrej730
bb441ade3f
Fix error loading external shader styles
...
Mentioned in logs from #5820
Turned out, `area.spaces` also contain all other spaces this area used (e.g. it used be view3d before it became a nodegraph) leading to errors. Simplifying it with `area.spaces.active`.
2024-12-04 17:46:55 +05:00
Andrej730
00a509aa0b
typing
2024-12-04 17:46:55 +05:00
Andrej730
69fb486778
black .
2024-12-04 17:12:36 +05:00
Thomas Krijnen
aef38bd869
Fix matrix access in XmlSerializer #5840
2024-12-04 10:39:01 +01:00
Andrej730
7b09c9ad3b
Bonsai - handle invalid authorization None value in the header #5834
2024-12-04 14:16:51 +05:00
Richard Brice
eadf35f031
Fixes unit conversion for polynomial coefficients
2024-12-02 14:45:05 -08:00
Thomas Krijnen
f425794182
submodule
2024-12-01 20:26:18 +01:00
Thomas Krijnen
4d90684778
empty
2024-12-01 20:03:16 +01:00
Thomas Krijnen
049173286a
Bump precision in wkt output
2024-12-01 19:05:22 +01:00
Thomas Krijnen
1ecf722111
Assert single polygon in arrange-spaces and no need for the closing point
2024-12-01 19:04:59 +01:00
Thomas Krijnen
85c0992975
submodule
2024-12-01 19:04:08 +01:00
Thomas Krijnen
b9f790217e
Initialize only_valid_
2024-12-01 11:21:58 +01:00
Thomas Krijnen
4bb112ce71
Manually parse SVG polygons for space arrangement
2024-12-01 11:21:38 +01:00
Thomas Krijnen
efd05158c4
Propagate unit settings
2024-12-01 11:21:15 +01:00
Thomas Krijnen
3a687fecda
SVG reliance on UseElemHierarchy for storey decomposition
2024-12-01 11:20:37 +01:00
Thomas Krijnen
df060d7f60
submodule
2024-12-01 11:19:34 +01:00
Ryan Schultz
e3317af56d
fix #5806 : When unlocking spatial objects, that it turns on select-ability as well.
2024-11-30 15:40:26 -06:00
Thomas Krijnen
da78a1107d
Fix validation error in non-aggregate aggregate #5830
2024-11-30 17:49:29 +01:00
Ryan Schultz
b52edcea40
Use Top/Bottom when LayerSetDirection = AXIS3
2024-11-29 09:55:42 -06:00
Thomas Krijnen
4ec8ceb134
Reintroduce --center-model and --center-model-geometry
2024-11-29 13:03:56 +01:00
Thomas Krijnen
8edbb37121
Fix latebound entity inheritance hierarchy wrt id() #5822 - not ideal, because BaseEntity.declation now returns declaration
2024-11-28 12:57:08 +01:00
Andrej730
c9847caa6a
ifccsv - support importing enum values #4608
2024-11-27 18:30:37 +05:00
Andrej730
b7db3da017
ifctester - save results to temp directory
...
the way it was intended to originally but absolute paths of ifc and ids got in the way
Replaced TemporaryDirectory with mkdtemp as sometimes .html report doesn't open fast enough and directory gets deleted. Also need to keep the directory to make sure .ods is not removed.
2024-11-27 18:30:37 +05:00
Andrej730
eca71032bf
black .
2024-11-27 18:30:37 +05:00
Andrej730
ab069f431a
typing
2024-11-27 18:30:37 +05:00
Andrej730
25eecded4e
ifcopenshell.validate to validate guids #5808
2024-11-27 15:42:03 +05:00
Andrej730
cc014bb7ec
ifcopenshell.write check if file was saved successfully #5809
...
will help only for the cases if file didn't existed before
2024-11-27 12:59:06 +05:00
Ryan Schultz
ba7b0d5c4f
When using queries in an IfcAnnotation tag surround with backticks
2024-11-26 21:48:46 -06:00
Bruno Perdigão
4f6e2586e1
Fix #5727
2024-11-26 10:42:26 -03:00
Andrej730
dea3722ca5
bim.select_failed_entities - add info message
2024-11-26 18:12:05 +05:00
Andrej730
268cbe9a69
remove debug print
2024-11-26 18:12:05 +05:00
Andrej730
85b7249a77
Fix error using cwd for titleblock path #5769
...
The titleblock is ifc relative, not .blend/cwd relative.
e.g. if you open Blender in C:\ and then would open .ifc from c:\path\to\project.ifc, it would try to create layouts folder in C:\layouts instead of c:\path\to\layouts
2024-11-26 18:12:05 +05:00
Andrej730
12c08b0697
typing
2024-11-26 18:12:05 +05:00
Andrej730
fb70374876
black .
2024-11-26 18:12:04 +05:00
Andrej730
a4145ecec2
Fix errors using shared path for drawing underlay #5803
2024-11-26 17:06:00 +05:00
Andrej730
4da9f12960
BIMMeshProperties.obj - document
2024-11-26 16:16:29 +05:00
Andrej730
04d3903ee2
bim.hide_boolean to apply changes to booleans transforms #5800
...
Example - https://imgchest.com/p/ljyq8zvwey2
2024-11-26 16:16:29 +05:00
Andrej730
c8e5b8f028
bim.show_booleans - not to load same booleans multiple twice #5800
...
Now it's checking whether they were reloaded before and removing previous instances.
2024-11-26 16:16:29 +05:00
Andrej730
b8468cb19c
Mesh.subshape_type - replace with enum
2024-11-26 16:16:28 +05:00
Andrej730
e6f0f54c93
Mesh.ifc_definition - remove unused property
...
Introduced in 6cc4ce4 , seems to be gone for a while now.
2024-11-26 16:16:28 +05:00
Andrej730
2ff7401803
ifc join to reuse poly curve points if possible
2024-11-26 12:39:19 +05:00
Andrej730
22009973a8
Support ifc joining curve sets of poly curves #5793
...
Will resolve 'Unsupported representation item type for joining: IfcGeometricCurveSet' kind of errors on IFC join.
2024-11-26 12:39:19 +05:00
Andrej730
c228866f51
Add error message on representation type mismatch #5793
...
Instead of failing silently
2024-11-26 12:39:19 +05:00
Andrej730
3856b281ea
Fix sheets related poll errors
2024-11-26 12:39:19 +05:00
Ryan Schultz
6f7565f6f9
select objects within a certain tolerance--which is set in the preferences.
2024-11-25 22:12:27 -06:00
Ryan Schultz
65a8ae1093
Fix #5802 , Thanks @sboddy!
2024-11-25 18:49:50 -06:00
Jesse Roodhorst
e6f8ef992e
tooltips for the drawing module added ( #5798 )
2024-11-25 18:21:41 +05:00
Andrej730
dd0355c539
Fix drawing activation if drawing properties are using temp window #5791
2024-11-25 18:07:45 +05:00
Andrej730
7475a8f989
add_slab_representation - add api description #5792
2024-11-25 17:30:31 +05:00
Andrej730
4d44ec7174
Fix creating arbitrary profile without object after e74adcb
...
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 443, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\profile\operator.py", line 172, in _execute
if not indices:
^^^^^^^
UnboundLocalError: cannot access local variable 'indices' where it is not associated with a value
2024-11-25 16:52:57 +05:00
Andrej730
29f9f04d92
Change profile object UI #5796
...
example - https://imgchest.com/p/qb4zwj6ad4j
1) moved profile object selection to the same row as the profile type selection, so it will more noticable that they're related
2) added object requirements in the description
3) filtered only mesh objects to appear in the dropdown
2024-11-25 16:45:55 +05:00
Ryan Schultz
fc736f725c
tweaks to 812e3dc6df
2024-11-24 09:58:44 -06:00
Thomas Krijnen
ba92e3140c
Fix installation of some header files
2024-11-24 15:12:44 +01:00
Bruno Perdigão
99ad9ac305
Fix snap system ( #5782 ) by changing the priorities.
...
The priority now follows this order:
1. Polyline
2. Measure
3. Faceless objects
4. Objects
5. Axis
6. Viewport plane
2024-11-23 12:53:44 -03:00
Bruno Perdigão
dc6078a416
Small fix in model decorator
2024-11-23 10:52:39 -03:00
Bruno Perdigão
0267e2b5e0
Add option to change the size of the georeference decorator.
2024-11-22 14:48:57 -03:00
Thomas Krijnen
352a2e2eb8
Quotes
2024-11-22 14:00:30 +01:00
Andrej730
091ed3bb8d
Fix possible crash removing resource after 1f21e96
2024-11-22 17:13:05 +05:00
Andrej730
69eca15195
resources import/export - support resource quantities
2024-11-22 17:13:05 +05:00
Andrej730
a551ea36df
related_object_type - use enum instead of stringproperty
2024-11-22 17:13:05 +05:00
Andrej730
1116bcc296
bim.assign_cost_item_quantity - add dynamic description
...
Example:
- https://i.imgur.com/J3LFiYu.png
- https://i.imgur.com/ufC2LzD.png
2024-11-22 17:13:05 +05:00
Andrej730
4ef1afa8bb
resources - support importing/exporting ScheduleUsage
2024-11-22 16:57:54 +05:00
Andrej730
164e5c69ca
bim.export_resources #5760
...
Simple export for resources to csv file, supports just the same fields that import currently does.
Location - https://i.imgur.com/Ssz7BwZ.png
2024-11-22 16:57:26 +05:00
Thomas Krijnen
8420823342
Only package exes for one entry in matrix
2024-11-22 12:18:55 +01:00
Andrej730
71637f120a
Fix "Restart Blender" button for Microsoft Store Blender #5582
2024-11-22 14:32:01 +05:00
Thomas Krijnen
1d6cbc4b76
Add --with-filesystem to boost build (for voxelization toolkit)
2024-11-22 09:31:23 +01:00
Thomas Krijnen
faf5c0ab30
Submodule
2024-11-22 09:21:16 +01:00
Thomas Krijnen
e86b419414
Empty
2024-11-21 19:57:20 +01:00
Thomas Krijnen
c3154b3755
Transfer build output repo
2024-11-21 15:40:34 +01:00
Thomas Krijnen
a37b5c5b62
Github Action build scripts!
2024-11-21 15:40:34 +01:00
Thomas Krijnen
f91fedf69c
Win build script - check for installed deps
2024-11-21 15:26:14 +01:00
Thomas Krijnen
7028d67e00
nix boost 1.86, diskcleanup option
2024-11-21 15:25:47 +01:00
Thomas Krijnen
957369219c
More verbosity on invalid enumeration literals
2024-11-21 15:16:56 +01:00
Stephen Boddy
04e84f7aed
Fix #5770 so sheet subitems can be opened using svg command too, not just the main sheet. I was a little overzealous adding poll methods in 099703f
2024-11-21 18:18:36 +05:00
Andrej730
4bde423c50
Date picker UI for IfcDate type attributes
...
Example - https://imgchest.com/p/5xy2bekl3yl
set_prop_from_path method got from https://blenderartists.org/t/set-property-using-path-from-path-from-id-prop-path-resolve/1559166
2024-11-21 18:11:59 +05:00
Andrej730
4891e4ffed
Fix not applying transforms in case if there's only parent or only constraints
2024-11-21 18:11:58 +05:00
Andrej730
8a31e8d149
Auto update cost item rates when enabling editing non-sor cost schedule
...
There was an issue that it wouldn't load until you manually select it in the "Cost Item Rates" enum - otherwise items didn't appear the first time cost schedule opened and didn't not update when you makes changes to the active schedule of rates.
2024-11-21 18:11:58 +05:00
Andrej730
6e56fe8f9b
bim.load_schedule_of_rates_tree - remove dead code
...
This operator is unused anymore since d3b176e and it's using non-existent core method.
2024-11-21 18:11:58 +05:00
Andrej730
15354d2e06
bim.assign_cost_value - add description
2024-11-21 18:11:58 +05:00
Andrej730
37141c89ac
bim.assign_cost_item_quantity - to show error if no related objects were found
...
Just to make UI more responsive - e.g. if some objects are selected but they are not products.
2024-11-21 18:11:58 +05:00
Andrej730
610665d732
Fix bug with TEXT annotations types showing up in TEXT_LEADER annotation types list
2024-11-21 18:11:38 +05:00
Andrej730
2381e9e4e6
bim.import_resources - add info message about imported resources
...
Example - https://i.imgur.com/NlZRIzw.png
2024-11-21 18:11:38 +05:00
Andrej730
670a85fd8c
Hide class assignment panel for handles from linked models
2024-11-21 18:11:37 +05:00
Andrej730
b2e3a4dd82
typing
2024-11-21 18:11:37 +05:00
Andrej730
ec521916da
black .
2024-11-21 18:11:37 +05:00
Thomas Krijnen
2f7412d0c1
install serializer libs
2024-11-21 09:15:04 +01:00
Andrej730
3b6128b2df
bim.assign_class to apply transform from parents and constraints
...
To avoid confusing situations when user would assign a class, move object around and save ifc file, then to realize that it was saved using just local transforms which can be completely different.
2024-11-20 15:47:41 +05:00
Andrej730
857dd3aa60
Fix linking ifc using relative paths #5768
2024-11-20 14:48:23 +05:00
Andrej730
1a72089b3b
Blender 4.3 - fix not hidden Blender scene panels #5767
...
No idea what happened but in Blender <4.3 `type(bpy.types.SCENE_PT_rigid_body_world_settings.bl_rna)` is `<class 'bl_ui.properties_scene.SCENE_PT_rigid_body_world_settings'>` which is `bpy.types.Panel` but in Blender 4.3 it's now is `bpy.types.Struct`. Using `.base` seems to work for both versions.
2024-11-20 12:02:04 +05:00
Andrej730
361e0419cf
Bump Blender to 4.3 in tests
2024-11-20 12:02:04 +05:00
Andrej730
351bc3f364
Bump dev_environment Blender version to 4.3
2024-11-20 12:02:04 +05:00
Ryan Schultz
bf717622a0
Assign the render engine via shading_styles.json instead of hardcoding it.
2024-11-19 14:39:49 -06:00
Andrej730
6cc75c1164
Fix error assigning product to non-text annotations (e.g. dimension)
...
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 443, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\drawing\operator.py", line 2960, in _execute
core.edit_assigned_product(tool.Ifc, tool.Drawing, obj=context.active_object, product=product)
File "\bonsai\core\drawing.py", line 66, in edit_assigned_product
drawing.update_text_value(obj)
File "\bonsai\tool\drawing.py", line 983, in update_text_value
cls.import_text_attributes(obj)
File "\bonsai\tool\drawing.py", line 904, in import_text_attributes
props.font_size = str(text_data["FontSize"])
2024-11-19 20:15:44 +05:00
Andrej730
d032f75e61
Fix error updating decorations removing active drawing
...
should_draw_decorations is updated as part of regular refresh_ui_data.
'removed_drawings' line was a dead code
Traceback (most recent call last):
File \bonsai\bim\module\drawing\prop.py", line 252, in update_should_draw_decorations
collection = context.scene.camera.BIMObjectProperties.collection
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'BIMObjectProperties'
File \bonsai\bim\module\drawing\prop.py", line 249, in update_should_draw_decorations
2024-11-19 20:15:44 +05:00
Thomas Krijnen
9bbf345fd7
https://github.com/IfcOpenShell/svgfill/pull/8
2024-11-19 15:50:31 +01:00
Thomas Krijnen
75d7fcdc4b
Submodule
2024-11-19 15:34:23 +01:00
Thomas Krijnen
2b3af4cddb
Move issue content to test case #5752
2024-11-19 12:51:11 +01:00
Thomas Krijnen
96d6d5bfbe
Fix validation false positive on Number #5752
2024-11-19 12:49:10 +01:00
sboddy
c7e7031ee5
Fix #5725 : Remember DPI and drawing modes ( #5762 )
2024-11-19 15:32:08 +05:00
Thomas Krijnen
1c54be84ba
Fix #5763 use OuterWire
2024-11-19 11:05:20 +01:00
Andrej730
213b6ed3c3
Fix errors reregistering Bonsai
...
Items generators were exhausted at the first register leading to errors like 'TypeError: EnumProperty(..., default='-'): not found in enum members' preventing reregistration.
2024-11-19 12:53:56 +05:00
Ryan Schultz
837f9e82e2
whoops
2024-11-19 00:42:21 -06:00
Ryan Schultz
1f9e3ffe50
have move_elements_to_top work with Freestyle as well.
...
Also assign ordering preference.
2024-11-19 00:27:16 -06:00
Ryan Schultz
6201ea7144
small tweak to previous
2024-11-18 23:15:43 -06:00
Ryan Schultz
06d947f869
Some fixes for 812e3dc6df
2024-11-18 22:55:31 -06:00
Andrej730
362c5a17a7
Fix bonsai build
...
fonttols is now using universal build for the arm64 instead of x86_64
2024-11-18 15:15:53 +05:00
Andrej730
5a4326eb0f
Fix calculating cost item resource value ignoring resource inheritance
...
Mentioned in #5744
2024-11-18 15:01:49 +05:00
Andrej730
68208d88ea
Migrate - convert IfcQuantityCounts using float values to IfcQuantityNumber in ifc4x3 #5752
...
Traceback:
Traceback (most recent call last):
File "\bonsai\bim\module\patch\operator.py", line 187, in execute
core.run_migrate_patch(tool.Patch, infile=self.infile, outfile=self.outfile, schema=self.schema)
File "\bonsai\core\patch.py", line 30, in run_migrate_patch
patch.run_migrate_patch(infile, outfile, schema)
File "\bonsai\tool\patch.py", line 28, in run_migrate_patch
output = ifcpatch.execute(
^^^^^^^^^^^^^^^^^
File "\ifcpatch\__init__.py", line 85, in execute
patcher.patch()
File "\ifcpatch\recipes\Migrate.py", line 58, in patch
new_element = migrator.migrate(element, self.file_patched)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 363, in migrate
new_element = self.migrate_attributes(element, new_file, new_element, new_element_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 393, in migrate_attributes
self.migrate_attribute(attribute, element, new_file, new_element, new_element_schema)
File "\ifcopenshell\util\schema.py", line 494, in migrate_attribute
new_value.append(self.migrate(item, new_file))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 363, in migrate
new_element = self.migrate_attributes(element, new_file, new_element, new_element_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 393, in migrate_attributes
self.migrate_attribute(attribute, element, new_file, new_element, new_element_schema)
File "\ifcopenshell\util\schema.py", line 497, in migrate_attribute
setattr(new_element, attribute.name(), value)
File "\ifcopenshell\entity_instance.py", line 325, in __setattr__
self[index] = value
~~~~^^^^^^^
File "\ifcopenshell\entity_instance.py", line 363, in __setitem__
raise TypeError(
TypeError: attribute 'CountValue' for entity 'IFC4X3_ADD2.IfcQuantityCount' is expecting value of type 'INT', got 'float'.
Error: Python: Traceback (most recent call last):
File "\ifcopenshell\entity_instance.py", line 361, in __setitem__
self.method_list[idx](self.wrapped_data, idx, entity_instance.unwrap_value(value))
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9271, in setArgumentAsInt
return _ifcopenshell_wrapper.entity_instance_setArgumentAsInt(self, i, v)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: in method 'entity_instance_setArgumentAsInt', argument 3 of type 'int'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "\ifcopenshell\entity_instance.py", line 325, in __setattr__
self[index] = value
~~~~^^^^^^^
File "\ifcopenshell\entity_instance.py", line 363, in __setitem__
raise TypeError(
TypeError: attribute 'CountValue' for entity 'IFC4X3_ADD2.IfcQuantityCount' is expecting value of type 'INT', got 'float'.
2024-11-18 15:01:49 +05:00
Andrej730
818c2714e8
Migrate - convert IfcCountMeasures using float values to IfcNumericMeasure in ifc4x3 #5752
...
Traceback:
Traceback (most recent call last):
File "\bonsai\bim\module\patch\operator.py", line 187, in execute
core.run_migrate_patch(tool.Patch, infile=self.infile, outfile=self.outfile, schema=self.schema)
File "\bonsai\core\patch.py", line 30, in run_migrate_patch
patch.run_migrate_patch(infile, outfile, schema)
File "\bonsai\tool\patch.py", line 28, in run_migrate_patch
output = ifcpatch.execute(
^^^^^^^^^^^^^^^^^
File "\ifcpatch\__init__.py", line 85, in execute
patcher.patch()
File "\ifcpatch\recipes\Migrate.py", line 58, in patch
new_element = migrator.migrate(element, self.file_patched)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 358, in migrate
new_element = self.migrate_attributes(element, new_file, new_element, new_element_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 388, in migrate_attributes
self.migrate_attribute(attribute, element, new_file, new_element, new_element_schema)
File "\ifcopenshell\util\schema.py", line 489, in migrate_attribute
new_value.append(self.migrate(item, new_file))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 358, in migrate
new_element = self.migrate_attributes(element, new_file, new_element, new_element_schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 388, in migrate_attributes
self.migrate_attribute(attribute, element, new_file, new_element, new_element_schema)
File "\ifcopenshell\util\schema.py", line 484, in migrate_attribute
value = self.migrate(value, new_file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\util\schema.py", line 346, in migrate
return new_file.create_entity(element.is_a(), element.wrappedValue)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\file.py", line 400, in create_entity
e[idx] = arg
~^^^^^
File "\ifcopenshell\entity_instance.py", line 363, in __setitem__
raise TypeError(
TypeError: attribute 'wrappedValue' for entity 'IFC4X3_ADD2.IfcCountMeasure' is expecting value of type 'INT', got 'float'.
Error: Python: Traceback (most recent call last):
File "\ifcopenshell\entity_instance.py", line 361, in __setitem__
self.method_list[idx](self.wrapped_data, idx, entity_instance.unwrap_value(value))
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9271, in setArgumentAsInt
return _ifcopenshell_wrapper.entity_instance_setArgumentAsInt(self, i, v)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: in method 'entity_instance_setArgumentAsInt', argument 3 of type 'int'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "\ifcopenshell\file.py", line 400, in create_entity
e[idx] = arg
~^^^^^
File "\ifcopenshell\entity_instance.py", line 363, in __setitem__
raise TypeError(
TypeError: attribute 'wrappedValue' for entity 'IFC4X3_ADD2.IfcCountMeasure' is expecting value of type 'INT', got 'float'.
2024-11-18 15:01:48 +05:00
Andrej730
545431d95d
shapebuilder - fix issue creating profiles on ifc2x3
...
Position argument was only required for IfcParameterizedProfileDef, not for IfcArbitraryClosedProfileDef
2024-11-18 15:01:48 +05:00
Andrej730
7d087064ab
Fix for e0f4fc075
...
Traceback
2024-11-18:11:09:15,441 ERROR [log.py:69] Uncaught exception
Traceback (most recent call last):
File "\bonsai\bim\module\pset_template\ui.py", line 66, in draw
self.draw_pset_template()
File "\bonsai\bim\module\pset_template\ui.py", line 110, in draw_pset_template
value_name = self.props.active_prop_template.get_value_name()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\pset_template\prop.py", line 175, in get_value_name
ifc_data_type = IfcStore.get_schema().declaration_by_name(self.primary_measure_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 10119, in declaration_by_name
return _ifcopenshell_wrapper.schema_definition_declaration_by_name(self, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Entity with name '-' not found in schema 'IFC4'
2024-11-18 15:01:48 +05:00
Andrej730
3c320960c8
pset templates UI - hide primary measure type for quantitiy props.
...
As they're used only for psets.
2024-11-18 15:01:48 +05:00
Ryan Schultz
812e3dc6df
Automatically introducing \n (newlines) after some designated character count.
...
as discussed: https://community.osarch.org/discussion/2485/automatically-introducing-n-newlines-after-some-designated-character-count
2024-11-17 17:08:10 -06:00
Ryan Schultz
bc2f6b61e0
small UI change for consistency, and misspelling.
2024-11-17 10:08:47 -06:00
Andrej730
e0f4fc0759
Fix error editing prop templates with None PrimaryMeasureType
...
E.g. all qto props have it's None
Error traceback:
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\pset_template\operator.py", line 135, in execute
props.active_prop_template.primary_measure_type = template.PrimaryMeasureType
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: bpy_struct: item.attr = val: expected a string enum, not NoneType
2024-11-15 18:25:48 +05:00
Andrej730
934869af98
add_prop_template - consider pset template type for prop/measure types
2024-11-15 18:25:48 +05:00
Andrej730
dad89cfabd
Narrow down pset prop template enum items
...
Depending on whether we're currently editing pset or qto.
Before - https://i.imgur.com/w95q7UC.png
Now - https://i.imgur.com/0uyHPVC.png
2024-11-15 18:25:48 +05:00
Andrej730
3b4cd4eab5
Fix error editing IfcQuantityCounts in IFC4X3
...
Full error traceback:
Error: Python: Traceback (most recent call last):
File "\ifcopenshell\entity_instance.py", line 361, in __setitem__
self.method_list[idx](self.wrapped_data, idx, entity_instance.unwrap_value(value))
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9271, in setArgumentAsInt
return _ifcopenshell_wrapper.entity_instance_setArgumentAsInt(self, i, v)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: in method 'entity_instance_setArgumentAsInt', argument 3 of type 'int'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 443, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\pset\operator.py", line 142, in _execute
ifcopenshell.api.run(
File "\ifcopenshell\api\__init__.py", line 92, in run
return usecase_function(ifc_file, should_run_listeners=should_run_listeners, **settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\__init__.py", line 258, in wrapper
raise e
File "\ifcopenshell\api\__init__.py", line 252, in wrapper
result = usecase(*args, **settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_qto.py", line 135, in edit_qto
return usecase.execute()
^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_qto.py", line 149, in execute
self.update_existing_properties()
File "\ifcopenshell\api\pset\edit_qto.py", line 166, in update_existing_properties
self.update_existing_property(prop)
File "\ifcopenshell\api\pset\edit_qto.py", line 180, in update_existing_property
prop[3] = float(value)
~~~~^^^
File "\ifcopenshell\entity_instance.py", line 363, in __setitem__
raise TypeError(
TypeError: attribute 'CountValue' for entity 'IFC4X3_ADD2.IfcQuantityCount' is expecting value of type 'INT', got 'float'.
2024-11-15 18:25:47 +05:00
Andrej730
43aa6c971a
pset.edit_qto - document editing complex quantities
2024-11-15 18:25:47 +05:00
Andrej730
9f372017bc
Bonsai - document qset prop type inference from prop name
...
In "add new prop" operator description - https://i.imgur.com/ODeMDL8.png
2024-11-15 18:25:47 +05:00
Andrej730
de17736002
Bonsai to detect Blender types for added qset props
...
Example - https://imgchest.com/p/bp452xxbx45
cc @steverugi @DimitriosThe maybe you'll find useful too if you use custom quantity sets for products in 4d/5d
2024-11-15 18:25:47 +05:00
Andrej730
a29b1072e4
Add error trying to add non-numeric custom quantity set value
...
Example - https://i.imgur.com/NUFN1sR.png
2024-11-15 18:25:47 +05:00
Andrej730
8e4e12ba21
active_pset_type - replace with EnumProperty
2024-11-15 18:25:47 +05:00
Andrej730
ff86bba562
Bonsai to detect Blender types for custom psets/qsets
...
Previously it was detecting types only if pset/qset had a template, now it will detect length/area/volume props for non-templated psets/qsets too.
Before - https://i.imgur.com/hacuYfx.png
Now - https://i.imgur.com/baA0KBT.png
2024-11-15 18:25:47 +05:00
Andrej730
da70c46c48
editing quantity set to guess type based on name if template is not found
...
E.g. all props with "Area" in it's name will automatically get IfcQuantityArea type, "Volume" - IfcQuantityVolume, see edit_qto documentation.
2024-11-15 18:25:47 +05:00
Andrej730
b860a8eaad
edit_qto - remove dead code from edit_pset
2024-11-15 18:25:46 +05:00
Andrej730
dd0d0ed1af
typing
2024-11-15 18:25:46 +05:00
Andrej730
7f40491e41
black .
2024-11-15 18:25:46 +05:00
Thomas Krijnen
fd9485e7ea
C++ file_open_status not handled in python
2024-11-14 22:00:11 +01:00
Thomas Krijnen
dbdc2add81
Parsing file with trailing comment fails
2024-11-14 21:57:27 +01:00
Thomas Krijnen
229e2daa42
submodule
2024-11-14 17:00:18 +01:00
Thomas Krijnen
2a853ee8aa
Only install header files, not .cpp
2024-11-14 15:34:48 +01:00
Andrej730
d0b3ecad42
csv2ifc - add header validation
2024-11-14 18:30:47 +05:00
Andrej730
2c9c3e6c7f
ConvertPropertiesToQuantities - add test
2024-11-14 18:30:47 +05:00
Andrej730
3c32c9b6ed
ConvertPropertiesToQuantities - ifc4x3 support
2024-11-14 18:30:47 +05:00
Andrej730
02621305c9
ConvertPropertiesToQuantities - small fix
...
Prevent calling add_qto if quantity set was already found in 'qtos'.
2024-11-14 18:30:47 +05:00
Andrej730
3911f51d89
Fix broken ConvertPropertiesToQuantities #5747
...
Name and Properties arguments were renamed and lowercased.
2024-11-14 18:30:47 +05:00
Andrej730
dfb0f1e828
typing
2024-11-14 18:30:47 +05:00
Andrej730
3270006d8e
black .
2024-11-14 18:30:47 +05:00
Thomas Krijnen
54eb83f080
CGAL 6 compatibility regarding aabb_traits_3 and stdlib usage
2024-11-14 13:30:19 +01:00
Thomas Krijnen
e7d88ba851
cityjson submodule
2024-11-14 13:29:47 +01:00
Thomas Krijnen
e31d164ab2
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenShell into v0.8.0
2024-11-14 13:28:39 +01:00
Thomas Krijnen
63796aef3b
cityjson submodule
2024-11-14 13:28:36 +01:00
Andrej730
ceb49bac0e
Note in UI derived schedule work explicitly
...
There is "*" mark but since we don't have a documentation for this UI section it may be hard for new users to guess what it means.
2024-11-14 16:38:01 +05:00
Andrej730
9f49cbe0c9
bim.calculate_resource_quantity #5744
...
Added operator to calculate resource quantity based on the output products and the quantity Name.
See video demo - https://imgchest.com/p/9rydjlbmnyk
2024-11-14 16:38:01 +05:00
Andrej730
6c26403b9c
resource.remove_resource - fix bug removing IfcRelAssignsToResource
...
tuple(resource) was resulting in (GlobalId, OwnerHistory, Name, ...) instead of (resource,), so the check never passed and orphaned IfcRelAssignsToResource was never removed.
2024-11-14 16:38:01 +05:00
Andrej730
1f21e96887
resource.remove_resource - fix bug not removing orphaned ifcrelnests
2024-11-14 16:38:01 +05:00
Andrej730
77bc704563
assign/unassign process - add descriptions
2024-11-14 16:38:00 +05:00
Andrej730
2be6afa411
Productivity data operators - remove confusing descriptions
2024-11-14 16:38:00 +05:00
Andrej730
a8d8600087
calculate resource usage/work - add poll messages
2024-11-14 16:38:00 +05:00
Andrej730
6a20ecb2a0
Fix #5746
2024-11-14 11:35:02 +05:00
Bruno Perdigão
e74adcbba3
Improve f4cbd13 and add option for profile with voids.
...
Fix rebase conflict
2024-11-13 11:58:50 -03:00
sboddy
099703fda7
UI drawing improvements ( #5677 )
...
* Fix Shift-clicking SVG-DXF conversion
* Fix Schedules and References not incrementing the ID number properly
* Remove the superfluous Create and Open buttons from the Active Drawing pane
* Add active camera indicator to the Drawing list
* Improved enable/disabled icon behaviour
As many operators as possible now use polling method to set enabled/disabled state.
Icons set their enabled/disabled state intelligently depending on what is selected.
When an operator is disabled it says why it is disabled in the tooltip.
* Rename core open_sheet, operator OpenSheet/bim.open_sheet to better reflect what it actually does, i.e. open_layout
* Added selection checkmarks to Sheets, and operator to select all/none, to do batch ops on sheets
* Missed adding the renamed operator to __init__ in commit 4cfc0bd9f3
* Decouple creating and viewing drawings/sheets to avoid focus stealing popups polluting display on long batch runs
* Improve drawing selections in OpenDrawing operator
* Add the Shift+click power move to Create Sheet
* Add the Open Sheet + Shift+click power move
* Improve drawing selections in RemoveDrawing operator
* All operators are now documented with standardised language and terms.
* Add status bar Info messages for feedback on create tasks that now don't have visual feedback
* Fix enable/disable for ActivateDrawing operator icons.
This was a strange one. They have common invoke and execute methods,
but the polling has different conditions.
I tried subclassing the original ActivateDrawing for the Sheets version,
but something about Blenders operators breaks the classmethod decorated
poll. This was the cleanest solution I found, but maybe there's a better
one.
* Placeholder operator for DuplicateSheet function.
Does nothing but report Not Implemented. Could be omitted if this
kind of thing is frowned upon.
* Change icons to be more consistent
* Final changes to toolbars
Change button order and spacing for better usability.
Add a checkmark all/none button, to do batch ops on sheets.
Moved Bonsai Web UI button up to sheets toolbar.
Some general cleanup of unnecessary clutter in the toolbar code.
* Sheet/Drawing checkmarks remember their state properly
* Adjust sheet/drawing operators to view after singular create, but not when batch creating more than one.
* By special request, add back the opening windows when creating, but requiring Ctrl to be pressed.
* black the files
* Second attempt at blacking ui.py because I used an old black
* Change method of getting active drawing to use one in tool import as requested
* Fix for incorrect d1fc5158d - actually checked it this time
2024-11-13 18:38:26 +05:00
Andrej730
6fb7445610
Set blender materials for imported IfcSweptDiskSolids #5687
2024-11-13 18:20:31 +05:00
Andrej730
a7caee14b0
Remove fallback from ca96815 since bonsai build is already updated
2024-11-13 18:20:31 +05:00
Andrej730
2845071621
Fix error switching from different type of representations
...
E.g. from curve representation to mesh representation and vice versa. Mentioned in #5687 .
2024-11-13 18:20:31 +05:00
Andrej730
5913fe881e
Fix missing BIM tool UI when just spatial element is active
...
Noticed by "select decomposition" button missing, spatial elements are unselectable by default - they're just active.
cc @trhyder
2024-11-13 18:20:31 +05:00
Andrej730
659c3295bc
Remove unnecessary IFC operators
2024-11-13 18:20:31 +05:00
Andrej730
3bbbfd2351
Show errors if failing to parse false origin / project north
2024-11-13 18:20:30 +05:00
Andrej730
0004689841
typing
2024-11-13 18:20:30 +05:00
Andrej730
e2bf611c17
black .
2024-11-13 18:20:30 +05:00
Andrej730
77fc2a89d0
Oops, fix broken #4771 by mistake
2024-11-13 16:18:56 +05:00
Andrej730
5b63b00e98
Workaround for Blender 4.3 #5743
2024-11-13 15:28:01 +05:00
Thomas Krijnen
a522c9a5c9
Submodule
2024-11-13 11:15:15 +01:00
Andrej730
d3333fed96
select decomposition to work on unselectable elements #5739
...
E.g. ifcspaces or other spatial elements are unselectable by default.
2024-11-13 11:11:34 +05:00
Ryan Schultz
a8efc5b1d9
small fix to f4cbd13748
2024-11-12 15:05:28 -06:00
Bruno Perdigão
b51a417065
Fix #5726
2024-11-12 17:21:47 -03:00
Bruno Perdigão
f4cbd13748
Add the option to create IfcArbitraryClosedProfileDef from an object.
...
Reference: https://imgur.com/a/E5YhgqV
2024-11-12 16:52:30 -03:00
Andrej730
cba0b79dc0
Cost schedule UI - optimize selecting cost items
...
On large projects selecting cost items is very slow due to all data that needs to be loaded. On the project I was testing, it was taking about 0.8sec, now this time is reduced to 0.17sec.
2024-11-12 18:40:43 +05:00
Andrej730
26e63c8427
Fix edit_pset for enum props without reference #5707
...
Similar to fb081e3cf but now we cover case when IfcPropertyEnumeratedValue is passed to properties argument.
2024-11-12 15:38:41 +05:00
Andrej730
ecff7980b3
PsetQto - interpret IFC4X3 as IFC4X3_ADD2 #5732
2024-11-12 14:52:47 +05:00
Andrej730
be6e9200b6
calculate_cost_item_resource_value - remove rounding to preserve the original quantities #5706
...
Removed 'quantity is None' check since it's never none after c409258ff .
2024-11-12 14:52:47 +05:00
Bruno Perdigão
204a1b1dc6
Measure tool - Add UI button to clear measurement from the screen
2024-11-11 21:15:06 -03:00
Andrej730
d74a0d05fd
calculate_cost_item_resource_value - fix bug when 0 resource cost value would be misinterpreted as parent's cost value
2024-11-11 18:30:57 +05:00
Andrej730
70e75f5ed2
calculate_cost_item_resource_value not to skip 0 costs/quantities
...
That way all assigned resources will be added as cost values to cost items and it will be more apparent what resources were used for the last calculation and what costs/quantities they had at the time.
2024-11-11 18:30:56 +05:00
Andrej730
8ffa208ca7
Increase rounding precision for updating cost item resource values #5706
...
Co-Authored-By: DimitriosThe <169245599+DimitriosThe@users.noreply.github.com >
2024-11-11 18:30:55 +05:00
Andrej730
c409258ff3
calculate_cost_item_resource_value not to skip resources without quantities
...
Noticed the discrepancies for total cost value for resources in Resource UI and in Cost Schedule UI when the same resources assigned to the item. In Resource UI it was considering omitted quantity as 1.0 (https://github.com/IfcOpenShell/IfcOpenShell/blob/c61e3670a8cf248aa5a229bae2dc29eef041fe47/src/ifcopenshell-python/ifcopenshell/util/cost.py#L53-L55 ) and in Cost Schedule UI it was skipping those resources completely.
For cost items it is documented in ifc that if quantity is omitted then costs are considered to be total. Perhaps it's just not documented for the resources? Anyway, not sure if this way is completly correct but making sure resource quantity to be treated similarly in different parts of the codebase.
Related to - https://github.com/buildingSMART/IFC4.3.x-development/issues/910
cc @myoualid
2024-11-11 18:30:55 +05:00
Andrej730
de414313d3
Fix cost values for resources not updating properly
2024-11-11 18:30:55 +05:00
Andrej730
0f421da6e3
Multifile properties to show selected paths
...
Before - https://i.imgur.com/AkPvTy3.png
After - https://i.imgur.com/znxLqb7.png
2024-11-11 18:30:55 +05:00
Andrej730
478dcb8d78
Fix UI errors selecting empty ifcpatch ("-")
2024-11-11 18:30:55 +05:00
Andrej730
37d9cade92
black .
2024-11-11 18:30:55 +05:00
Andrej730
004488533f
typing
2024-11-11 18:30:55 +05:00
Thomas Krijnen
088bc207ab
Don't fail on untyped enumerations
2024-11-11 13:57:36 +01:00
Andrej730
c61e3670a8
fix test_removing_existing_element_representations_and_mapping_type_representations
...
Started failing after 8061e22 . Test was instantiating abstract IfcProductRepresentation
2024-11-11 16:31:14 +05:00
Andrej730
c5aad82e3d
typing - add missing settings
2024-11-11 16:31:14 +05:00
Andrej730
acd93ead4d
Fix crash during test_remove_fill_area_with_fill_area_style_hatching
2024-11-11 16:31:14 +05:00
Andrej730
8070338087
fix test_remove_non_surface_styles
...
.FillStyles is not optional for IfcFillAreaStyles
2024-11-11 16:31:14 +05:00
Andrej730
05542ca6ec
Fix failing ifcopenshell ci tests due missing ifcpatch ( 56de208)
2024-11-11 16:31:13 +05:00
Thomas Krijnen
8932d8758e
validate.py distinguish internal errors from invalid files
2024-11-11 11:09:26 +01:00
Thomas Krijnen
130afac752
Revert back to github occt uri due to persistent 500
2024-11-11 08:58:01 +01:00
Andrej730
67f8c74c70
Fix processing ifcpatch docs after fe8c396e1
...
bim.update_ifc_patch_arguments in Bonsai wasn't ready for list[xxx] generic and was throwing errors and not showing browse file button.
2024-11-11 12:48:43 +05:00
Thomas Krijnen
6ece1648ab
Update entity_instance.py after 8ae951d
...
cc @Andrej730 we need this for validate.buildingsmart.org because for express rule evaluation we depend on include_id=False and entity_instance.__eq__ has been changed to get_info_2.
2024-11-10 15:06:41 +01:00
Bruno Perdigão
2165dbb3fa
Minor fix after 10aad5a531
2024-11-08 17:04:07 -03:00
Bruno Perdigão
10aad5a531
Change hotkey for angle lock in polyline tool, from "L" to "A".
2024-11-08 17:00:47 -03:00
Bruno Perdigão
23c30e7642
Implement #3083
2024-11-08 16:25:21 -03:00
Bruno Perdigão
f08959aaa9
Fix - Measure tool plane method now works with object snap.
2024-11-08 16:06:28 -03:00
Bruno Perdigão
b416df538a
Add AuthoringData.data["relating_type_id_current"] to model data.
2024-11-08 11:20:17 -03:00
Bruno Perdigão
084c2aa25a
Add AuthoringData.data["ifc_class_current"] to model data.
2024-11-08 11:20:17 -03:00
Bruno Perdigão
66ded3fc41
Partially fix an issue with BIMModelProperties ifc_class enum.
2024-11-08 11:20:17 -03:00
Bruno Perdigão
4b558604cc
Remove mathutils dependency from add_slab_representation.py
2024-11-08 10:34:11 -03:00
Bruno Perdigão
024566887d
Minor fix
2024-11-08 10:34:11 -03:00
Andrej730
916c6a94f1
bim.remove_cost_value - fix misleading label
2024-11-08 18:32:20 +05:00
Andrej730
af1f3cad34
bim.calculate_cost_item_resource_value - tooltip
2024-11-08 18:32:20 +05:00
Andrej730
534355cd33
Fix for 1acf8f1
2024-11-08 18:32:20 +05:00
Andrej730
a0226eb0a1
document double tags for fill-bg #5719
...
It seems we lost this comment at some point.
2024-11-08 18:32:20 +05:00
Andrej730
1fa3478a9d
bim.execute_ifc_tester - remove unnecessary ifc operator
2024-11-08 18:32:20 +05:00
Andrej730
f7a7626575
ifctester to fail more gracefully meeting invalid .ids file
...
Previously Bonsai would show a wall of errors, now it's show a simple error message and redirecting to system console for the details.
Example error - https://i.imgur.com/uJJfjUW.png
Example validation error details in console - https://i.imgur.com/3mcVBUh.png
Same details but in text:
Validation error details:
failed validating {'dataType': 'IFCBOOLEAN', 'ursi': 'https://google.com ', 'cardinality': 'required', 'instructions': "Make sure it's true"} with XsdAttributeGroup(['dataType', 'uri', 'cardinality', 'instructions']):
Reason: 'ursi' attribute not allowed for element
Schema component:
<xs:extension xmlns:xs="http://www.w3.org/2001/XMLSchema " base="ids:propertyType">
<xs:attribute name="uri" type="xs:anyURI" use="optional" />
<xs:attribute name="cardinality" type="ids:conditionalCardinality" use="optional" default="required" />
<xs:attribute name="instructions" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Author of the IDS can leave instructions for the authors of the IFC. This text could/should be displayed in the BIM/IFC authoring tool.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
Instance type: <class 'xml.etree.ElementTree.Element'>
Instance:
<ids:property xmlns:ids="http://standards.buildingsmart.org/IDS " dataType="IFCBOOLEAN" ursi="https://google.com " cardinality="required" instructions="Make sure it's true">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:baseName>
<ids:simpleValue>Combustible</ids:simpleValue>
</ids:baseName>
<ids:value>
<ids:simpleValue>false</ids:simpleValue>
</ids:value>
</ids:property>
Path: /ids:ids/ids:specifications/ids:specification/ids:requirements/ids:property[1]
2024-11-08 18:32:20 +05:00
Andrej730
0a7ee4e360
ifctester.main - fail more gracefully for invalid files
2024-11-08 18:32:20 +05:00
Andrej730
466ba6c159
get_components - add test
2024-11-08 18:32:20 +05:00
Andrej730
1a19864e82
get_contained - add test
2024-11-08 18:32:20 +05:00
Andrej730
36f12b5145
Fix get_pset tests after 832ad6d31
2024-11-08 18:32:20 +05:00
Andrej730
eed4985957
get_parts - add test
2024-11-08 18:32:20 +05:00
Andrej730
5597095198
util.element - check schema version explicitly
2024-11-08 18:32:19 +05:00
Andrej730
1b2508f8de
Fix util.element for cases with multiple rels #5713
...
Got report that there was an issue with get_parts not returning all parts if there are multiple IfcRelAggregates involved though it is valid ifc. Fixed the same possible issue for ContainsElements, IsNestedBy
2024-11-08 18:32:19 +05:00
Andrej730
77e6ab3b8b
MergeProjects - temporary handle old way of passing files to merge
2024-11-08 18:32:19 +05:00
Andrej730
fe8c396e12
typing
2024-11-08 18:32:19 +05:00
Blender Defender
1d3ca475d9
fix: Rename the "MergeProject" recipe to "MergeProjects" ( #5187 )
...
* fix: Rename the "MergeProject" recipe to "MergeProjects"
This rename, alongside renaming "filepath" to "filepaths" and adjusting the docstring has been done to clarify, that this patch can be used to merge multiple IFC files into one (and not just two)
* fix: Fix `test_Merge_Project.py`, which was broken due to renaming the patch recipe
2024-11-08 10:51:47 +05:00
Andrej730
09fcd32b7a
Fix error duplicating array item after c415767 #5705
...
error traceback
```
Traceback (most recent call last):
File "bonsai\bim\module\geometry\operator.py", line 909, in execute
return OverrideDuplicateMove.execute_duplicate_operator(self, context, linked=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "bonsai\bim\module\geometry\operator.py", line 918, in execute_duplicate_operator
IfcStore.execute_ifc_operator(self, context)
File "bonsai\bim\ifc.py", line 443, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "bonsai\bim\module\geometry\operator.py", line 912, in _execute
return OverrideDuplicateMove.execute_ifc_duplicate_operator(self, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "bonsai\bim\module\geometry\operator.py", line 1021, in execute_ifc_duplicate_operator
tool.Model.handle_array_on_copied_element(new, array_data)
File "bonsai\tool\model.py", line 673, in handle_array_on_copied_element
array_pset_data = array_pset["Data"]
~~~~~~~~~~^^^^^^^^
KeyError: 'Data'
```
2024-11-07 17:38:39 +05:00
Andrej730
fb081e3cf2
pset.edit_pset - fix issue editing enum props without EnumerationReference #5707
...
Traceback
```
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\ifc.py", line 443, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\bonsai\bim\module\pset\operator.py", line 126, in _execute
ifcopenshell.api.run(
File "\ifcopenshell\api\__init__.py", line 92, in run
return usecase_function(ifc_file, should_run_listeners=should_run_listeners, **settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\__init__.py", line 252, in wrapper
result = usecase(*args, **settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_pset.py", line 166, in edit_pset
return usecase.execute()
^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_pset.py", line 176, in execute
existing_props = self.update_existing_properties()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_pset.py", line 225, in update_existing_properties
prop = self.update_existing_prop_enum(prop)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\api\pset\edit_pset.py", line 251, in update_existing_prop_enum
primary_measure_type = prop.EnumerationReference.EnumerationValues[
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'EnumerationValues'
```
2024-11-07 17:09:57 +05:00
Andrej730
b0cc2e30a9
Fix error starting to edit pset without enum reference/enum values #5707
...
Traceback
Error: Python: Traceback (most recent call last):
File "\bonsai\bim\module\pset\operator.py", line 62, in execute
core.enable_pset_editing(tool.Pset, pset, self.pset_name, self.pset_type, self.obj, self.obj_type)
File "\bonsai\core\pset.py", line 86, in enable_pset_editing
pset_tool.import_pset_from_existing(pset, props)
File "\bonsai\tool\pset.py", line 121, in import_pset_from_existing
metadata.set_value(prop.EnumerationReference.EnumerationValues[0].wrappedValue)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'EnumerationValues'
2024-11-07 17:09:56 +05:00
Andrej730
d9186bce11
Bonsai to show different error for Python 3.12 users #5704
2024-11-07 17:09:56 +05:00
Andrej730
cc15e6b3c1
typing
2024-11-07 17:09:56 +05:00
Andrej730
832ad6d318
Prioritize existing data types for templates props for safety
...
Noticed working on #5596 and #5708 a few issue when pset template is changing the prop types.
E.g. prop had string data type and now template suggests that it should be a float.
Previously, it might error trying to cast a string to a float. Now it will show a float until user will set it to null, then next time it will be loaded from the template data type.
Another example - prop was a string and now it's a boolean. Previously, it would be cast to boolean implicitly. E.g. "test" -> bool("test") -> True. And if user wouldn't be paying attention then enabling pset editing and saving it would make them lose "test" value.
Now - https://imgchest.com/p/na7ke99wb78
Before - https://imgchest.com/p/5xy23rr3z4l
2024-11-07 16:21:12 +05:00
Andrej730
3ad713d5c6
Patch Ifc4 psets that missing IfcThermalTransmittanceMeasure type in ThermalTransmittance props
...
Similar to #5708
Affected psets: Pset_RampCommon, Pset_StairCommon.
2024-11-07 16:21:12 +05:00
Andrej730
822107a6ed
Patch Ifc4 psets that missing IfcBoolean type in LoadBearing props #5708
...
Affected psets: Pset_RoofCommon, Pset_RampCommon, Pset_StairCommon.
Also fixed the missing description for that prop.
2024-11-07 16:21:12 +05:00
Andrej730
90d5509046
Add min 0 value to IFC props in UI
...
Basically it won't allow setting values below 0 by accident (especially important for representation item props as it may lead to a crash).
1) IfcPositiveLengthMeasure will affect bunch of props like Depth in IfcExtrudedAreaSolid.
2) IfcNonNegativeLengthMeasure will affect MaterialLayer and some profiles attributes.
2024-11-07 16:21:11 +05:00
Andrej730
f0a6906d73
Use helper.import_attributes for representation item attributes
2024-11-07 16:21:11 +05:00
Andrej730
bbca07d535
Edit other representation item attributes besides IfcSweptSolid depth
...
Examples:
- https://imgchest.com/p/qb4zjgbklyj
- https://imgchest.com/p/lqye68r2k4d
Added this feature in a very experiment way, I'm sure it will break very soon and we'll be able to refine it.
2024-11-06 18:26:57 +05:00
Andrej730
9a77222017
Option to add IfcEllipse as representation item
...
Example - https://i.imgur.com/PADKlAq.png
2024-11-06 18:06:51 +05:00
Andrej730
19cbf6d140
ifcfm - move preset searching logic from ifcm to bonsai
...
So anyone using 'python -m ifcfm' will get more readable error for invalid presets.
2024-11-06 18:06:51 +05:00
Andrej730
9821c343ca
Keep bim.select_container available for IfcProjects too
...
As it's the quicker way to select it than searching it in outliner - https://i.imgur.com/p2NVcdR.png
Couldn't find a simpler a way to do it in UI and had to create bunch of columns. Tried to use splits but they end up readjusting the buttons.
2024-11-06 18:06:50 +05:00
Andrej730
a3845c2b5c
Reload decorator after item attributes are updated and it's representation is reloaded
2024-11-06 18:06:50 +05:00
Andrej730
5c33a66548
Hide assign class panel for representation items
2024-11-06 18:06:50 +05:00
Andrej730
ecdbcff1aa
ifcfm operators - add info message when it's finished
2024-11-06 17:51:04 +05:00
Andrej730
47853bc551
Prevent user from selecting unavailable tabs from dropdown if ifc project is not loaded
2024-11-06 17:51:04 +05:00
Andrej730
41fc0cf8c1
BIMTabProperties fixes
...
1) Fixed non-existent tool.Blender.get_screen
2) ui.py - remove try/except for the case when tabs are not loaded yet as it's covered by BIMTabProperties
3) removed previous_tab, alt_tab props never used in ui
4) general method for getting area properties that includes BIMTabProperties automatically
2024-11-06 17:51:04 +05:00
Andrej730
e3de9c3ea4
bim.set_tab / bim.switch_tab not to create undo steps
...
To avoid unnecessary steps in undo history like on the screenshot - https://i.imgur.com/vEpsYa5.png
2024-11-06 17:51:04 +05:00
Andrej730
c594bc2c1a
bim.execute_ifcfm_federate - small fixes
2024-11-06 17:51:03 +05:00
Andrej730
d89be97bcd
ifcclash docs - small fix
2024-11-06 17:51:03 +05:00
Andrej730
c63469f85e
ifcm - fix missing ifcopenshell import
2024-11-06 17:51:03 +05:00
Andrej730
cf68c5755b
ifcfm - add example
2024-11-06 17:51:03 +05:00
Andrej730
3d79ae53ad
ifcfm - fix bug exporting csvs to folder that didn't yet existed
2024-11-06 17:51:03 +05:00
Andrej730
681b89d95c
Bonsai - improve error message if ifc file fails to open #5694
2024-11-06 17:51:03 +05:00
Andrej730
4fdb313449
typing
2024-11-06 17:50:47 +05:00
Andrej730
4e070545ae
black .
2024-11-06 16:04:03 +05:00
Andrej730
36bd89bb40
ifcopenshell.util.element.get_type to be less strict again after d443c5e
...
I guess by accident in d443c5e I've made this method too strict and it broke get_references using it for IfcPropertySets. Maybe it's a good idea to make it more strict in the future, for now just restoring the previous behaviour.
2024-11-06 16:04:02 +05:00
Thomas Krijnen
e70bc04915
Update draw.py with provisionary access to arrange_spaces
2024-11-06 09:17:32 +01:00
Thomas Krijnen
585821d763
Update wrapper for svgfill::arrange_polygons()
2024-11-06 09:15:59 +01:00
Andrej730
262fca95e3
Bump IOS build #5661
2024-11-06 10:52:43 +05:00
Thomas Krijnen
a2538fdd35
Update ci.yml
2024-11-05 16:13:47 +01:00
Thomas Krijnen
3c174e3dc9
svgfill submodule with arrange_polygons API
2024-11-05 15:43:37 +01:00
Richard Brice
3672ce90d0
Minor tweak for cant with IfcCosineSpiral and IfcSineSpiral
2024-11-04 15:00:27 -08:00
Bruno Perdigão
6729739ee8
Fix a bug where the product decorator displays the incorrect position when type origin is not at world origin.
2024-11-04 10:48:11 -03:00
Bruno Perdigão
4a8710efd8
Fix product decorator to be uninstalled after mouse right click.
2024-11-04 10:27:49 -03:00
Ryan Schultz
f2c96b65e0
If perspective, don't add scale to the view title
2024-11-03 09:29:11 -06:00
Richard Brice
bf8c3530a1
Fixes piecewise function evaluation in alignment api
2024-11-02 14:42:44 -07:00
Andrej730
caeabe2cd5
Optimize enums by moving them to data.py
2024-11-01 16:13:16 +05:00
Andrej730
9c0256165e
Use static enum items instead of dynamic
2024-11-01 16:13:16 +05:00
Andrej730
1acf8f1ed8
deprecate some prop.purge
2024-11-01 16:13:16 +05:00
Andrej730
0944f8a7cb
Fix unsafe enum items #5673
2024-11-01 16:13:15 +05:00
Andrej730
3debf62ca6
Mark unsafe enums #5673
2024-11-01 16:13:15 +05:00
Andrej730
f3019e4d7a
Store enum items strings references to be safe #5673
2024-11-01 16:13:15 +05:00
Andrej730
33b7c0a76f
small optimizations for enum props
2024-11-01 16:13:15 +05:00
Andrej730
ae18590893
typing
2024-11-01 16:13:15 +05:00
Dawid Huczyński
7517414552
add favicon to ifcopenshell-python and bonsaibim docs
2024-11-01 15:19:08 +05:00
Thomas Krijnen
63e98e69e9
Test whether polygonal boundary is simple #5665
2024-11-01 11:15:09 +01:00
Bruno Perdigão
4c08eaf953
Add a proposal to #3692
2024-10-31 17:43:30 -03:00
Bruno Perdigão
05b32b3c32
Fix #4298
2024-10-31 15:38:57 -03:00
Richard Brice
f3ce57480a
Fixes unit conversion problem in IfcCurveSegment
2024-10-31 08:55:01 -07:00
Andrej730
08e38c65f5
Display Ifc length attributes as Blender length properties
...
Basically now all length ifc attributes should be displayed in UI as Blender length properties - they display the units and allow math, typing different units, etc.
Example - https://imgchest.com/p/dl7p93gz64o
2024-10-31 18:40:14 +05:00
Andrej730
3e44f0f37b
Quick way to select profile in profiles UI
...
Example - https://imgchest.com/p/9rydakllwyk
2024-10-31 18:40:14 +05:00
Andrej730
bd7ca78a37
bonsai - print number of voids for elements that hit void_limit
2024-10-31 18:40:13 +05:00
Andrej730
c53885f642
bonsai ifcclash - add separate property for export path
...
Example - https://i.imgur.com/bCRHx9q.png
Needed so it will be easier to rerun ifc clash without providing the same filepath each time.
2024-10-31 18:40:13 +05:00
Andrej730
e56589d544
ifcclash - fix broken list
2024-10-31 18:40:13 +05:00
Andrej730
380e791c59
ifcpatch - add pip installation to readme
2024-10-31 18:40:13 +05:00
Andrej730
904eb9fae8
Fix undo bugs with edited_objs
...
Now it's stored as a collection property in the project properties, so in the most cases we delegate to Blender to ensure it's handled properly on undo and redo.
2024-10-31 18:40:13 +05:00
Andrej730
09df81ab15
typing
2024-10-31 18:40:13 +05:00
Andrej730
b35ef2f101
black .
2024-10-31 18:40:13 +05:00
Andrej730
fb5d37b04b
Fix support for python 3.10 #5662
2024-10-31 18:28:24 +05:00
Andrej730
06a6c2d79b
Option to apply openings to the geometry #5666
...
Button location - https://i.imgur.com/6zSv8vV.png
Now it's possible to "bake" openings to the geometry, The openings representation will be marked as "Reference".
2024-10-31 17:00:43 +05:00
Andrej730
b39f96e2ee
Fix bug duplicating edited object
...
It was losing original object representation on project save as it wasn't marked as edited.
2024-10-31 15:50:21 +05:00
Andrej730
64b3101cef
Skip applying scale to geometry on duplicate #5663
2024-10-31 15:50:21 +05:00
Thomas Krijnen
4cd8428d1d
Update unit.py
2024-10-31 11:00:02 +01:00
Thomas Krijnen
0446befefa
More permissive interval overlap test for 2d opening evaluation #5661
2024-10-31 10:35:30 +01:00
Andrej730
037b5d1bc1
Spatial container drop down to show only spatial objects
...
Example - https://i.imgur.com/v8p4D57.png (it's ignoring walls).
Since we now filter valid elements in poll_container_obj, then there is no need to check it twice in update_container_obj.
2024-10-30 18:45:50 +05:00
Andrej730
e463407de7
void_limit - document
2024-10-30 18:07:34 +05:00
Andrej730
28f81496dd
Small refactor for sync_edited_objects
...
1) remove materials if-branch as they're never edited
2) validate object explicitly
2024-10-30 18:07:34 +05:00
Andrej730
ccb223be94
Remove unnecessary ifc.finish_edits
...
Unused since we do not use fc.edit anymore for parametric geometry
2024-10-30 18:07:34 +05:00
Andrej730
33ed7e5234
typing
2024-10-30 18:07:34 +05:00
Andrej730
0662b0c5b6
Optimize updating representations adding/removing openings
...
No need to update all possible elements from decomposition because openings affect only related objects from IfcRelAggregate. For example, see #5639 .
2024-10-30 18:07:34 +05:00
Andrej730
59e0dbae2c
Fix 8ac9612 for IfcMaterials
2024-10-30 15:32:45 +05:00
Andrej730
e757c42204
Quick way to select style in Styles UI
...
Example - https://imgchest.com/p/ej7mkxp9ayd
2024-10-30 15:32:45 +05:00
Andrej730
b6da13c504
Fix hiding by accident object class asignment section in 86d0139f4
2024-10-30 15:32:45 +05:00
Andrej730
a66cffddb8
ifcopenshell-python - note about supported glibc versions
2024-10-30 15:32:45 +05:00
Andrej730
4dfb3cac51
bump ios build in bonsai
...
e8eb397 fixes #5658
2024-10-30 11:42:34 +05:00
Thomas Krijnen
3d4988349a
Remove self-intersecting faces #5650
2024-10-29 15:43:02 +01:00
Andrej730
fa07f184c3
ifctester - indicate optionality in report message
...
Previously for both cardinality optional/required ifctester would show same results.
E.g.
<ids:property dataType="IFCBOOLEAN" cardinality="required">
<ids:property dataType="IFCBOOLEAN" cardinality="optional">
Were resulting in something like
LoadBearing data shall be true and in the dataset Pset_WallCommon
LoadBearing data shall be true and in the dataset Pset_WallCommon
Now it will result in
LoadBearing data shall be true and in the dataset Pset_WallCommon
LoadBearing data may be true and in the dataset Pset_WallCommon
2024-10-29 18:16:54 +05:00
Andrej730
067203cb9a
ifctester webapp - add some tooltips
2024-10-29 18:16:06 +05:00
Andrej730
e9731f3047
ifctester webapp - fix issue with launching audit
2024-10-29 18:16:05 +05:00
Andrej730
fa0805fe29
ifctester webapp - fix for latest ids version
2024-10-29 18:16:05 +05:00
Andrej730
14bac88aca
ifctester.webapp - add to readme
2024-10-29 18:16:05 +05:00
Andrej730
edafb722e4
Fix ifctester readme
2024-10-29 18:16:05 +05:00
Andrej730
8ac96124c9
Fix UI errors opening non-IfcMaterials in Materials UI
...
There was UI errors because ui data wasn't updated, now ui data update is tied to load_materials
2024-10-29 18:16:05 +05:00
Andrej730
bb23d74ce3
Fix bug in 4c93270ad for IfcMaterialLayers
2024-10-29 18:16:05 +05:00
Andrej730
ff0fe0db06
Small optimization for materials UI
2024-10-29 18:16:05 +05:00
Andrej730
834be2d6a8
geometry.add_wall_representation - document
2024-10-29 18:16:05 +05:00
Andrej730
af01f6b6c7
geometry.create_2p_wall - document
2024-10-29 18:16:05 +05:00
Andrej730
87d185fef1
Lock scale for aggregate parts too if aggregate has openings
2024-10-29 18:16:05 +05:00
Andrej730
bfa2852ca9
typing
2024-10-29 18:16:04 +05:00
Cristian Ritter
cf0a4e2bde
Handle with lowercase hexadecimals #5620
2024-10-28 19:58:43 +01:00
Andrej730
fd6a541689
bonsai bcf v3 - fix issue activating camera in some cases
2024-10-28 20:10:39 +05:00
Andrej730
4c3bb54f98
bim.update_representation to detect openings from it's aggregate and show an error
...
Previously it would apply scale and geometry with opening to the representation, basically corrupting it.
2024-10-28 18:22:11 +05:00
Andrej730
6a4167e234
bim.add_opening to sync representations before adding an opening
...
E.g. if object was scaled or edited. Previously geometry changes were either lost or applied in a weird way (to the object without scale).
2024-10-28 18:21:43 +05:00
Andrej730
147f0bfc9a
Sync parts positions before applying the opening
...
To avoid issues like this - https://imgchest.com/p/bp45zlzen45
2024-10-28 18:21:43 +05:00
Andrej730
a4979a74b2
Fix bug object position wouldn't be synced on project save
...
If project had scale and openings then bim.update_representation wouldn't apply it's position leading to unsynced position.
2024-10-28 18:21:42 +05:00
Andrej730
850c16c745
Fix bug when object scale wouldn't be applied on project save if object wasn't moved
2024-10-28 18:21:42 +05:00
Andrej730
b96e275251
Fix bim.update_representation not apply scales if object wasn't moved
...
Was also creating same issue when project was saved
2024-10-28 18:21:42 +05:00
Andrej730
48a7af76ad
Bump Blender build and simplify sun_position installation
2024-10-28 18:21:42 +05:00
Andrej730
3f4a0128c7
ifcsverchok - fix poll error opening operator search
2024-10-28 18:21:42 +05:00
Andrej730
bdbe91f043
typing
2024-10-28 18:21:42 +05:00
Andrej730
86d0139f41
Hide object related panels when there is no object active
2024-10-28 16:23:35 +05:00
Andrej730
f2e9f2beb9
Fix error adding custom pset to material set item when no item currently edited
...
Error traceback posted in #5647
2024-10-28 16:23:35 +05:00
Andrej730
4c93270adc
Select material in materials UI #5647
...
Example - https://imgchest.com/p/6eyr8j8ag7p
2024-10-28 16:07:23 +05:00
Andrej730
320142f8e2
Hide material sets panels if there is no material set #5647
2024-10-28 16:07:23 +05:00
Andrej730
88d133b4cc
Fix ifc calls on every draw call for material set pset names enum
2024-10-28 16:07:23 +05:00
Andrej730
7fef81c0b9
black .
2024-10-28 16:06:27 +05:00
Thomas Krijnen
92b63a0ef2
Update build-all.py - add 3.13.0
2024-10-27 06:55:38 +01:00
Ryan Schultz
fc57a7bbf4
Fix #5078 : A way to quickly sum up a qto value of multiple selected objects
2024-10-26 14:26:25 -05:00
Thomas Krijnen
68062f54d8
Gracefully handle missing aggregate header fields #5626
2024-10-26 17:21:15 +02:00
Thomas Krijnen
d6ed28e504
Update build-all.py - add rhel-related comment
2024-10-26 17:11:23 +02:00
civilx64
8ff4cef7ec
lint with black
2024-10-26 17:06:24 +02:00
civilx64
8d001d0120
cleanup from original python alignment prototyping
...
`transition_curve.py` is now obsolete and has been removed.
A python port of IfcAlignmentHelper.cpp has also been started.
It needs further development to accommodate vertical alignment.
2024-10-26 17:06:24 +02:00