Commit Graph

375 Commits

Author SHA1 Message Date
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
tetektoza
e13d0787d3 BIM: Fix missing IFC attributes for certain BIM objects
Some of the objects, like Column, or Beam do not contain `IFC
Attributes` if they are initially created.

As it turns out, they are not being created as we are checking for
`onDocRestoredDone` attribute, which is assigned in `onDocumentRestored`
function. Since users can usually just not restore a document, but just
play on a newly created document, this attribute won't be available,
thus we won't be going through whole `onChanged` logic which populates
`IFC Attributes`.

To preserve current functionality of this additional parameter and not
cause the previous errors to happen, this patch just changes from the
custom flag to globally available `Restoring` flag which tracks document
being restored more reliably.
2025-05-12 17:50:11 +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
Furgo
68987874b3 BIM: set DoubleClickActivates property true by default 2025-05-12 17:36:29 +02:00
Roy-043
2a53890045 BIM: show units in Arch_Roof task panel
Fixes: #21137.

Note that the list values in the Property editor are unitless. Therefore lengths are still in mm there.
2025-05-07 17:54:14 +02:00
Syres916
f8dd2d0ec1 [BIM} remove incorrect check which was stopping the default Pipe being created 2025-05-07 17:53:26 +02:00
Furgo
ae6bd1b107 BIM: add docstrings to all Arch module functions 2025-05-07 17:51:57 +02:00
Furgo
8710648480 BIM: refactor whitespace between parameters and operators for improved
readability
2025-05-07 17:51:57 +02:00
tetektoza
a787a60f78 BIM: Pass correct object for Compass while updating Visibility property
Currently, if user selects `Site` object in the Model tree, and hides it
while having `Compass` property selected to `true` and then unhides it,
the Compass is not appearing even though the property still remains to
be true.

This is because for the `Compass` property itself and `Visibility`
property we're using two different object types. For `Compass` property
we're using View provider geometry object, whereas for the `Visibility`
property we're using `Part::Feature` object. Since `Part::Feature`
object doesn't have compass attribute and Compass directly under it,
we're never hitting the logic to show the compass.

So, this patch just changes the object type that is being passed to
`updateCompassVisibility` during change of `Visibility` property, to
match the same object type passed during change of `Compass` property.
2025-05-05 18:19:22 +02:00
Furgo
02c3ecc5d0 BIM: group 2D view creation commands 2025-05-05 18:10:18 +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
Ralf Habacker
3669cefd17 BIM: Fix Python syntax error
Due to the use of an incorrect exponentiation operator the following
exception was triggered when changing attributes of a wave profile:

TypeError: Unsupported operand type(s) for ^: 'float' and 'float'

fixes #21048
2025-04-29 07:14:17 -05:00
tetektoza
fcfd26b97a BIM: Allow CurtainWall to have Window being assigned upon Remove/Add ops
Currently user has no possibility to insert Window to the host, if the
host is a Curtain Wall.

Solution is simple - just populate the array of acceptable hosts that
haven't been extended.

NOTE: Although this feels wrong, I've noted to change it as having some
kind of an internal flag allowing for add/remove for the host, since
extending this array looks like a really bad approach.
2025-04-28 18:20:16 +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
paul
e4b1190956 [ArchStairs] ArchSketch Support and Refactoring Phase 2 (#21025)
* [ArchStairs] ArchSketch Support and Refactoring Phase 2

Phase 2 Subsequent to https://github.com/FreeCAD/FreeCAD/pull/20069

FC Forum Discussion:-
https://forum.freecad.org/viewtopic.php?p=814274#p814274

ArchSketch Support, PropertySet, and Refactoring to enable more complex Stairs shape.

* [ArchStairs] ArchSketch Support and Refactoring Phase 2 - Typo fix

* [ArchStairs] ArchSketch Support and Refactoring Phase 2 - Clean up Tab
2025-04-28 10:04:40 +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
Roy-043
ff92a96170 BIM: Hidden objects used for variant Links should not be hosted
If a window is a variant Link there will be a hidden source object in the document. That hidden object shares properties with the visible Link object. The Hosts property may be one of them, yet the hidden object should never be hosted.

Forum topics:
https://forum.freecad.org/viewtopic.php?p=817743#p817743 (sample file)
https://forum.freecad.org/viewtopic.php?t=96115 (code discussion)

To test the code:
1. Open the mentioned sample file.
2. Change the Hosts property of  Window001 to Wall.
3. Recompute.
2025-04-25 15:07: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
Tomas Polak
5b80376447 BIM change BIM_Setup dialogue default width 2025-04-17 00:28:51 +02:00
Sameer Mishra
8db5b1ff74 BIM: Fix 'Convert to type' dialogue unhandled placeholder #20676 (#20705)
Handle %1 placeholder that was appearing in text strings
in the 'Convert to type' dialogue. This was affecting multiple
language files in the translation system.

This change improves the readability and correctness of the displayed text
in the application interface.

The dialog now dynamically shows the correct type (e.g., 'WallType', 'BeamType')
in the user's interface language.

---------

Co-authored-by: _sameer <sameer.mishra@infra.market>
2025-04-15 12:58:28 -05: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
a0796f6625 BIM: fix Arch_Schedule column width handling
Fixes #20723.

The clearAll method resets the column widths of the sheet. The code now stores the old widths and restores them after calling the method.

The old problem that the method would remove the custom property no longer occurs so that code was removed.
2025-04-14 11:21:26 -05:00
Roy-043
046d6af286 BIM: HorizontalArea prop did not detect islands
Forum topic:
https://forum.freecad.org/viewtopic.php?t=95973

This was fixed by using `Part::FaceMakerCheese`.
2025-04-14 11:00:40 -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
Yorik van Havre
1a07336c3d Merge pull request #20406 from marcuspollio/bim-cleanup-imports
BIM: cleanup imports
2025-04-07 17:43:36 +02:00
xtemp09
d7fe28af7b Make some context menu actions translatable (#20401)
* Make some context menu actions translatable

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-04-07 08:43:04 -05: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
Luz Paz
97e172334b Fix typos
Found via `codespell -q 3 -L aci,addmin,ake,aline,alle,alledges,alocation,als,ang,anid,anormal,aply,apoints,ba,beginn,behaviour,bloaded,bottome,brushin,bu,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childrens,childs,colour,colours,commen,connexion,currenty,documentin,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,findn,fle,freez,graphin,hist,iff,incrementin,indexin,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,itsel,kilometre,leadin,localy,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oce,oder,ontop,orgin,orginx,orginy,ot,pard,parm,parms,pres,programm,que,rady,recurrance,renderin,rin,ro,rougly,sectionin,seperator,serie,shs,sinc,siz,som,strack,substraction,te,technic,thist,thru,tread,tru,ue,uint,unter,uptodate,vas,vertexes,vew,wallthickness,whitespaces -S "./.git,*.po,*.ts,*.pdf,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./src/Base/StackWalker.cpp,./build/doc/SourceDoc,./tools/build/WindowsInstaller/lang,./src/Mod/TechDraw/Templates/locale"`
2025-03-31 23:00:32 +02:00
Tomas Polak
dac7408ee2 BIM adjust BIM_Classification tooltip 2025-03-30 20:54:50 +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
Furgo
ab32b70734 BIM: add missing import 2025-03-25 09:46:54 +01:00
Furgo
f3e3cfd941 BIM: also install test files 2025-03-25 09:46:54 +01:00
Furgo
a0344650a5 BIM: move more functions to their own modules, standardize logging 2025-03-25 09:46:54 +01:00
Furgo
5c8290b853 BIM: move tests to own module, separate App/Gui tests, add TestArchBase 2025-03-25 09:46:54 +01:00