Generally, yes. DCs are really just normal components that have a particular attribute dictionary with a certain name (
But, the DC classes are not documented and actually make up a proprietary Trimble owned extension distributed along with SketchUp. So, in a way it’s a “native extension”.
So you’d need to use Ruby introspection to examine these classes.
Being that it’s an unpublished thing, their implementation could change at anytime. (It could be translated into C. It could be deprecated and replaced with something different.)
Yes, but I think it scales… ie, does not do pushpull.
We’ve covered this many times. It might be here, in the parent cat, or in the DC category.
a. You’ll basically need a very good understanding of building DCs manually. Ie, the functions and variables.
Use the Dynamic Components User’s Guide
… and b. an attribute editor / inspector to understand and watch what happens “under the hood”. (Several available in the EWH.)
Ie, what you see in the GUI re an attribute, is really a set of attributes (many of them hidden.)
c. know that for components, default values of DC attributes are attached to a component definition and those that have changed are attached to the component instance, …
d. for nested groups the DC attributes are always attached to the group instance. (You use groups inside DCs when you do not want to clutter the Component browser “In Model” listing.)