Windchill Modelling Process
Day-2
Date: 05 SEP 2024
Version – 1.0
1
Windchill Modelling
Promote development of business object that reflect 3-tier architecture
Provide an environment for value added development by extending the
model and add new capabilities to the existing object
Enhance functionality
through inheritance Enhance functionality through Partitioning
2
Lockservice Example
• Lockable (Knower) interface is implemented by MyItem
class
• All Lockable object including MyItem are managed by
StandardLockService (Doer)
• It exposes the APIs implemented by the
RemoteInterface LockService
• It runs on the server
• It extends StandardManager which allows startup
and shutdown of the service
• The left side of the figure shows how to model the
interface for the server side service on a client
• LockService interface describes the lock service
available to the client. These services are invoked
remotely from the client to the server
• The LockService expects a Lockable object for
performing its operations
• It can accept an object of type MyItem since it
implements Lockable Interface
3
Windchill Foundation Hierarchy
Windchill Foundation Abstractions (ptc.com)
4
Windchill Foundation Key Interfaces
Windchill Foundation Interfaces (ptc.com)
5
Windchill Foundation Key Interfaces
6
Windchill Foundation Classes
Windchill provides 3 classes with basic
functionality
• WTObject - Represents the base class
for all Windchill business information
classes
• Item - Represents a discrete business
item.
• ObjectToObjectLink - Represents a
concrete binary association between
two Persistable objects; that is, you
can define a link between two items,
between an item and a link, and
between two links
Windchill Foundation Classes (ptc.com)
7
Object-Reference Design Pattern
• Encapsulates details concerning Persistable Objects
and their unique database key
• Pattern asserts that the Persistable object is a derived
attribute which is aggregated by reference and is not
persisted
• The Persistable Object’s unique database key is
aggregated by value and is persisted
• The Unique data base key is write protected and
classes from other packages cannot set its value
• ObjectReferences can be used in place of its actual
objects and acted upon using its identifiers
• When actual object is required it can be got from the
object reference
• If the object reference doesn’t contain the object it is
fetched from the database via its ObjectIdentifier
(QueryKey)
8
Business Service Design Pattern (1/2)
This pattern has the following abstractions
❑ Type
❑ Cookie
❑ Helper
❑ Service
❑ ServiceEvent
❑ ServiceException
❑ ServiceFactory
Type:
• Provides an interface to type an object
of a particular kind
• All the services expect to deal only with
this interface in terms of input or output
• It is a kind of Persistable Object
9
Business Service Design Pattern (2/2)
Cookie: Service:
• Is an abstraction class to provide • Interface that provides the main
functionality of the service
information to be associated with typed
object • Can be invoked remotely if annotated with
@RemoteInterface
• When an object asserts itself of being Type • Standard implementation of service
then the cookie and it attributes, including methods exists
nested attributes are code generated into Helper:
the object
• Provides a class representing the service’s
• It can be null or non-null based on the external interface from which all the visible
constraints functionality can be invoked
• Helper has only static methods
10
Master-Iteration Design Pattern
• Establishes two objects that work in concert with
each other
• Without one the other should not exist and is invalid
• The basic abstraction of this design pattern are
• Mastered
• Iterated
• The business object can be created through the
version control service API’s
• The business object must assert itself as being a kind
of mastered object for it to be iterated
• The iterated object can be incrementally superseded,
rolled back or rolled up through the version controlled
service API’s
• The master iteration association can be auto-
navigated from the iteration
11