Commit Graph

137 Commits

Author SHA1 Message Date
tetektoza
c8395f43fc BIM: Avoid traceback if there is no Classification selected
As the title says, if user selects `OK` button and has no Classification
selected (which can happen only if the list is empty I think), then they
get a traceback since we're trying to access list of selections
directly.

So this patch adds a small patch to close the form if user has pressed
`OK` button and did not select anything.
2025-05-19 17:41:24 +02:00
Paul Lee
9da5eae6f0 [BimWindow] Interactive Creation Tool: Check if SketchArch is Enabled (ArchSketchLock)
Improvement to User Interactive Experience:
- The Window Interactive Tool would check if SketchArch-addon is enabled by user, i.e. if ArchSketckLock is checked.
- If not, the conventional creation behaviour is used, SketchArch properties would not be added to Window object.
- It also check if Base of Wall is ArchSketch or not.

Github Discussion:
- https://github.com/paullee0/FreeCAD_SketchArch/issues/27#issuecomment-2837652351
2025-05-13 11:29:09 +02:00
tetektoza
01f3fcb343 BIM: Allow changing Sill parameter in Properties for Window
User has no possibility to change Sill parameter upon adding Window, it
is only possible while creating Window for the first time.

So this patch adds this parameter, and changing it moves the *BASE*
coordinate of the object in Z direction.
2025-05-13 11:25:31 +02:00
tetektoza
8002693157 BIM: Switch Visibility of ViewObj on/off to restore it in all objs 2025-05-13 11:03:05 +02:00
tetektoza
1fef7dff94 BIM: Do not hide children of Building if Building has been isolated 2025-05-13 11:03:05 +02:00
tetektoza
69ad218f5c BIM: Remove additional recompute at the end of isolate 2025-05-13 11:03:05 +02:00
tetektoza
b7718efd5c BIM: Exclude viewtree from cached items and add a sanity check 2025-05-13 11:03:05 +02:00
tetektoza
10d476a35b BIM: Cache the tree elements beforehand and hide only necessary ones 2025-05-13 11:03:05 +02:00
tetektoza
8c3439e992 BIM: Hide all objects that aren't selected during Isolate
Currently if user selects an item and does `Isolate` operation on it in
BIM, everything is being hidden if the item was inside another container
(like Building).

This is because we are prioritizing on hiding parents of current object
if they are not the selected ones, which is causing the child of the
parent to be hidden as well (duh).

So, this patch fixes isolate method to hide all other parents and their
childs. If they are not a parent of our child under selection -> hide
them and proceed further. If we are processing parent of our selection,
just hide anything on current level that is not our selection while
leaving parent intact.
2025-05-13 11:03:05 +02:00
tetektoza
03f41eb11f BIM: Update tooltip for Activate button 2025-05-12 18:00:52 +02:00
tetektoza
3dfa5926d2 BIM: Introduce Activate for BIM Views
Currently there's no option for selecting active working plane other
than selecting `DoubleClickActivates` property on a BIM Level.

So, this patch adds an additional button for the submenu that BIM Views
provides - to activate working plane of the selected item.
2025-05-12 18:00:52 +02:00
Roy-043
63c81c2146 BIM: close BIM_Library task panel on doc close
Fixes #21179.

This PR uses the built-in solution to close the task panel.

I was not aware of this feature before. My 2 previous PRs related to the closing of task panels, #20719 and #21073, will (largely) have to be reverted/redone in favor of this solution.
2025-05-12 17:48:39 +02:00
marcuspollio
33c7efae85 BIM: fix some imports and cleanup miscellaneous (#20914) 2025-05-12 17:40:12 +02:00
tetektoza
6b4fc52a60 Draft: Preserve direction vector upon Continue Mode for Dimension (#20974)
So, currently, if we use Vertical/Horizontal Dimension which is
constrained in one direction vector, upon `Continue`, the direction
vector is not being preserved.

The cause of that is that everytime we recall the command in Continue
Mode, we also call base class' `Activated` method, which in turn calls
`finish()` if we have already initialized an active Draft command. This
doesn't happen during first usage of the command, because this variable
is not yet populated, but upon second (and next) runs it is. In turn,
this causes to call `finish()`, and clean up the direction vector. So,
in essence, we are specifying the vector and cleaning it every
"Continue" run.

So, as a solution, just move the direction vector as an argument to
populate super class with it, and do that after super class' `Activated()`
call, so it won't get cleaned up in `finish()`.

Co-authored-by: Yorik van Havre <yorik@uncreated.net>
2025-05-05 17:58:54 +02:00
Roy-043
24e15ecb61 BIM: close task panels on doc close
Fixes #17952.

This PR is a continuation of #20719.

It mainly involves adding `self.doc`. This new attribute is then also used in the rest of the modified classes. In some cases code was slightly reordered for consistency.

The `_finish_command_on_doc_close` function has been modifief to also handle `Gui.Snapper.ui.escape` and the code in gui_arcs.py has been updated accordingly.

Additionally:
Removed the `done` and `spacedone` variables in BimWall.py by tweaking the code.
2025-05-05 17:52:37 +02:00
marcuspollio
57d5464ae6 BIM: add missing license (#20906)
* BIM: add missing license

* BIM: add SPDX License id to init.py

* Revert Dice3DS license
2025-05-05 17:45:38 +02:00
Furgo
1d2fd7fe6c BIM: BIM_TDView, add tooltip info on how to insert the view on a particular page (#20932)
* BIM: add tooltip info on how to insert the view on a particular page

* Fix typo

* BIM: split tooltip comment for better code readability

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>

---------

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2025-04-28 17:46:09 +02:00
Roy-043
f915ad7190 BIM: Update working plane related code
Some code stemming from the old BIM external workbench still used `FreeCAD.DraftWorkingPlane`.
2025-04-28 10:01:35 +02:00
paul
33272a76c8 [BimWindow] Integrate Interactive Creation Tool with SketchArch Parametric Attachment Feature (#20872)
Improvement to User Interactive Experience:
- Now with the stock BIM Window Interactive Tool and SketchArch-addon, the required SketchArch parametric placement information of an Arch Object (Window currently) are automatically completed, no more manual input is required.

FreeCAD Forum Discussion:
- https://forum.freecad.org/viewtopic.php?p=822493#p822493

YouTube Demo:
- https://youtu.be/BNZFk03_eGE
2025-04-25 15:05:51 +02:00
Roy-043
061ae88878 BIM: Improve grid handling for some commands (#20658)
* BIM: Improve grid handling for some commands

The updated commands did not handle the 2 grid options ("always", "only during commands") correctly. The proposed code follows the example of BimWall.py and ArchStructure.py where this issue has already been addressed.

* Rebase
2025-04-25 14:59:33 +02:00
Florian Foinant-Willig
8a4c61ec5a BIM: prevent user to remove core properties 2025-04-22 23:52:17 +02:00
Florian Foinant-Willig
ef0ca1cff3 Core: Part::PartFeature should be Part::Feature 2025-04-21 10:51:15 -05:00
marcuspollio
1647852305 BIM: cleanup encoding 2025-04-21 10:10:26 -05:00
tetektoza
a75df5d7c0 Draft/BIM: Change Continue behavior and caching among commands (#20748)
* Draft: Cache ContinueMode setting for every tool separately

Currently ContinueMode is done to be held globally, so this patch
changes this to cache it inside `user.cfg` for every cmd separately.

* Draft: Add Chained Mode option for Dimension

Added new option under Dimension, although this is simply porting the
existing logic of "Continue" under "Chained Mode", whereas allowing
existing "Continue" mode to retrigger the command instead of placing
Dimensions in a chain.
2025-04-18 17:56:21 +02:00
Roy-043
47037105b1 BIM: fix BIM_WPView command (#20741)
* BIM: fix BIM_WPView command

The BIM_WPView command did not work properly. This was mainly due to a faulty import.

* Updated to avoid a linter warning
2025-04-14 11:28:55 -05:00
Roy-043
122dc056ab BIM: BIM_Leader would create a wire with fewer than 2 points
If the BIM_Leader was escaped without clicking a point, or after cicking only 1 point, a Draft_Wire object would still be created.
2025-04-14 10:34:13 -05:00
marcuspollio
679f582714 Merge branch 'main' into bim-cleanup-license 2025-04-11 15:13:45 +02:00
Furgo
3992d4a92d BIM: add missing ifc_tools import (#20368)
* BIM: add module-level import for ifc_tools

* Do not load ifc_tools at the start of module to avoid breaking tests
2025-04-07 17:49:26 +02:00
marcuspollio
5344969e95 BIM: use FreeCAD Dev Handbook license block 2025-04-05 17:55:51 +02:00
marcuspollio
0a8cae5c83 BIM: add FreeCAD notice in license 2025-04-04 18:15:43 +02:00
marcuspollio
4c2a0be22f BIM: cleanup license and add SPDX 2025-04-04 17:46:58 +02:00
marcuspollio
53feedf8ec Merge remote-tracking branch 'upstream/main' into bim-cleanup-imports 2025-03-30 12:44:55 +02:00
Roy-043
b3c4cec346 BIM: Remove calls to obsolete Draft.getParam
See #20198.
2025-03-26 13:09:17 +01:00
Yorik van Havre
3583ca806d Update src/Mod/BIM/bimcommands/BimMaterial.py
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-03-25 20:02:11 -05:00
Yorik van Havre
d8ceec8fba BIM: Fixed material dialog's merge duplicates button - fixes #20124 2025-03-25 20:02:11 -05:00
marcuspollio
5ecbd20d63 BIM: cleanup imports in bimcommands 2025-03-23 23:29:43 +01:00
Yorik van Havre
a2aa994897 BIM: Fixed project manager's save/restore - fixes #20288 2025-03-22 11:51:01 -05:00
Tomas Polak
74b622cb08 BIM_Classification dialgue - change tooltips and text to better represent their functions (#20274)
* Change Ifc Classification dialgue tooltips and text

* Update src/Mod/BIM/bimcommands/BimClassification.py

Co-authored-by: Yorik van Havre <yorik.vanhavre@gmail.com>

---------

Co-authored-by: Tomas Polak <semhustej@users.noreply.github.com>
Co-authored-by: Yorik van Havre <yorik.vanhavre@gmail.com>
2025-03-20 12:06:20 +01:00
Paul Lee
b06c8b3522 [ArchStairs] ArchSketch Support and Refactoring Phase 1
FC Forum Discussion:-
https://forum.freecad.org/viewtopic.php?p=814274#p814274

ArchSketch Support, PropertySet, and Refactoring to enable more complex Stairs shape.
2025-03-20 10:24:03 +01:00
Furgo
e8c4d7ea2f BIM: allow boundaries to be defined from a single object (e.g. wall) (#20158)
* 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
2025-03-19 10:45:26 +01:00
Furgo
f4276ae8f1 BIM: include selected objects when creating a level 2025-03-17 18:12:36 +01:00
Syres916
791256bc48 [BIM] Material dialog - fix the minimum width of four buttons in new group box 2025-03-12 06:05:08 +00:00
Syres916
134d94785f [BIM} Correct styling of DeleteIFCProperties window and add GroupBox 2025-03-10 13:49:57 +00:00
paul
3f9ad28acf [BimShape2DView] Bug-Fix : Shape2DCut Not Working (#19316)
* [BimShape2DView]  Bug-Fix : Shape2DCut Not Working

GitHub Issue - https://github.com/FreeCAD/FreeCAD/issues/18947

* Update src/Mod/BIM/bimcommands/BimShape2DView.py

Co-authored-by: Yorik van Havre <yorik.vanhavre@gmail.com>

---------

Co-authored-by: Yorik van Havre <yorik.vanhavre@gmail.com>
2025-02-28 10:08:56 +01:00
Yorik van Havre
98c26abc64 BIM: Do not change important pref options without user's consent - fixes #19163 2025-02-19 12:27:32 -03:00
Furgo
f81c15ee4e BIM: fix ability to cancel file dialog on BIM_TDPage command (#19518)
* BIM: use tuple return value from QFileDialog.getOpenFileName

Fixes: https://github.com/FreeCAD/FreeCAD/issues/19466

* BIM: remove filename assignment from tuple
2025-02-13 17:45:27 +01:00
Furgo
7135525346 BIM: fix error on double-clicking on non-IFC objects 2025-02-10 14:32:20 +01:00
Yorik van Havre
7829cab969 Bim project manager upgrade (#17909)
* BIM: NativeIFC 2D support - basic import/export + linework annotations

* BIM: NativeIFC 2D support - texts

* BIM: NativeIFC 2D support - dimensions

* BIM: NativeIFC 2D support - optimized export of FreeCAD dimensions

* BIM: NativeIFC 2D support - section planes

* BIM: NativeIFC 2D support - misc fixes cf comment #2383181661

* BIM: NativeIFC 2D support - axes

* BIM: Project manager upgrade

* BIM: Fixed rebase leftover
2025-02-10 10:40:46 +01:00
Chris Hennes
d4d74a4464 Merge pull request #19433 from tritao/gui-general-code-cleanups
Gui: General code cleanups
2025-02-06 11:33:44 -06:00
tritao
4260bd6fa4 Gui: Minor cleanups. 2025-02-05 22:13:07 +00:00