Commit Graph

8925 Commits

Author SHA1 Message Date
Andrej730 78abca16e6 black format 2024-04-05 16:47:14 +05:00
Andrej730 02aaf1b409 typing 2024-04-05 16:47:13 +05:00
Andrej730 02e102f2d2 Collector.sync skip_unlinking option #4500
To speed up the drawing process in large projects and reduce time on syncing stage I've found that if object is already assigned to it's parent collection (both as part of blender collection and in IFC) we can skip assigning stage significantly reducing time on syncing in general (from 20-25 secs -> 9 secs).

The only thing we'll be missing in that case that object won't be unlinked from other unrelated blender collections which shouldn't break anything in the case of drawing generation.
2024-04-05 16:30:44 +05:00
Andrej730 ec0dcb7f8c documentation and small refactor 2024-04-05 16:30:43 +05:00
Andrej730 ba63ed81a1 small optimizations
1) stop on first parent collection
2) ensure object's own collection's parent has BIMCollectionProperties.obj during the loop
3) collector._get_collections - returns project's own collection for consistency
4) couple tweaks skipping unnecessary iterations in loops
2024-04-05 15:55:01 +05:00
Dion Moult fb6660361d See #4518. Fix pypi python version requirements. 2024-04-05 21:13:24 +11:00
Dion Moult ecae9943e2 Add missing build dep 2024-04-05 21:12:27 +11:00
Dion Moult 6555e56647 Fix evil hacks in ifcopenshell pip dist packaging and support py312 on PyPI 2024-04-05 16:54:29 +11:00
Dion Moult c35c3f06b5 Fix #4504. Extract CAD layers when linking in models. 2024-04-05 15:03:47 +11:00
Dion Moult fada808a2f See #4504. Extract material data for linked models. 2024-04-05 14:53:11 +11:00
Dion Moult e221e6fa6a See #4508. Update example code to serialise to obj. 2024-04-05 08:25:59 +11:00
Andrej730 5c365990b9 bim.debug_active_drawing debug operator #4500
Operator can help narrow down failing elements when drawing is failing with "RuntimeError: An unknown error occurred".

it's located in debug section - https://i.imgur.com/b03jmkZ.png

The output is noisy but the results are highlighted:
https://i.imgur.com/0ZA0u60.png
https://i.imgur.com/oXzqIXU.png
https://i.imgur.com/Y0nMRMz.png
2024-04-04 16:42:00 +05:00
Andrej730 797e2e41a5 bim.create_drawing to sync only once if printing multiple drawings
Turned out syncing process takes too much time on large projects, so we can speed up the printing process by syncing just once. Also exposed option not to sync to operator's properties to allow debugging failing elements.

A bit related to #4500
2024-04-04 16:41:59 +05:00
Andrej730 57fe40839b black format, cleanup, notes
bim.generate_global_id - forgot to remove it previously, this operator isn't intended for debug section
2024-04-04 16:21:10 +05:00
Andrej730 b4c5ad1e35 typing 2024-04-04 16:07:31 +05:00
Dion Moult 635ddce93d Autodetect CSG representation types in shape builder 2024-04-04 18:28:26 +11:00
Dion Moult 24e807cac7 Detect binary data types in util.attribute 2024-04-04 18:28:26 +11:00
Massimo Fabbro 33ceba38a8 Qto_Calculator more consistent calculation about the PredefinedType 2024-04-03 22:26:50 +02:00
Massimo Fabbro 90ed1f9b28 improve the flooring height object quantity calculation 2024-04-03 22:26:50 +02:00
Massimo Fabbro e431cb205c improve the ceiling height object quantity calculation 2024-04-03 22:26:50 +02:00
Massimo Fabbro 09bb45f5bc fix add ceiling from walls elevation bug 2024-04-03 22:15:11 +02:00
Andrej730 7087452cde log external styles names when they fail to load 2024-04-03 17:37:38 +05:00
Andrej730 af4b58444d typing 2024-04-03 17:37:38 +05:00
Andrej730 711423cae5 use default shading_styles.json in case if project's file is missing
to make it consistent with how we use in similar cases default styles, symbols, etc
2024-04-03 17:37:38 +05:00
Andrej730 eb8b6062b4 move override panel methods to tool.Blender
to keep them close, so it will be easier to keep them in sync
2024-04-03 17:37:38 +05:00
Andrej730 5ac96cb5b9 change .poll for overridden panels instead of creating new classes
Needed to avoid errors disabling addons that have overridden panels
2024-04-03 17:37:38 +05:00
Andrej730 c462fc9337 move scene panels from different addons to "Blender Properties"
now we also automatically get list of default blender scene panels instead of hardcoding them
2024-04-03 17:37:38 +05:00
Andrej730 95f7a2bcde override blender ui panels when should_setup_workspace = False
Previously with should_setup_workspace = False it wouldn't override Blender UI scene panels and they would get mixed up with BBIM panels. After fix Blender panels are always moved to "Blender Properties" tab

before - https://i.imgur.com/bPvcAEe.png
now - https://i.imgur.com/lRUox29.png
2024-04-03 17:37:38 +05:00
Dion Moult 04cf9c870b Fix bug when linking in models with no chunks 2024-04-03 21:24:03 +11:00
Andrej730 bf9bddc867 ifcopenshell.validate to check unique guids (IfcRoot.UR1) 2024-04-02 17:17:23 +05:00
Andrej730 20a2fda066 typing 2024-04-02 15:45:42 +05:00
Andrej730 f03afb20f3 validate.py - black format 2024-04-02 15:45:42 +05:00
Gorgious56 e0df22ffec The button to remove an inherited pset is no longer enabled on instances
Previously it would fail silently if clicked
2024-04-02 09:52:43 +02:00
Andrej730 96302a5c07 Return of the missing button for regenerating global id
Was about to implement to find that we already have "bim.generate_global_id" and it just was lost at some point. Returned it to the attributes UI. It also allows Updating guids for all selected elements on Shift+Click.

This also can be useful to solve MergeProject and other guids conflicts, see example issue in https://community.osarch.org/discussion/2062/bbim-mergeproject-patch-not-separating-elements-in-different-buildings

Example - https://imgur.com/a/mvRtyER
2024-04-02 12:44:06 +05:00
Andrej730 38afce1628 RegenerateGlobalIds - tests 2024-04-02 12:32:36 +05:00
Andrej730 cd5afacc97 Fix test after cf9a94a79 2024-04-01 17:22:49 +05:00
Andrej730 c2623e5dce prevent reloading reference annotations on loading .ifc #4478
1) if reference annotation was changed, it would reload discarding the changes
2) even if reference annotation wasn't changed it would still reload them producing noise in .ifc changes
2024-04-01 17:06:20 +05:00
Andrej730 42ecd7e127 typing 2024-04-01 17:04:00 +05:00
Andrej730 c80a7cfcc9 fix typo 2024-04-01 16:00:18 +05:00
Andrej730 6d8f1a3980 experimental svg to dxf conversion for drawings
Example - https://imgur.com/a/AkvLlbZ
2024-04-01 15:50:43 +05:00
Andrej730 5c4c61bb15 fix issue with prohibited facets in 0065c5f, add a test 2024-04-01 13:49:42 +05:00
Andrej730 d8af8b58bb ifctester.Specification.set_usage convenience method
sets minOccurs and maxOccurs according to the agreement mentioned in the latest ids.xsd
https://github.com/buildingSMART/IDS/blob/6d71cdf3547a0383c6cfbbead81a7cef7521ac3a/Development/ids.xsd#L67-L72
2024-04-01 12:26:07 +05:00
Andrej730 3c0405249b typing 2024-04-01 12:26:07 +05:00
Dion Moult 7f57649d10 Whoops. 2024-04-01 17:49:44 +11:00
Dion Moult fbde23870e Fix #4321. The PurgeData recipe now also works on IFC2X3. 2024-04-01 17:00:47 +11:00
Dion Moult 7b968030ca Fix #4060. The colour by property panel now shows the number of results in the legend. 2024-04-01 15:45:34 +11:00
Dion Moult b5d672ba42 Fix #4069. IfcClash Blender interface now uses the new filter UI. 2024-04-01 15:28:34 +11:00
Dion Moult efa8da83ba Bump IOS. 2024-04-01 10:19:40 +11:00
Dion Moult 64cf7237db IfcDiff now uses the new selector syntax with the new UI 2024-04-01 10:16:30 +11:00
Dion Moult cf9a94a799 Fix #4306. Remove superseded selector UI. 2024-04-01 09:44:50 +11:00