The current App::Part (and Body for that matter), behaves differently than other type of objects in the Tree View. For other objects, their children in the tree view control their own visibility independent of the parent. App::Part (actually GeoFeatureGroup), on the other hand, overrides the visibility of its children. So the user (me at least) sometimes want to see the child object, and toggle the visibility a few times to try to find it in the scene, only to realize later that it is under a hidden Part. This problem may not be obvious to those who are used to Part feature from the beginning of its birth, but imagine in the future where we can have nested Parts, toggling the visibility to reveal a deep nested child is going to be a lot more troublesome.
So here is my proposal. Let's make Part the same as others, and let the child item control their own visibility in the tree view. Use a task view to configure the visibility of Part's children. How about that? If everyone is on board with this, I'll volunteer to implement this.
Propose to change App::Part Tree View behavior
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Veteran
- Posts: 2190
- Joined: Tue Jan 03, 2017 10:55 am
Propose to change App::Part Tree View behavior
Last edited by realthunder on Mon Apr 03, 2017 8:09 pm, edited 1 time in total.
- DeepSOIC
- Veteran
- Posts: 7896
- Joined: Fri Aug 29, 2014 12:45 am
- Location: used to be Saint-Petersburg, Russia
Re: Propose to change App::Part Tree View behavior
I'm afraid I don't like the idea. The new (current) behavior is a bit confusing, but very useful.
- DeepSOIC
- Veteran
- Posts: 7896
- Joined: Fri Aug 29, 2014 12:45 am
- Location: used to be Saint-Petersburg, Russia
Re: Propose to change App::Part Tree View behavior
I have a different idea, and I think I may try it in part-o-magic.
The idea is, display mode of Body should depend on if its tree node is expanded or not. If not, the body displays its final shape. If yes, the body displays features.
Although this idea applies to Body, it can be extended to simply show Part if Part is expanded.
Also, it may be interesting to temporarily show a deeply nested child. Ickby suggested to add its inventor node to document root for that... so the technical side should be relatively easy. But how to organize it in gui - I don't have a clear idea.
The idea is, display mode of Body should depend on if its tree node is expanded or not. If not, the body displays its final shape. If yes, the body displays features.
Although this idea applies to Body, it can be extended to simply show Part if Part is expanded.
Also, it may be interesting to temporarily show a deeply nested child. Ickby suggested to add its inventor node to document root for that... so the technical side should be relatively easy. But how to organize it in gui - I don't have a clear idea.
-
- Veteran
- Posts: 2190
- Joined: Tue Jan 03, 2017 10:55 am
Re: Propose to change App::Part Tree View behavior
So about the nest Part scenario I describe, don't you find it troublesome? And this also makes App::Part difficult to get along with other WB. Say you create fusion out of two children of an App::Part using Part WB, that two children will be hidden automatically. I know mixing PartDesign and Part is bad and all, but there is nothing to prevent it. And with my proposal, there is less a need to worry about that.DeepSOIC wrote:I'm afraid I don't like the idea. The new (current) behavior is a bit confusing, but very useful.
I like the idea. But it doesn't address the fundamental problem here. The problem is, the children visibility should be a property stored in the parent (preferably the DocumentObject) , rather than in the children's ViewObject. An object shouldn't care who claims it, and it should behave just the same.DeepSOIC wrote:The idea is, display mode of Body should depend on if its tree node is expanded or not. If not, the body displays its final shape. If yes, the body displays features.
Yes, and I think my App::Link prove that can be done. Besides, here, right now, we don't need to deal with the tricky selection problem, yet.DeepSOIC wrote:Also, it may be interesting to temporarily show a deeply nested child. Ickby suggested to add its inventor node to document root for that... so the technical side should be relatively easy. But how to organize it in gui - I don't have a clear idea.
Re: Propose to change App::Part Tree View behavior
I also don't like the idea. I find it quite useful to have the visibility handled by parts, i need to toggle everything within a part on off way more often than individual parts.
- DeepSOIC
- Veteran
- Posts: 7896
- Joined: Fri Aug 29, 2014 12:45 am
- Location: used to be Saint-Petersburg, Russia
Re: Propose to change App::Part Tree View behavior
Part container has nothing to do with PartDesign. And mixing Part and PartDesign isn't bad. My opinion is that all workbenches should cooperate as much as possible, not isolate themselves from each other.realthunder wrote:I know mixing PartDesign and Part is bad and all,
App::Part will work very well with other workbenches hopefully but now you can install my Part-o-magic, which was made to bring that in right now.realthunder wrote:And this also makes App::Part difficult to get along with other WB.
There's one important thing. Links across Parts shouldn't be common thing. If you want to use that-deeply-hidden-object from some other part, you should bring it in using a shapebinder-like tool first. This way, you don't have to dig the tree all that often. And most of times so far, I didn't even have to show the object I wanted to use, because I knew exactly what it was, thanks to all the detailed hierarchy.