Commit Graph

29 Commits

Author SHA1 Message Date
Roy-043
b754898b0b BIM: fix Arch_RemoveShape attribute error
Fixes #24610.

Note that the command (after this PR) does not work properly (as was the case in v0.21).
2025-10-19 22:23:35 -05:00
Furgo
01e87a2072 BIM: remove obsolete Python 2 urllib2 import
Python 3 combined the former `urllib`, `urllib2`, `urlparse` Python 2 modules into subpackages of `urllib`. FreeCAD is written in Python 3, thus the `urllib2` import fallback will not work and needs to be removed.
2025-10-16 21:21:40 +02:00
Furgo
c78b8930ba BIM: add missing DraftGeomUtils import (#24683)
Added import for DraftGeomUtils to ArchCommands.makeFace to prevent crash.
2025-10-16 18:00:32 +02:00
marcuspollio
c55e1c3bba BIM: Prevent crash when removing a wall's base component (#24633)
* BIM: Prevent crash when removing a wall's base component

When a user selected a wall's base object in the Tree View and used the
`Arch_Remove` command, a traceback occurred due to an `AttributeError`.

The `removeComponents` function was incorrectly checking for the `.Base`
attribute on a list of subtractions (`s.Base`) instead of on the parent
host object (`h.Base`).

This commit corrects the reference to check against the parent object,
resolving the crash and allowing the component to be removed.

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

Authored-by:  furgo16 <148809153+furgo16@users.noreply.github.com>

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

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

---------

Co-authored-by: Furgo <148809153+furgo16@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-14 11:19:43 +02:00
Furgo
6345b824e5 Add BIM workbench to .pre-commit-config.yaml (#21591)
* Add BIM workbench to .pre-commit-config.yaml

* pre-commit: ignore translations

* pre-commit: add additional ignore pattern

* [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-10-13 13:07:48 +02:00
Max Wilfinger
ab5e9e0ded Fix source string mistakes reported on Crowdin (#23157)
* Fix source string mistakes reported on Crowdin

* Update src/Mod/Draft/Resources/ui/TaskPanel_CircularArray.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/Resources/ui/TaskPanel_CircularArray.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftfunctions/upgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftfunctions/upgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftguitools/gui_downgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/Resources/ui/TaskPanel_SetStyle.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

---------

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>
2025-08-24 20:51:32 -05:00
Ryan Kembrey
99f7699be5 BIM: Update UI string for consistency
Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>

Closes: #22328
2025-08-04 20:14:15 +02:00
Roy-043
9156ac3e27 BIM: check OutListRecursive in addComponents 2025-07-07 14:57:19 +02:00
Furgo
f3f5e380ff BIM: ignore FreeCAD groups for IFC export, controlled by a user preference (#21583)
* Add .db extension to git ignore list

* BIM: new feature - add ignore groups option on IFC exports

* BIM: create generic get_architectural_contents function
2025-06-03 11:19:07 +02:00
Roy-043
66cf7b4c36 Draft/BIM: change BezCurve, BSpline and Wire to Part::FeaturePython
Fixes: #7387.

See comment: https://github.com/FreeCAD/FreeCAD/issues/7387#issuecomment-2915599566

PR to change the base object of BezCurve, BSpline and Wire to `Part::FeaturePython`. This will only affect new objects. So code will have to also keep handling the old object type (`Part::Part2DObjectPython`).

The modification of BimPreflight.py needs to be verified. The steps in the old code lacked logic IMO. But I may have misunderstood.
2025-06-02 17:27:20 +02:00
Furgo
bdbcdef87f BIM: remove command now removes windows from walls
Fixes: #21551
2025-05-26 09:53:21 +02:00
Furgo
47c76827d8 BIM: do not prune Roof objects on export 2025-05-19 18:00:38 +02: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
marcuspollio
1647852305 BIM: cleanup encoding 2025-04-21 10:10:26 -05:00
marcuspollio
679f582714 Merge branch 'main' into bim-cleanup-license 2025-04-11 15:13:45 +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
61b4506e40 BIM: cleanup imports at module root 2025-03-23 23:32:16 +01:00
Roy-043
af96e50eea Draft: improve upgrade and downgrade
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.
2025-02-19 18:06:12 +01:00
Yorik van Havre
f7a39fc313 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
Roy-043
6505a2eb41 BIM: getDefaultColor: change transparency to alpha 2025-01-06 10:03:44 +01:00
luzpaz
b0a29fde31 Fix various typos 2024-12-22 08:47:13 -05:00
Jarno de Wit
bb6e090657 Fix excessive selection pruning in dae exporter for PartDesign Objects (#17529) (#17654)
* Fixes excessive export selection pruning for PartDesign objects (#17529)

* Raises selection prune message log-level from Log to Warning (#17529)
2024-11-05 14:44:18 +01:00
Chris Mayo
2a395c364e BIM: Fix imports of Python importers 2024-11-05 12:59:30 +01:00
Paul Lee
5eb6fcf6fb [Arch] Bug: ArchRemove Creates Cyclic Dependency and TNP
FreeCAD Discussion Forum -
https://forum.freecad.org/viewtopic.php?t=91180&start=30#p786308
2024-10-10 10:06:09 +02:00
Roy-043
7d1efa9df2 BIM: Arch_Survey: Fix concatenate bytes issue
The line `t = t.encode("utf8")` returns a bytes object which does not make sense in the context of the rest of the code. It is probably a copy-paste error.

To test the bug:
1. open the file attached to this forum post: https://forum.freecad.org/viewtopic.php?t=89012#p770224
2. Make the rectangles visible.
3. Start the Survey command and box select all objects in the 3D view.
2024-08-26 17:31:59 +02:00
Max Wilfinger
8ff5a1f688 Fix source string typos mentioned on Crowdin (#15261) 2024-07-08 17:18:31 -05:00
Yorik van Havre
f21a3b3ec9 BIM: Renamed Arch to BIM 2024-05-16 17:23:10 +02:00