Compute All - does not compute all

Sebastian_Seweryn
Participant Participant
737 Views
7 Replies
Message 1 of 8

Compute All - does not compute all

Sebastian_Seweryn
Participant
Participant

Hi Guys!

 

From time to time I get confused how Compute All function behaves, so I decided to ask you for explanation.

 

I thought the function should compute everything the same way like it would be done by editing every feature in the timeline from the first to the last one consequently. However it doesn't work that way.

 

Please take a look on the attached screencast which shows how the Delete feature can't be moved to the end of the timeline even when the initial dependency is removed and Compute All function is used. The Delete gets unlocked only after the last Extrude feature is manually edited (without changing anything).

 

Can anybody explain it to me? Is that behaviour normal and consistent with the Compute All assumptions?

 

Sebastian Seweryn
Product Designer
0 Likes
738 Views
7 Replies
Replies (7)
Message 2 of 8

jeff_strater
Community Manager
Community Manager

your screencast didn't make it to the post - you can try just posting the link to it.  And also, we'll need to see the model, so if you can share that, it would help.


Jeff Strater
Engineering Director
0 Likes
Message 3 of 8

Sebastian_Seweryn
Participant
Participant

Sorry, perhaps I missed something when attaching sceencast. Here's the link:https://autode.sk/2W3X48W 

 

I'm afraid that the model's current version is free of the problem, but you can reproduce it easily by yourself following the steps from the screencast.

Anyway here's the link to the project: https://a360.co/2W3ml3i 

 

Thanks for your quick reply.

Sebastian Seweryn
Product Designer
0 Likes
Message 4 of 8

Sebastian_Seweryn
Participant
Participant

Any suggestion please?

Sebastian Seweryn
Product Designer
0 Likes
Message 5 of 8

jeff_strater
Community Manager
Community Manager

sorry, email notifications for forum posts are not working inside ADSK, so did not see your response.  I watched that video.  First comment:  Your characterization of the problem is not quite correct.  There is no problem with Compute All (at least in that video).  It does compute the entire timeline.  Computing is separate from dependency between features.  That is what is blocking the reordering of the Delete Face feature to after the Extrude.  That Delete thinks it is still dependent on the Extrude (which was true at the time it was created), even after being edited to refer to a face from a different feature.  This is a bug, certainly, but, to be honest, I have never seen anyone edit a Delete Face feature before.  So, I'm intrigued by the concern here.  Yes, the behavior is wrong, and we should address it, but is this blocking some sort of workflow that I'm missing?  Thanks.

 


Jeff Strater
Engineering Director
0 Likes
Message 6 of 8

Sebastian_Seweryn
Participant
Participant

The characterization of the problem came from my understanding (rather guessing), that Compute All should act the same way like I would do it manually by entering and closing every feature from the time line from start till the end. That implies checking and recalculating all the dependences at the same time. So I hoped that Compute All is a magic button which makes my project consistent and updated in every detail with only one mouseclick and a bit of time.

I wasn't sure if that's correct, so I asked people smarter than me for clarification.

 

If I understood you well (please correct me if not) my thinking was wrong - Compute All doesn't check/update any dependencies, it just somehow redraw the model.

That means that the all dependent features should be updated at some other moment, when the master feature is edited for instance. In the example I gave it didn't happen, as you noticed.

 

The situation I showed is just an example. I made it so simple to show clearly what I mean. That made it reproducible but less likely to happen in real life. However it shows the root problem - outdated dependences.

Moreover the problem happens in real life with features other than Delete Face and causes very sad results.

 

Let's take the situation when I want to delete some feature in the timeline. Sometimes it causes removal of the other dependent features too. I don't know what conditions cause that but it just happens. To get it around I make some temporary body and edit the feature I want to delete to make it referring to that body only. This way all dependencies of the other features should be removed. That can cause some yellow and even red errors in the timeline, which I can fix later, but I should be able to delete the redundant feature with the temporary body only. Unfortunately it doesn't work that way and the other features are still deleted "in the package" no matter if they have errors reported or not.

So then I check which features are still dependent by suppressing the feature I want do delete - dependent ones become suppressed too - next I unsuppress and edit each feature without changing anything (I just klick OK). You can imagine that sometimes the list is not short. Anyway it mostly solves the problem - not always and I don't understand why, but it's an another story...

 

Another example is when I want to swap the sequence of building some components and I can't move the features in the timeline even if I remove all logical references between them. Then I see that something stays under the hood, what I have no access to.

 

I thought that Compute All can do that checking, updating or "the clicking job" if you will for me - now I know it can't.

In this sitation I have a few questions more:

  • Is there a way to update dependencies of all features in the timeline on request?
  • What should I do when I meet such situation with outdated dependencies?
  • What does Compute All exactly do? What's the purpose of the function?

BTW In the example above the uncommon situation of editing Delete Face feature turned out to be probable in real life, but just because of my workaround. If you have a better solution for such cases please let me know.

 

Thanks for your explanation and sorry for a bit long post (I hope it's clear at least).

 

Sebastian Seweryn
Product Designer
0 Likes
Message 7 of 8

jeff_strater
Community Manager
Community Manager

@Sebastian_Seweryn , thanks for the reply.  A few comments:

 

"If I understood you well (please correct me if not) my thinking was wrong - Compute All doesn't check/update any dependencies, it just somehow redraw the model.

That means that the all dependent features should be updated at some other moment, when the master feature is edited for instance. In the example I gave it didn't happen, as you noticed."

 

That statement is partially true and partially false.  Compute All does not update any dependencies, but it does more than just "redraw the model".  It computes every feature in the timeline.  Yes, the dependencies are updated when a feature is edited (because that is the only time when they can change).  If we tried to check/update dependencies at compute time, it would unnecessarily slow down compute.

 

"The situation I showed is just an example. I made it so simple to show clearly what I mean. That made it reproducible but less likely to happen in real life. However it shows the root problem - outdated dependences.

Moreover the problem happens in real life with features other than Delete Face and causes very sad results."

 

If you have examples of edits to features that do not update dependencies, please report them to us.  I'm not aware of very many of these, but yes, those are defects and should be fixed.

 

"

  • Is there a way to update dependencies of all features in the timeline on request?
  • What should I do when I meet such situation with outdated dependencies?
  • What does Compute All exactly do? What's the purpose of the function?

"

No, there is no way to update all dependencies of all features in one go.  This would be a pretty expensive operation on any large design.  Usually, Edit Feature is the way to update dependencies if they are incorrect.  As above, any that do not get updated are defects and should be fixed.  Compute All does what its name implies, I guess.  It runs through the timeline and computes every feature, one by one.  As for its purpose, in theory it should really never be needed.  It was originally put in as a debug tool for us developers, as a way to exercise the compute machinery.  We decided it might be useful for customers, so we just left it in.  Some people use it to make sure that their design does not have any feature failures at points in the design process.

 

"BTW In the example above the uncommon situation of editing Delete Face feature turned out to be probable in real life, but just because of my workaround. If you have a better solution for such cases please let me know."

 

Not quite sure I understand this point, but my comment about editing a Delete Face (especially an edit that changes the dependencies) being uncommon was only to say that I have just never heard of anyone doing that before.  I agree it should work, but it is just surprising.  Delete Face itself is not all that commonly used, I think, and users tend to be pretty certain about what faces they want to delete, so the need for edit just does not come up often.  When it does, I suspect the workflow is mostly:  "oh, dang, I forgot a face I wanted to get rid of", not "I want to not delete all the faces I selected before, and switch to entirely new faces", which is what your example showed.  My instinct, if that ever came up, would be to delete the Delete Faces feature, and make a new one.


Jeff Strater
Engineering Director
0 Likes
Message 8 of 8

Sebastian_Seweryn
Participant
Participant

Thanks @jeff_strater for detailed explanation.

Now I see that this topic is more about fails of updating feature dependencies than about Compute All function. Maybe it would make sense to change the the topic's title to avoid confusion - please propose one if you think so.


I'd like add a few last things.

" If we tried to check/update dependencies at compute time, it would unnecessarily slow down compute."

" No, there is no way to update all dependencies of all features in one go. This would be a pretty expensive operation on any large design."


I understand your point. However if I had that option to check everything with just a single mouseclick I would sometimes decide that it is worth to pay that extra time. Waiting I would drink a cup of coffee, go for shopping etc. instead of clicking "Edit,OK" on every feature 😉. Of course it shouldn't be necessary to do that at all, but in theory Compute All should be useless as well, while it's not in practice. Maybe Check Everything function is not such a bad idea.


"Delete Face itself is not all that commonly used, I think, and users tend to be pretty certain about what faces they want to delete, so the need for edit just does not come up often. When it does, I suspect the workflow is mostly: "oh, dang, I forgot a face I wanted to get rid of", not "I want to not delete all the faces I selected before, and switch to entirely new faces", which is what your example showed. My instinct, if that ever came up, would be to delete the Delete Faces feature, and make a new one."


My instinct was the same, but then I found out, that with deleting the Delete Face feature I will loose another part of my timeline. So I tried to safe it and... the rest of the story you already know.

You can see it here as well: https://autode.sk/2WbMooO

Thanks to you now I know it's a bug. I can't public the project here but I can give you access to it or report it by Customer Support - just let me know which way is the best.

 

And lastly if you know how to delete that damned Delete Face feature with keeping the others I beg you for a hint.

 

 
 
 
 
Sebastian Seweryn
Product Designer
0 Likes