* BIM: Add test for space from single wall boundaries
* BIM: Arch_Space, enable creation of spaces from single objects with
boundaries
* BIM: update and expand docstring
* BIM: make ifcopenshell version detection and comparison more robust
* Add reference to FreeCAD bug
* Use create_pip_call for compatibility with different platforms/packages
* Demote workaround logging category for quieter output
* Correct ifcopenshell's actual version in the workaround as well
* Allow upgrading packages
* Provide more verbose output if there is an error with the pip call
* Really print the exception message
* Fix catch-all exception syntax
* Remove ifcopenshell version workaround
Weekly build 40444 containing the fix (https://github.com/FreeCAD/FreeCAD/pull/19861) has been released at https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds
* [ArchWindow] Improve SubVolume() HoleDepth deduction algorithm
https://github.com/FreeCAD/FreeCAD/issues/19559https://forum.freecad.org/viewtopic.php?t=92360https://forum.freecad.org/viewtopic.php?p=812844#p812844
Current HoldeDepth deduction algorithm is too 'agressive' and may punch holes in adjacent wall segment.
With improved algorithm, ArchComponent pass the Window's host information to ArchWindow getSubVolume() to deduce HoleDepth taking into account of Wall's Width /getWidths for Wall Base is ArchSkech
TODO: For future development - More robust approach
With ArchSketch, on which wall segment an ArchObject is attached to is declared by user and saved.
The extrusion of each wall segment could be done per segment, and punch hole in the exact wall segment before fusing them all. No need to care about each wall segement thickness.
* [ArchWindow] Typo Lint reported
* [ArchWindow] Fix getSubFace(self) raise NotImplementedError
Github comment - https://github.com/FreeCAD/FreeCAD/pull/19774#discussion_r1972052310
* [BIM] Use relative imports
Also fix other issues with imports.
Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
* [BIM] Avoid two bare except
Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
* [BIM] Replace not ... in with ... not in
Also fix whitespace between functions.
Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
* [BIM] Fix error with missing IFC2X3.IfcProject.Declares
Fix `entity instance of type 'IFC2X3.IfcProject' has no attribute 'Declares'`.
Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
---------
Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
Co-authored-by: Gaël Écorchard <gael@km-robotics.cz>
Fixes#19577
Apparently the ViewObject can be updated before the Shape of the objects has been changed. To catch this the number of edges is checked in the `onChanged` method of the ViewObject.
There was an additional index error if the Limit property was not zero.
Fixes#16333.
Follow-up of #19487.
* The functions have been made nesting-aware. New objects are put in the same container (Group, Part) as the original objects. As a consequence for some operations the original objects must be in the same container as well.
* New objects receive the visual properties of the original objects. This is not always perfect. For example when upgrading to multiple wires there is currently no check to see which edge came from which orginal object. The fact that the `format_object` function is called from the Draft `make*` functions is problematic here. If construction mode is active `make_wire` puts new objects in the construction group and we don't always want that. This has been solved with a workaround (see 'cludge' in the code).
* The 'de-parametrize' downgrade option has also been enabled for features of PartDesign Bodies that have the `Profile` property.
* Before deleting objects there is a check to see if they are in use elsewhere (`InList` check). Base objects of arrays are not deleted if they are visible. If a PartDesign Body, or an object inside a Body is selected, the whole Body is deleted.
* The force options did not work for functions that take a single object.
* The `getShapeFromMesh` function in ArchCommands.py could return a solid that was not closed. A check for that has been added.
* Fix duplicated groups
* Fixed windows spaning several floors
* Fixing doorOrWindow positioning. Allowing to DEBUG_GEOMETRY
* Fixed default color for floor and ground
* Fixed some windows positioning issue
* Fixed invalid modification of wall array. Changed default window type to allow opening
* fixed some import failures. Added some new windows
* Fixed some more edge cases
* Use doc transaction. Fixed import of room based on self-intersecting polygon.
* Added default furniture color. Fixed wall reference face to fix slab creation
* Replace Debug setting by DebugGeometry
* Fixed corner cases when importing Door & Furniitures
* Fix emissive color and shininess
* Remove external package dependency
* Fixed furniture placement and transformation
* Make sure lights are properly imported
* Fixed duplicated camera and ground when merging
* [ArchSketchObject / Window] Links of Window to support Individual Hosts
Currently, Links of Window's Hosts property (and in generall all properties other than e.g. Placement) is shared with its Linked Window object, i.e. all Windows Links instances can only has a common Host(s) which is not flexible for the purpose of Links.
AND, at the same time, Links in linked document suffer from the 'scope' of the original Linked Window, which is in the external Document.
This commit adds feature to support:
1/ each Links instance of Windows has their own individual setting of Hosts, and
2/ it see the 'scope' of the Links in its document (rather than the Linked Window in the external document)
FreeCAD Forum:
- https://forum.freecad.org/viewtopic.php?p=808569#p808569
FreeCAD GitHub:
- https://github.com/FreeCAD/FreeCAD/issues/19361
* [ArchSketchObject] Fix indentation