I’ve been using the new feature added in V7 SR8 to copy and paste objects with their history. Overall I love it. I’m building a library of templates that saves me hours per day on just about every project.
240 objs controlled by eleven crvs (6 red shanks) + two crvs (orange bezel in 11 sizes) Right: The final model after breaking history and control point editing the shanks for an organic look.
However, there are some bugs with copy/paste history:
Each bezel has 13 objs (11 curves, 1 srf, and 1 polysrf) that never needs to be seen or edited.
How do you select the correct objs for copy/paste?
_SelParents seems like it should cover the problem, but it doesn’t. You have to organize and hide those 13 ‘in between objs’, and _SelParents only works on selectable geometry.
My first preference would be to use groups, but there’s an inconsistency issue I previously posted about. Currently, locked objs in a group are included in copy/paste, but hidden (via layer or _Hide) are excluded.
If copy/paste were to include both categories of non-selectable objs, then this issue is resolved.
I have one other idea, but it’s second-tier at best: _ShowAll AllAll?=Yes.
That’s a combination of turn all layers on + set all layers to unlocked + _Show + _Unlock, which is surprisingly difficult to do manually.
shift select all layers in the layers panel
right click → expand all sublayers
re-select all layers in the layers panel
click the show icon
Run _Show
Run _Unlock
select the children to copy
iterativelty call _SelParents
Copy
undo all the layer and state changes in steps 1 through 9
Paste
There’s a lot of that functionality that’s only available in the layers panel…like there is no inverse of _OneLayerOn, i.e. _AllLayersOn. I can’t see a way of doing this in a simple macro. I can attest that it is painful to do manually.
The last issue is that history updates feel exponentially longer: O(n^2) instead of O(n) complexity. I regularly have hundreds of child objs with clusters of 10 or 20 sharing a single parent. The only difference now is multiple clusters share a common parent.
One thing I’ve noticed is that history does not appear to update chronologically:
This can be quite random. I’ve started to pay attention and see it reporting up to 3x the number of objs it should be updating.
After _HistoryUpdate All (RH-65232) was fixed, I am able to work with _History Update=No, but it’s not much better. It updates everything in the file, whether it needs it or not. _HistoryUpdate <selection> is kind of useless because it suffers from the same issue that RH-65232 fixed for All. A lot of the intermediate objs between the obj you select and the parent you edited aren’t selectable (locked/hidden).
Ideas
History updates get processed chronologically so great-grandchildren are only updated once.
Add a dirty flag to history records so _HistoryUpdate All doesn’t process objs that are up to date.
_HistoryUpdate <selection> updates all of its parents/grandparents, regardless of whether they are locked/hidden
Set redraw/echo off during updates (noticeable improvement with some commands like _Pull).
@EricM - thanks, this seems to be reproducible without the Flow part - BlendSrf with history, Copy/Paste all three bits and move either pasted parent - the blend does not come along even though it claims to update.