Commit Graph

21 Commits

Author SHA1 Message Date
Furgo
8e202d6aaf BIM: Fix ArchSite View Provider lifecycle, property constraints and defaults (#23844)
* BIM: Fix Site view provider initialization and constraints

This commit fixes bugs in the `_ViewProviderSite` lifecycle, ensuring
that sun path properties are correctly initialized with valid defaults
and that their constraints are reliably restored when a document is
opened.

Previously, two main problems existed:
1. New Objects: When a new `Site` object was created, its sun path
   properties (e.g., `SunDateMonth`) would default to 0, which is an
   invalid value. The property editor in the GUI would also lack the
   appropriate min/max constraints.
2. Restored Objects: When a document containing a `Site` was opened, the
   property constraints were not reapplied. This happened because the
   view provider's initialization logic was not being reliably triggered
   due to race conditions during the document deserialization process.

These issues are addressed now by a deferred initialization sequence:

- For New Objects: In `_ViewProviderSite.__init__`, constraint and
  default value setup is deferred using `QTimer.singleShot(0)`. The
  `restoreConstraints` method also now sets sensible defaults (e.g.,
  month 6, day 21) when it detects a new object.
- For Restored Objects: The data object's `_Site.onDocumentRestored`
  hook is now used as a trigger to start the view provider's
  initialization. This is a necessary workaround, as the `ViewProvider`
  lacks its own restoration hook. This method now ensures the view
  provider's properties are present and then schedules
  `restoreConstraints` to run via `QTimer`.

* BIM: add ArchSite GUI tests and fixtures

- Additionally clean up and document the CMakeLists.txt file for better
  maintainability and readability

* BIM: Enable GUI tests on CI

- The line to enable the BIM workbench has been commented out, as
  previously it occasioned a timeout error on CI
- The BIM GUI tests have been uncommented out to enable them
2025-10-05 11:47:56 +02:00
Furgo
09944fde79 BIM: set up TestArchGui, clean up CLI/GUI tests
- Also update TechDraw templates path after reorganization from https://github.com/FreeCAD/FreeCAD/pull/23719
2025-09-26 00:46:16 +02:00
Ilya Baidakov
7c05289f6b Add custom template path support for WebGL export (#21695)
* Add custom template path support for WebGL export
- Extract hardcoded template into separate file and store in Mod/BIM/Resources/templates
- Remove hardcoded template from code
- Add new section to Import-Export Preference page ("WebGL"). This introduces two new parameters
- Make export() return bool to indicate success or failure for controlled headless export
- Add new unit tests for WebGL export to ensure functionality
- Update CMakeLists.txt to include the new template resource

* Apply suggestions from code review

Changes to literals, suggested after DWG review

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

* Removed unused import

* Removed unused import

---------

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
Co-authored-by: Yorik van Havre <yorik.vanhavre@gmail.com>
2025-07-14 22:25:57 +00:00
Furgo
5386ca838a BIM: add first iteration of unit tests 2025-05-26 10:23:24 +02:00
Furgo
844bdada9c BIM: add area calculation unit tests for Arch Components 2025-05-23 10:14:40 +02:00
Furgo
ddc7035fbc BIM: also install test files 2025-03-25 09:46:54 +01:00
Furgo
518e2a8346 BIM: move more functions to their own modules, standardize logging 2025-03-25 09:46:54 +01:00
Furgo
aa1a5c135b BIM: move tests to own module, separate App/Gui tests, add TestArchBase 2025-03-25 09:46:54 +01:00
Furgo
40e0c60338 BIM: move Arch wall tests to their own module 2025-03-25 09:46:54 +01:00
Yorik van Havre
b5e2e8c007 BIM: Added classifications support to nativeifc (#18444)
* BIM: Added classifications support to nativeifc

* BIM: Fixed lint warnings
2025-01-07 10:35:37 +01:00
Yorik van Havre
6edd0daa1e BIM: Quantities support for nativeIFC objects (#18689)
* BIM: Quantities support for nativeIFC objects

* BIM: Added nativeIFC support for schedules
2025-01-06 11:55:50 -05:00
JULIEN MASNADA
bcdfcce95c Improved SweetHome 3D importer (#17165)
* Fixed access to Addon::Metadat::Url attributes

* Fixed invalid vector in distance calculation

* SH3D importer initial version

* Cleaned up and added baseboard

* Make sure notificationWidth is properly enabled/disabled

* Added furnitureGroup, color prefs, light weight mesh object

* Allow to join walls

* Prepare to join wall, improved status feedback

* Removing trailing white space

* SH3D importer initial version

* Cleaned up and added baseboard

* Make sure notificationWidth is properly enabled/disabled

* Added furnitureGroup, color prefs, light weight mesh object

* Allow to join walls

* Prepare to join wall, improved status feedback

* Removing trailing white space

* fixing tipo, 80 charlines, etc

* Adding a basic import test

* Work in local but fails on pipeline. Commenting out.

* Adding testcase and join wall path

* Use ruled surface to fix failed sweep

* Fixed faces order when joining walls

* Fixed missing sample importer file

* Allow to change pref just before import

* Fixed excessive debug output

* Allow to import from string. Test use embedded string

* Fixed tipo in comment

Co-authored-by: João Matos <joao@tritao.eu>

* Improved door import

Also added coloring for wall section's edges when debuging

* Moved debug init script to FreeCAD-Docker repo

---------

Co-authored-by: João Matos <joao@tritao.eu>
Co-authored-by: Yorik van Havre <yorik@uncreated.net>
2024-12-20 09:46:39 +01:00
Yorik van Havre
9c9d451ac6 BIM: NativeIFC 2D support - basic import/export + linework annotations 2024-12-11 10:24:43 +01:00
Yorik van Havre
fbd7d201d5 BIM: BimViews upgrade 2024-12-11 09:23:59 +01:00
Yorik van Havre
57637b6866 BIM: NativeIFC: Support for types 2024-12-05 12:31:56 +01:00
Yorik van Havre
41ca58bf7c BIM: Support for property sets in Native IFC (#18067)
* BIM: UI to add properties and psets to IFC objects

* BIM: Support native IFC objects in BimProperties

* BIM: Support removing IFC properties

* BIM: Fixed lint issues
2024-12-03 16:08:27 +01:00
Yorik van Havre
e2e8f39ea9 BIM: Renamed file to avoid confusion with 0.21 BIM addon 2024-07-02 15:23:37 +02:00
Yorik van Havre
a4f65b3288 BIM: Fixed more wrong resource loading - #14210 2024-05-27 11:12:44 -05:00
Yorik van Havre
bd143feae2 BIM: Added ifcopenshell update command 2024-05-16 17:23:10 +02:00
Yorik van Havre
2423159d69 BIM: Fixed resources location in build dir 2024-05-16 17:23:10 +02:00
Yorik van Havre
76e901861d BIM: Renamed Arch to BIM 2024-05-16 17:23:10 +02:00