Adapter Thing Shapes
Adapter thing shapes can be added to things to provide convenient services directly on things, exposing appropriate functionality. For example, PTC.Adapter.OwnableShape and PTC.Adapter.OwnerShape can be applied to things that participate in Ownable and Owner roles in ThingWorx Utilities relationships, providing services such as GetOperatorResource(), SetOperatorResource(), AddOwnables(), GetOwnables(), RemoveOwnables(), and SetOwnables().
Similar adapter things shapes can be easily implemented for other ThingWorx Utilities services and relationships, making use of the utility services exposed by the PTC.Adapter.Utilities thing where appropriate.
While adapter thing shapes can be convenient, it is important not to overuse them. It is also important to note that services on an adapter thing shape target a single thing at a time. If you are performing a larger, multi-thing operation, and are trying to obtain related data for dozens or hundreds of things at once rather than obtaining data for each thing individually, it may result in inferior performance. In these cases, ThingWorx Utilities services that operate on many resources at once should be used instead.
If you are writing code for a ThingWorx Utilities environment, the only resources you can reasonably assume to be thing-based, are assets. All other resources are likely back by another form of storage or possible another system entirely. To interact with a resource in general, you must use ThingWorx Utilities services. You can only use thing-centric adapter thing shape services when you are already working with a thing.