Propose to change App::Part Tree View behavior

About the development of the Part Design module/workbench. PLEASE DO NOT POST HELP REQUESTS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Propose to change App::Part Tree View behavior

Post by realthunder »

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.
Last edited by realthunder on Mon Apr 03, 2017 8:09 pm, edited 1 time in total.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
User avatar
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

Post by DeepSOIC »

I'm afraid I don't like the idea. The new (current) behavior is a bit confusing, but very useful.
User avatar
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

Post by DeepSOIC »

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.
realthunder
Veteran
Posts: 2190
Joined: Tue Jan 03, 2017 10:55 am

Re: Propose to change App::Part Tree View behavior

Post by realthunder »

DeepSOIC wrote:I'm afraid I don't like the idea. The new (current) behavior is a bit confusing, but very useful.
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: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.
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: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.
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.
Try Assembly3 with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Propose to change App::Part Tree View behavior

Post by ickby »

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.
User avatar
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

Post by DeepSOIC »

realthunder wrote:I know mixing PartDesign and Part is bad and all,
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:And this also makes App::Part difficult to get along with other WB.
App::Part will work very well with other workbenches :mrgreen: hopefully :mrgreen: but now you can install my Part-o-magic, which was made to bring that in right now.

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.
Post Reply