Professional Documents
Culture Documents
One of the key elements to full integration is to have a "schema", and enforce some kind of rules
between a "publisher" and a "retriever" of data. It should be simple for two different systems to
talk about something that they have in common, e.g., a motor, a pump, a valve, etc. But it is
really not simple at all. That's because each system has its own idea of what things are, and how
they are used. A "schema" is simply another way of saying "a diagrammatic representation, an
outline, or a model.
Before you can understand the SmartPlant data model, you have to understand some very basic
concepts (if you already know this stuff, please apply for a job in my department).
The SmartPlant schema describes the structure of data passed through SmartPlant Enterprise, along
with its rules. The SmartPlant schema can be hard to understand, but to make it easier to interpret,
the Schema Component exists. That is a set of .dll's that assists the tools with the generation and
subsequent parsing of the XML data. The tool adapter interfaces with the Schema Component (the
main interface point) to read the SmartPlant schema.
Generally, two types of diagrams are developed, viz., an "Interface diagram", and a "Class diagram".
Each type tries to present the data model in an interesting, understandable form. Other diagrams
may be created to make it easier to visualize some aspect of the model. All the UML diagrams may
be saved within the SmartPlant schema file and are available upon demand within the SmartPlant
Schema Editor, when the user asks to see it
The combination of "SpecializationValue" and "InterfaceIcon" can be used to determine the most
specialized icon for an object.
What is a Property?
The Guru Googles some expert definitions:
- A property is a basic, or essential attribute shared by all members of a class.
- In philosophy, mathematics, and logic, a property is an attribute of an object; thus a
red object is said to have the property of red-ness.
What is a PropertyDef?
If you tightly-group very-similar properties together ("normalize them"), and expose them to the
universe, it is more likely that someone who is wanting that set of properties will see and
understand what you are trying to do. The little machine that handles the grouping and exposing to
the universe is the InterfaceDef. The little machine that carries the -ness of a property is a
PropertyDef.
"Scoping" a PropertyDef
If we're talking about an inlet on a valve, it has some interesting properties:
Inlet Size
- Maximum Flow rate
- Material of construction
- Orientation-angle
- Description of the valve
- etc.
application knows exactly what we're talking about. More than that, we both need to
understand the possible values that can be entered into those properties. For example:
- Inlet size is expressed a "length"
- Maximum flow rate is expressed as a "flow rate"
- Material of construction is a list of values
- Orientation-angle is expressed as an angle
- Description of the valve is letters and numbers
- etc.
Scoping Examples
In the SmartPlant schema, we say that a PropertyDef is "scoped by" something. That
something defines the "units", or "lists", or "type of thing" that the PropertyDef will
allow to be passed between applications, e.g.,
- With respect to "Inlet size", the values that we agree can be passed between our
applications are length-units. Therefore we "Scope" the PropertyDef "InletSize" with
"LengthUoM", which contains {inches, feet, meters, ...}. o PropertyDef InletSize is
ScopedBy LengthUoM
Scoping Types
The Guru looks right through you and says "So you see that "scoping" a PropertyDef is
simply the equivalent of restricting data input values to certain "types"?
Another way of GraphDefType
saying it is that
we are reducing
the scope of what
is possible down
to some well-
defined set of
things. Here are
the intrinsic
(built-in) data
types which can
be used for
Scoping
PropertyDefs:
Intrinsic Type
BooleanType IntType
ClassDefViewDefsTyp LinkedListType
e
CompositeStringType ObjectsType
DateTimeType PathDefType
DirectoryFileType PropComparisonsTyp
e
DiscreteUoMListType PropValsType
DocumentType StringType
DoubleArrayType UoMListType
DoubleType URLType
EnumListLevelType ViewPropsDefType
EnumListType YMDType