Height of wall not adjusted to floor height if inside a group

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
AntonW
Posts: 7
Joined: Fri Aug 16, 2019 2:11 pm

Height of wall not adjusted to floor height if inside a group

Post by AntonW »

For an Arch BuildingPart, like a floor, its children with height zero get the height of that BuildingPart.
That works if I place a wall directly 'inside' the floor. However, if I make a group inside the floor first and place a wall inside the group, that wall is not adjusted.

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.16131 (Git)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 3129ae4296e40ed20e7b3d460b86e6969acbe1c3
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Dutch/Netherlands (nl_NL)
User avatar
Roy_043
Veteran
Posts: 8552
Joined: Thu Dec 27, 2018 12:28 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by Roy_043 »

The behavior you are seeing seems logical to me: the walls nested in the group are children of that group, and not of the floor. But it would be nice to have an alternative sub-container (with a height property) so that the height of the floor can be passed down to 'grandchildren'.

This does not work:
Arch_Floor (height=2960) > Arch_BuildingPart (height=0) > Arch_Wall (height=0).
AntonW
Posts: 7
Joined: Fri Aug 16, 2019 2:11 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by AntonW »

Thank you for your response.

It may be logical from some point of view. But then it is not possible to group walls: for example, interior walls and exterior walls. That reduces the value of using groups.

Your suggestion to add a height property to a group object seems a great solution to me.
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by vocx »

AntonW wrote: Fri Sep 13, 2019 10:16 am It may be logical from some point of view. But then it is not possible to group walls: for example, interior walls and exterior walls. That reduces the value of using groups.
You can use an Arch BuildingPart precisely to replace the simple Std Groups. A BuildingPart is not meant to be a specific room, or floor, but to group any type of architectural objects. At least, that's how I understand the tool.

The developer of Arch basically introduced it to be a general container. And the BuildingPart already has a Height.
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.
AntonW
Posts: 7
Joined: Fri Aug 16, 2019 2:11 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by AntonW »

You are right, walls with zero height inside a BuildingPart get the height of that BuildingPart. But a BuildingPart with height zero as child of another BuildingPart, like a Floor, does not get the height of its parent. Roy_043 already mentioned that and I just tested it.

If a BuildingPart (with height zero) does response to a height change of a parent BuildingPart then BuildingParts can replace simple groups.

In fact the documentation state that ".. the height property of the BuildingPart propagates to the objects inside of it." A BuildingPart inside a BuildingPart seems to me as such an object, so it should response to the height of the parent BuildingPart. But it does not. Is that intentionally or is it a bug?
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by vocx »

AntonW wrote: Fri Sep 13, 2019 6:06 pm ... A BuildingPart inside a BuildingPart seems to me as such an object, so it should response to the height of the parent BuildingPart. But it does not. Is that intentionally or is it a bug?
This is probably a bug. However, maybe that functionality was just added to 0.19, and you are still using 0.18 it seems. So, if you could test 0.19 and confirm that it works as expected, then it means this is only available in 0.19.

Unfortunately, these types of small features aren't backported. So you'd have to start using 0.19 now, or wait for a few more months for its stable release.

---

Edit: unfortunately it's not possible to test this in 0.19 at the moment.

As of this thread, Arch Building Part still touched after recompute, currently there is a problem with recomputing BuildingParts inside other BuildingParts. This seems to have been caused by the recent "LinkMerge" branch. The developer of that branch needs to work on it. He said a few days ago that he was going on holiday, so we'll just have to wait a few days or weeks for him to get things working again.
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.
AntonW
Posts: 7
Joined: Fri Aug 16, 2019 2:11 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by AntonW »

Thanks for all the quick responses.

I have installed the pre-release version 0.19. But because of the recompute problem I do not use it.
I put testing this height issue on my todo list.

I am using FreeCAD for 2 month now and overall it is working fine, although it is not easy te learn.
I found some small issues and this height issue is one of them. But it is not difficult to work around them.
User avatar
Roy_043
Veteran
Posts: 8552
Joined: Thu Dec 27, 2018 12:28 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by Roy_043 »

Roy_043 wrote: Fri Sep 13, 2019 8:49 am Arch_Floor (height=2960) > Arch_BuildingPart (height=0) > Arch_Wall (height=0).
FWIW: In an earlier version of V19 (predating the mentioned recompute issue) this does not work either.
And if I change the height of the floor to 2960 and that of the wall to 0, and then recompute there is an error:
Error: Invalid base object

Code: Select all

OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.17337 (Git)
Build type: Release
Branch: master
Hash: 0871fb49c71f1ac4029e441814332368f42bd78a
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Dutch/Netherlands (nl_NL)
AntonW
Posts: 7
Joined: Fri Aug 16, 2019 2:11 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by AntonW »

I have looked inside the source files (ArchFloor.py, ArchBuildingPart.py, ArchWall.py, Arch Structure.py) for v0.19 pre-release. I found that the code for Floor and BuildingPart only looks at the direct children and test if they are of type Wall or Structure. The code for Wall and Structure only looks at the direct parent and test if it is of type Floor or BuildingPart.

So I do not have to test v0.19 to conclude that this code works the same as v0.18.

In fact we can conclude that it is not only the walls inside a group that have the ‘problem’. All the walls that are not a direct child of the Floor or BuildingPart will not react as the documentation state: “.. the height property of the BuildingPart propagates to the objects inside of it.” For example, also Walls inside a Compound or an Array will not act as stated (as I verified).
User avatar
Roy_043
Veteran
Posts: 8552
Joined: Thu Dec 27, 2018 12:28 pm

Re: Height of wall not adjusted to floor height if inside a group

Post by Roy_043 »

I think we can call this a bug now.
EDIT:
this seems related/the same issue: https://freecadweb.org/tracker/view.php?id=3208
I'll add a link to this topic in that bug ticket.
Post Reply