Commit Graph

432 Commits

Author SHA1 Message Date
Andrej730 17ee5e6f43 Getting shader graph nodes by type rather than name #3316
Because relying on names doesn't work for non english users
2024-04-15 12:04:44 +02:00
Sigma Dimensions 0959a7f6a3 Refactor and re-use common spatial_tool.select_products 2024-04-15 11:44:55 +02:00
Andrej730 a57f9e984b Tests for external svg references 2024-04-15 10:59:02 +02:00
Andrej730 c930eb7603 References for adding external svgs to the sheets
It works exactly the same as schedules - you add some .svg file, path to it stored in ifc and you can attach it to the sheet.

UI - https://i.imgur.com/tGbCGBb.png

Still need to add some tests for references
2024-04-15 10:34:50 +02:00
Sigma Dimensions 2a791eef52 Run costing tests and rename changed methods 2024-04-15 10:34:41 +02:00
Dion Moult 5f4fef42ac See #3069. Continued refactoring to not rely on users_collection[0]. 2024-04-15 10:34:41 +02:00
Dion Moult 4f15ec1f67 Fix regressions after making aggregate based on selected objects. 2024-04-15 10:34:41 +02:00
Dion Moult 804dbee2c3 Fix #3069. WARNING: dangerous change. Objects that have their own collection now have a pointer to that collection. This fixes a variety of subtle sync bugs. 2024-04-15 10:34:41 +02:00
Andrej730 d2d6a9e7d4 Remove test to reproduce #3169 as irrelevant 2024-04-15 10:34:41 +02:00
Andrej730 0dfb34a730 Added test to cover 2629172ff 2024-04-15 10:34:41 +02:00
Dion Moult 43bfd51ccb Fix #3181. 2024-04-15 09:58:26 +02:00
Andrej730 9403b8cbf0 Added default Model/Annotation/PLAN_VIEW to support e68fdb2db 2024-04-15 09:58:25 +02:00
Andrej730 afda99d2f4 Test that drawing styles are loaded 2024-04-15 09:58:25 +02:00
Andrej730 a07d782683 Added test scenario to reproduce #3169
Can be easily called with `pytest .\test\bim\test_feature.py -k "issue"`

Commented some lines out to make sure it doesn't interrupt someone's test process.

Need to uncomment `When I press "bim.create_drawing"` if you want to see if it freezes for you.

You can also uncomment `And I save sample test files and open in blender` to see the freeze manually in Blender client.
2024-04-15 09:58:24 +02:00
Andrej730 ce9769b1e1 Test to cover drawing maintaining sheet position #3155
Updated to gitignore to include some new folders that are created during tests
2024-04-15 09:58:24 +02:00
Andrej730 2d67950503 3d annotations for FALL, SECTION_LEVEL, PLAN_LEVEL #3145
Before that commit if you created those types of annotations and then reopened .ifc file (without .blend) then you would lose their z coordinate and therefore would lose their value (because they were created previously as 2d annotations).

Now those annotations created as 3d to avoid that problem. I've also added temporary fallback that will turn your existing annotations to 3d next time you edit them.
2024-04-15 09:58:24 +02:00
Andrej730 ec39cdfc6d Added some tests for changing ifc text 2024-04-15 09:58:24 +02:00
Andrej730 ae0ae76ee6 Fixing bug with changing text size #3159
Bug appeared after 046940f but it was there before - it was just kind of compensated by the other bug.
Because of that bug blender text size value was reupdated before saving it to pset therefore pset never received a new value.

Also added some refactor, planned to write some test to get this error covered.
2024-04-15 09:58:24 +02:00
Andrej730 91387b3aa8 Saving drawing shading styles to ifc #2991
Now shading styles are stored in ifc. It's actually stored in json file (by default it's in projects "assets/shading_styles.json") and the path to it saved in `EPset_Drawing.ShadingStyles`.
Current shading styles is stored in `EPset_Drawing.CurrentShadingStyle`.

This change could potentially cause problems but I've added some temporary fallback to make sure `EPset_Drawing.ShadingStyles` will be set to some default path and default shading styles will be copied to the project's folder.
2024-04-15 09:58:24 +02:00
Dion Moult b8431a8c33 Fix failing tests in preparation for release. 2024-04-15 09:56:38 +02:00
Dion Moult 8b173e5b4d Fix fundamental bug where area and volume units were ignored on new projects. 2024-04-15 09:56:38 +02:00
Dion Moult c615f7469a See #1676. You can now duplicate space boundaries. 2024-04-15 09:56:37 +02:00
Andrej730 499edf960d Test command to load blend file during test scenario for debugging 2024-04-15 09:56:36 +02:00
Andrej730 17cb72896f Fixed bug with double conversion of height/extrusion length #3073
Also fixed some tests
2024-04-15 09:56:36 +02:00
Sigma Dimensions 55250aba6d BBIM 4D features & fixes:
- feature to re-order tasks
- fixes for task sorting
- further workSchedule UI/UX improvements
- forgotten bits and bobs
2024-04-15 09:52:38 +02:00
Sigma Dimensions 83344e4f43 - BBIM 4D: features to review and edit Resource productivity data on the fly
- IOS: new resource utilitiy functions
2024-04-15 09:52:38 +02:00
Andrej730 6ee8369114 test_qto.py black format 2024-04-15 09:49:52 +02:00
Andrej730 ccba3a3b8b Tests for calculating quantities for prefix and imperial project units 2024-04-15 09:49:52 +02:00
Sigma Dimensions dae8d6bdc1 fix "cost_item quantity updates" bug when editing a QTO 2024-04-15 09:37:50 +02:00
Dion Moult fe8220f9a7 Add support for editing ref latitude/longitude 2024-04-15 09:37:49 +02:00
Dion Moult 507f03640a Fix #3003. 2024-04-15 09:37:49 +02:00
Andrej730 fcdfa5dd23 Annotation Tool
Added Annotation Tool that allows you create annotation types and their occurences. It will also allow us to get rid of "Annotation" panel in N-panel.

I've recorded bunch of short videos to demonstrate the features:

- bulk tagging - currently works only for "Text" and "Stair arrow" type of annotations, adds annotations to all selected objects, automatically assigns products to the annotations
https://user-images.githubusercontent.com/9417531/231968358-28cbb762-3349-470a-beef-d1ab21882769.mp4

- creating annotation type with representation - all occurences will share the same representation which makes bulk tagging really powerful if you use variables like {{PredefinedType}}, {{GlobalId}}, {{Name}}, {{Description}}, {{ObjectType}}, {{Tag}}

https://user-images.githubusercontent.com/9417531/231970500-333514c6-6406-4ef5-a9e7-fddfcc9a2436.mp4

- creating annotation type without representation - it allows occurences to have unique text or line geometry but still share the same classes from inherited property set

Examples:
  creating text type without representation to create title case annotations
  https://user-images.githubusercontent.com/9417531/231969361-bda5f924-a8c8-4f5a-ba61-461aa7101f73.mp4

  creating type for oblique dimension annotations
  https://user-images.githubusercontent.com/9417531/231969902-38e8c3f4-45a6-4c98-bba4-2956288ce10a.mp4

- readjusting - if you created some annotations using bulk tagging but the products were changed / moved afterwards now you can select those annotations and "readjust" them according to new product's position / measurements
https://user-images.githubusercontent.com/9417531/231968975-ee8d6589-60ee-4575-9be2-b0ce68d43ffa.mp4

PS In this commit I've also moved all icons to 1 .blend file and added instructions how to regenerate them.
2024-04-15 09:37:49 +02:00
Dion Moult c852678437 See #2978. Fix crash upon drawing deletion. 2024-04-15 09:37:49 +02:00
Dion Moult cf640a971d Fix #2968. Deletions are no longer postponed. Should fix or reveal a lot of sync errors. 2024-04-15 09:37:48 +02:00
Dion Moult c4c3fc1bfa Fix bug where switching representations didn't update the material checksum, leading to unnecessary material syncs at export time. 2024-04-15 09:37:48 +02:00
Dion Moult 4e94d0dc10 Fix #2516. Add/build/remove/view/rename/copy sheet/drawing/schedule now all references and updates user configurable relative paths. 2024-04-15 09:25:50 +02:00
Dion Moult 47709662b9 See #2516. References to titleblocks, layouts, and published sheets are now explicitly stored. Titleblock paths are now configurable. Generated filenames are sanitised. 2024-04-15 09:25:50 +02:00
Dion Moult 2e466ead37 See #2516. WARNING: breaking changes! Restructure drawing system to use relative paths based on IfcDocumentReference Locations. 2024-04-15 09:25:50 +02:00
Andrej730 1ff6f691ac Clever STAIR_ARROW annotation
Now adding STAIR_ARROW annotation is a bit more clever - if you have IfcStairFlight selected when adding this type of annotation it will automatically:
1) define stair as it's parent;
2) add the stair as it's product;
3) place itself along the stair (it's assumed that stair direction is X+)

Example - https://i.imgur.com/Ze9DoK2.png
2024-04-15 09:25:47 +02:00
Dion Moult df0a503b89 Improve implementation of is_moved so that anywhere we check movement, types and projects are not considered 2023-03-24 21:59:09 +11:00
Dion Moult 0a22714fb8 See #2887. Experimental edit mode toggle override to ensure mesh changes stay in sync and so that you can edit meshes without openings applied. 2023-03-23 21:51:06 +11:00
Andrej730 df95bdb48e Fixing tests after 2003bfe4f 2023-03-23 09:53:02 +05:00
Andrej730 f7181aae8a Multiple literals in 1 Ifc Text + aggregated text annotations
Added option to store multiple literals inside 1 Ifc text object.

If multiple literals share the same `BoxAlignment` then only the first one will be displayed in viewport
to prevent visual clutter (although added small asterisk symbol to indicate that there are still multiple literals).

Added option for aggregated text annotations. Example - "door-tag" symbol.
If you create text, specify "door-tag" symbol in EPset_Annotation.Symbol
\and add two literals to it then they'll automatically will fit to that door-tag in the svg drawing
(https://i.imgur.com/OXaIlWe.png).

The way it works - you define symbol in symbols.svg (or in your own symbols svg file)
and then add the `<text>` fields where text from literals will fit right in.
The imporant note: `<text>` tag must have attribute `data-type="text-template"` for it to work.
For example: `<text text-anchor="middle" dominant-baseline="middle" data-type="text-template"></text>`
2023-03-21 17:37:28 +05:00
Dion Moult c97e1079e8 See #2866. Fix issue where annotation should be able to use 3D coordinates (i.e. Model context type) for elevations and sections where it makes more sense. 2023-03-20 16:36:50 +11:00
Massimo Fabbro 05bdc962a3 Now it's possible to see the selected object related cost items and related quantities in qto n-panel 2023-03-20 08:12:24 +11:00
Dion Moult 2816d7f522 Fix bug where deleting the drawing object could lead to orphaned relationships 2023-03-19 18:15:09 +11:00
Dion Moult 558aff72a0 Psets and qtos are now only created when properties exist to prevent invalid IFCs. 2023-03-19 14:49:31 +11:00
Dion Moult bcc399b842 Empty psets are purged to discourage invalid psets with no properties 2023-03-19 13:13:15 +11:00
Andrej730 31f6baaf67 small refactor for Ifc.edit and tool.Ifc
1) replaced IfcStore.edited_objs.add with tool.Ifc.edit
2) updated interface in tool.py
3) removed unlink from tool.Ifc - it was declared there twice
2023-03-17 17:50:56 +05:00
Andrej730 0d473fa9ac Fixing BoxAlignment value in tests (similar to 9f7db386a) 2023-03-16 16:08:58 +05:00