Yorik, I think you got me wrong. My intent is that Instance is like Draft Clone of a group. Except that it is very lightweight, in that it only renders the part in another place and provides special selection behavior. For the rest, the usual graph way of doing things will still hold; what I'm against is a graph structure of containment. I think it's very confusing.
ickby wrote:In your design you make a InstanceObject of a Subassembly. This gets IMHO confusing very quickly, as you can't open a subassembly in the tree to see what is inside etc.
Well, that can be fixed easily by making the instance to claimchildren the contents of Part it is linking to. But I actually would like it to not show its contents, just for emphasizing that this is just a copy, that can't be edited independently.
ickby wrote:2. ... Getting the global position of a shape? Not possible.
I already said how it is to be done: Selection object should include the list of instances, through which the object was selected. Nothing impossible.
ickby wrote:3. When selecting something in the 3d view, it must select the original object. Or the instance? A bit confusing.
Kind of both, see above. In graph container structure, you still need to know which containers the object was selected through, so they are kinda selected, just like the instance. If we are to stick with tree, we don't need to keep track of containers, only instances.
ickby wrote:5. Operations would always be done on the orginal object in the 3d scene and not where the user selects it. For example the user selects a sketch in the Instance of a Part. Than he hits "edit". The edit mode would be at a totally different position in the 3d scene as it edits the original sketch. such behavior is strange.
Same happens with containers, no? Either edit mode has to remember the CS path to selected object. In my case, it has to remember only the instances though which it is activated; in your case it will have to remember the whole container path. But in my case, if sketch editing doesn't take care about instances, it will still work correctly, even though displayed in a slightly unexpected place (but not totally unexpected, because it will be the place where the sketch was originally drawn at, which isn't a totally unexpected place).