@danmacumber said:

This post indicates that this method is provided by the Dynamic Components extension.

Correct.

However, those methods that are listed as added to Sketchup::Drawingelement, that have to do with transformations, should not have been added at that level of the class hierarchy (in order to just add them to the Group and ComponentInstance subclasses.) IE, they got erroneously added to ALL Sketchup::Drawingelement subclasses. Those methods are meaningless with respect to primitive entity classes like Edge.

They should (and may in the future,) be defined within a mixin module, and then mixed ONLY into Sketchup::Group and Sketchup::ComponentInstance classes.

@danmacumber said:

Is there any documentation for the Dynamic Components extension?

Not at this time.

@danmacumber said:

I only seem to get these issues if I change the active path multiple elements at time. ... I get similar results if I switch between other levels of the hierarchy in odd ways.

I wonder if the implementation of local_transformation() depends on the active path observer?

I do "believe" it does. I think it does similar to what you described. It (the "DCX") saves transforms into hashes (using the object reference as the key.) I think they are global collection objects named $local_edit_transforms and $global_edit_transforms.

So you could write some watcher code into your tests that watch those collections. (Just do not write code that changes them or the DCs could stop working.)

@danmacumber said:

In our plug-in, we only ever have two levels of nested groups and all groups are unique instances. So I guess this should work for us? As long as the SketchUp team doesn't remove the method?

This would require that your users have the DC extension loaded, or your extension might have to require the dc loader script explicitly.