Arch Building Part still touched after recompute

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
furti
Posts: 344
Joined: Mon Nov 27, 2017 5:27 pm

Arch Building Part still touched after recompute

Post by furti »

I performed the following steps:

1. Create a new document
2. Switch to Arch Workbench
2. Create a Building
3. Crate a Building Part
4. Move the Building Part into the building
5. Create a Wall
6. Move the Wall into the Building Part

Now the Building Part gets marked for Recompution and the Report View displays the following Message

Code: Select all

466.375 <App> Document.cpp(3134): Unnamed#BuildingPart001 still touched after recompute
Clicking Recompute gives the same message over and over again. Only the Number at the beginning changes.
Don't know what this stands for. It looks like it depends on the actual time? Seems to be the seconds since the Document was created or something.

Tested with version

Code: Select all

OS: Windows 10 (10.0)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17803 (Git)
Build type: Release
Branch: master
Hash: 89961a33d46063a43e9fb5b0308ca95d559eca94
Python version: 3.6.8
Qt version: 5.12.1
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: German/Austria (de_AT)
User avatar
furti
Posts: 344
Joined: Mon Nov 27, 2017 5:27 pm

Re: Arch Building Part still touched after recompute

Post by furti »

yorik wrote: ping
Any news on this? It is a bit annoying on bigger projects as adding a single object performs a recompute on the Building Parts and that needs about 10 to 20 seconds to finish. :(
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Arch Building Part still touched after recompute

Post by yorik »

Yes this came after the link3 merge I believe, probably something to do with the group extension... But I couldn't narrow the problem down any further yet...

Here is a simple test file in the meantime that shows the problem: An Arch structure inside an Arch BuildingPart inside another Arch BuildingPart. The "middle" building part always stays touched. If you remove the parent one, all works again
Attachments
column.FCStd
(14.25 KiB) Downloaded 99 times
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Arch Building Part still touched after recompute

Post by DeepSOIC »

I think this may be caused by the new recompute logic.
https://github.com/realthunder/FreeCAD_ ... s#document
Add support for some form of dependency inversion using a two-pass iteration. ...

The two-pass recomputation works like this. The first pass proceed as normal. After its done, any object that is still touched will be marked with a newly added ObjectStatus::Recompute2 flag. The second pass will then be launched. Those objects that need dependency inversion shall check its dependent objects for this flag, and do not touch them if found. If there are still objects touched after the second pass, an error message will be printed.
danreb
Posts: 57
Joined: Wed Mar 14, 2018 7:27 pm

Re: Arch Building Part still touched after recompute

Post by danreb »

FYI same poblem with
  • BuidingPart (Site/building/buildingpart/level)
    • Group
      • Structure
==> the group stays touched after recompute

But no problem with

  • Group
    • BuidingPart (Site/building/buildingpart/level)
      • Structure
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Arch Building Part still touched after recompute

Post by yorik »

An same with this scenario too:
Screenshot from 2019-08-29 12-03-57.png
Screenshot from 2019-08-29 12-03-57.png (8.88 KiB) Viewed 3801 times
danreb
Posts: 57
Joined: Wed Mar 14, 2018 7:27 pm

Re: Arch Building Part still touched after recompute

Post by danreb »

does "recompute" only recompute Visible objects?

When you set the parent BuildingPart to visible=false and child Buildingpart to visible= true (or both objects to visible=false), then the objects computation is ok with no errors.

But setting the Parent and child visibility to false and then setting the parent visibility to "true" it triggers the visibility on all subObjects which are all marked "to recompute". But then I am unable to set the child BuildingPart visibility to false .
User avatar
yorik
Founder
Posts: 13642
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: Arch Building Part still touched after recompute

Post by yorik »

Recompute should recompute no matter if the object is visible or not. But indeed if I turn everything invisible I'm able to recompute too.
Definitely something buggy in there...
danreb
Posts: 57
Joined: Wed Mar 14, 2018 7:27 pm

Re: Arch Building Part still touched after recompute

Post by danreb »

Hi Is there a way I could help solving this issue (I am afraid not much more but if it is please ask)?

Indeed I am stuck with the following release untill this "recompute bug" is solved
OS: macOS 10.14
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17681 (Git)
Build type: Release
Branch: master
Hash: e94af7ff5e873f263cac51d7d47df68eca183250
Python version: 3.7.3
Qt version: 5.9.7
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)

And I would like to work with and test the later releases from freecad which show core features/concept remodeling and improvement (e.g. object recomputation and object/group hierarchy handling)....with sides effect that I would like to highlight and test further in my project files. cf https://forum.freecadweb.org/viewtopic. ... 59#p329859

thanks
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Arch Building Part still touched after recompute

Post by vocx »

yorik wrote: Thu Aug 29, 2019 3:05 pm An same with this scenario too:
Screenshot from 2019-08-29 12-03-57.png
DeepSOIC wrote: Mon Aug 26, 2019 3:16 pm I think this may be caused by the new recompute logic.
https://github.com/realthunder/FreeCAD_ ... s#document
realthunder wrote:Add support for some form of dependency inversion using a two-pass iteration. ...

The two-pass recomputation works like this. The first pass proceed as normal. After its done, any object that is still touched will be marked with a newly added ObjectStatus::Recompute2 flag. The second pass will then be launched. Those objects that need dependency inversion shall check its dependent objects for this flag, and do not touch them if found. If there are still objects touched after the second pass, an error message will be printed.
realthunder wrote: Fri Sep 27, 2019 1:35 pm ping
Hi, realthunder, since you seem to be back, is it possible that you look into this?

This is another thread with a similar behavior, but we aren't sure if this is a problem in Arch objects, or in the way the new tree view and selection works, [ Bug ? ] In floor object only one nested object can be invisible?

The issue still occurs in the latest code.

Code: Select all

OS: Ubuntu 18.04.3 LTS (ubuntu:GNOME/ubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.18351 (Git)
Build type: Debug
Branch: master
Hash: fb7a03a04d04e770305f96a31b608d6951d927c8
Python version: 3.6.8
Qt version: 5.9.5
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: English/UnitedStates (en_US)
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
Post Reply