 |
System Attribute Definitions |
|
Contents
[back to top]
A.1 Introduction
Parasolid uses attributes internally for various purposes. The attribute definitions for such system attributes are created automatically when Parasolid is started up. These system attribute definitions are provided to allow the user to alter the behaviour of Parasolid when operating on an entity.
Warning: Valid Parasolid models should not have empty system attributes attached. For example, if a face has no specified colour, then it should have no colour attribute attached to it, rather than an empty colour attribute. Empty system attributes are only permitted as an intermediate state (i.e. you must populate an empty system attribute with appropriate values immediately after creating it).
|
Further information about attributes and attribute definitions can be found in See Attributes.
[back to top]
A.2 System attribute definitions
For each system-defined attribute definition the following information is shown:
-
Identifier - the string by which the attribute definition is identified. This begins “SDL/TY” and continues with the name of the attribute.
-
To obtain the tag of system attribute definitions, which are created at the start of a Parasolid session, use PK_ATTDEF_find.
-
Class - the class of the attribute definition. All the system attribute definitions are of class 1, 3, or 6; attributes of these classes are independent of the size and position of the entity to which they are attached.
-
Entity types - the types of entities to which attributes with this definition may be attached. These are represented by the tokens for the types.
-
Fields - a description of the data held by an attribute with this definition. The data is held in a series of fields of specified types, represented by the tokens given below, in a specified order. The type of each of the fields is listed, in the order in which it is held by the attribute, and the data item(s) held in each field.
-
Set by - how an attribute of this definition and its fields are set and changed.
-
Used by - how the attribute is used.
[back to top]
A.3 System attribute definitions whose field values define a property
The following definitions provide a standard container for certain entity properties. The contents of the attribute fields defines the property and must be set in order for the attribute to be valid and meaningful.
Warning: You should not set system attributes to invalid real values or NAN (not a number). Furthermore, system attributes with string fields, should not be set to non-printable ASCII.
|
A.3.1 Behaviour of empty groups when owning parts are split or merged
Identifier
|
SDL/TYSA_GROUP_CONTROL
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_group
|
Field types
|
PK_ATTRIB_field_integer_c
|
Two integers, containing numerical tokens from PK_GROUP_split_empty_t and PK_GROUP_merge_empty_t, in that order.
|
Set by
|
Application
|
Used by
|
Modelling operations
|
If an empty group has an attribute of this type attached, it indicates the behaviour that should be used if the body that owns the group is split or merged.
PK_GROUP_split_empty_t can take one of the following values:
Value
|
Description
|
PK_GROUP_split_empty_no_c
|
The group remains in the original part. This is the default behaviour.
|
PK_GROUP_split_empty_copy_c
|
The group remains in the original part, and a copy is made in the split-off part.
|
PK_GROUP_merge_empty_t can take one of the following values:
Value
|
Description
|
PK_GROUP_merge_empty_no_c
|
The empty groups in both parts appear in the merged part. This is the default behaviour.
|
PK_GROUP_merge_empty_yes_c
|
Pairs of identical empty groups, one in each part, are merged into one group in the merged part. "Identical" here means having the same attributes (including SDL/TYSA_GROUP_CONTROL attributes). Identical empty groups in the same part are not merged.
|
An empty group with no attribute of this type behaves as though it had an attribute with values PK_GROUP_split_empty_no_c and PK_GROUP_merge_empty_no_c respectively.
A.3.2 Colour
Identifier
|
SDL/TYSA_COLOUR
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face, PK_CLASS_edge
|
Field types
|
PK_ATTRIB_field_real_c
|
Red value
|
these three values should be in the range of 0.0 to 1.0
|
Green value
|
Blue value
|
Set by
|
Application
|
Used by
|
Application
|
Note: TYSA_COLOUR and TYSA_COLOUR_2 behave independently of each other. For example, consider two faces: one has a TYSA_COLOUR attribute and the other does not. If these faces are merged together, the TYSA_COLOUR attribute is deleted. This is still true even if the body has a TYSA_COLOUR_2 attribute attached to it that specifies the same colour as the TYSA_COLOUR attribute: the TYSA_COLOUR attribute is still deleted when the faces are merged, even though visually, there is no apparent colour change, because of the presence of the TYSA_COLOUR_2 attribute.
|
A.3.3 Colour 2
Identifier
|
SDL/TYSA_COLOUR_2
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_body, PK_CLASS_instance, PK_CLASS_assembly
|
Field types
|
PK_ATTRIB_field_real_c
|
Red value
|
these three values should be in the range of 0.0 to 1.0
|
Green value
|
Blue value
|
Set by
|
Application
|
Used by
|
Application
|
Note: TYSA_COLOUR and TYSA_COLOUR_2 behave independently of each other. For example, consider two faces: one has a TYSA_COLOUR attribute and the other does not. If these faces are merged together, the TYSA_COLOUR attribute is deleted. This is still true even if the body has a TYSA_COLOUR_2 attribute attached to it that specifies the same colour as the TYSA_COLOUR attribute: the TYSA_COLOUR attribute is still deleted when the faces are merged, even though visually, there is no apparent colour change, because of the presence of the TYSA_COLOUR_2 attribute.
|
A.3.4 Density attributes
There are density attributes for each of regions, faces, edges and vertices in addition to the system attribute for density of a body.
The region/face/edge/vertex attributes are taken into account when finding the mass, centre of gravity and moment of inertia of a body or of the entity to which the attribute is attached:
-
The mass of a region does not include that of any of its faces or edges, and the same applies to faces and edges and their boundaries.
-
A void region always has zero mass whatever its density and a solid region inherits its density from the body if it does not have a density of its own.
-
The default density for faces, edges and vertices is always zero.
For further information, see Chapter 27, “Mass Properties”.
A.3.4.1 Density (of a body)
Identifier
|
SDL/TYSA_DENSITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_body
|
Field types
|
PK_ATTRIB_field_real_c
|
Density
|
PK_ATTRIB_field_string_c
|
Units
|
Set by
|
Application
|
Used by
|
Mass Properties - calculation of mass
|
-
A body without a density attribute is taken to have, by default, a density of 1.0.
-
The character field units is not used by Parasolid but it can be set and read by the user.
A.3.4.2 Edge density attribute
Identifier
|
SDL/TYSA_EDGE_DENSITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_edge
|
Field types
|
PK_ATTRIB_field_real_c
|
Density of edge
|
PK_ATTRIB_field_string_c
|
Units
|
Set by
|
Application
|
Used by
|
Mass Properties - calculation of mass
|
-
The value of this attribute is treated as a mass per unit length.
-
A mass is calculated for an edge only when an edge possesses this attribute. In all other cases the mass of an edge is not defined.
-
The character field units is not used by Parasolid but it can be set and read by the user.
A.3.4.3 Face density attribute
Identifier
|
SDL/TYSA_FACE_DENSITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
Density of face
|
PK_ATTRIB_field_string_c
|
Units
|
Set by
|
Application
|
Used by
|
Mass Properties - calculation of mass
|
-
The value of this attribute is treated as a mass per unit area.
-
A mass is calculated for a face only when a face possesses this attribute. In all other cases the mass of a face is not defined.
-
The character field units is not used by Parasolid but it can be set and read by the user.
A.3.4.4 Region density attribute
Identifier
|
SDL/TYSA_REGION_DENSITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_region
|
Field types
|
PK_ATTRIB_field_real_c
|
Density of region
|
PK_ATTRIB_field_string_c
|
Units
|
Set by
|
Application
|
Used by
|
Mass Properties - calculation of mass
|
-
This attribute only makes sense for solid regions; void regions always have a mass of zero.
-
A solid region without a density attribute is taken to have, by default, the same density as its owning body.
-
The character field units is not used by Parasolid but it can be set and read by the user.
A.3.4.5 Vertex density attribute
Identifier
|
SDL/TYSA_VERTEX_DENSITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_vertex
|
Field types
|
PK_ATTRIB_field_real_c
|
Mass of vertex
|
PK_ATTRIB_field_string_c
|
Units
|
Set by
|
Application
|
Used by
|
Mass Properties - calculation of mass
|
-
The value of this attribute is treated as a point mass.
-
A mass is calculated for a vertex only when a vertex possesses this attribute. In all other cases the mass of a vertex is not defined.
-
The character field units is not used by Parasolid but it can be set and read by the user.
A.3.5 Hatching
For further information on the use of hatching attributes see the Section 105.3.18, “Hatching” section in See Rendering Option Settings..
A.3.5.1 Hatching attribute
Identifier
|
SDL/TYSA_HATCHING
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
real 1
|
real 2
|
real 3
|
real 4
|
PK_ATTRIB_field_integer_c
|
Hatching type. See below.
|
Set by
|
Application
|
Used by
|
Hidden-line and wire-frame images
|
-
For
parametric hatching (Hatching type is RROPPA)- the first two real values define the spacing in
u and
v respectively. The last two values are not used.
-
For
planar hatching (Hatching type is RROPPH)- the four real values define the hatch orientation as a vector and a spacing between consecutive planes.
-
For
radial hatching (Hatching type is RROPRH)- the first three real values define the spacing of the hatch lines. The fourth value is not used.
A.3.5.2 Parametric hatch
Identifier
|
SDL/TYSA_PARAM_HATCH
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
u spacing
|
v spacing
|
u start
|
v start
|
Set by
|
Application
|
Used by
|
Hidden-line and wire-frame images
|
-
For parametric hatching, an attribute with this definition takes precedence over an attribute with the SDL/TYSA_HATCHING definition, if a face has both types of attribute attached.
A.3.5.3 Parametric hatching (numeric control)
Identifier
|
SDL/TYSA_PARAM_NUM_HATCH
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_integer_c
|
number of u hatch lines
|
number of v hatch lines
|
|
|
Set by
|
Application
|
Used by
|
Hidden-line and wire-frame images
|
-
For parametric hatching, an attribute with this definition takes precedence over an attribute with either the SDL/TYSA_HATCHING or the SDL/TYSA_PARAM_HATCH definition if a face has both types of attribute attached.
A.3.5.4 Planar hatch
Identifier
|
SDL/TYSA_PLANAR_HATCH
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
x component
|
direction or plane normal
|
y component
|
z component
|
pitch or separation
|
x component
|
position vector
|
y component
|
z component
|
Set by
|
Application
|
Used by
|
Hidden-line and wire-frame images
|
-
For planar hatching, an attribute with this definition takes precedence over an attribute with the SDL/TYSA_HATCHING definition, if a face has both types of attribute attached.
-
You can apply more than one planar hatch definition to a face by submitting multiple normal, pitch, and position data in the form of sets of 7 values to the PK_ATTRIB_field_real_c field. This field should, therefore, contain a multiple of 7 real values.'
A.3.5.5 Radial hatch
Identifier
|
SDL/TYSA_RADIAL_HATCH
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
radial around
|
radial along
|
radial about
|
radial around start
|
radial along start
|
radial about start
|
Set by
|
Application
|
Used by
|
Hidden-line and wire-frame images
|
-
For radial hatching, an attribute with this definition takes precedence over an attribute with the SDL/TYSA_HATCHING definition, if a face has both types of attribute attached.
A.3.6 Layer
Identifier
|
SDL/TYSA_LAYER
|
Class
|
PK_ATTDEF_class_06_c
|
Owner types
|
PK_CLASS_body, PK_CLASS_instance, PK_CLASS_assembly
|
Field types
|
PK_ATTRIB_field_ustring_c
|
Layer number
|
PK_ATTRIB_field_ustring_c
|
Layer name/label
|
PK_ATTRIB_field_ustring_c
|
Extra user data
|
PK_ATTRIB_field_integer_c
|
Invisibility information. 0=visible, 1=invisible. Other values not allowed.
|
Set by
|
Application
|
Used by
|
Application
|
A.3.7 Name
Identifier
|
SDL/TYSA_NAME
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_assembly, PK_CLASS_body, PK_CLASS_instance, PK_CLASS_shell, PK_CLASS_face, PK_CLASS_loop, PK_CLASS_edge, PK_CLASS_vertex, PK_CLASS_group, PK_CLASS_surf, PK_CLASS_curve, PK_CLASS_point, PK_CLASS_region
|
Field types
|
PK_ATTRIB_field_string_c
|
Name of entity
|
Set by
|
Application
|
Used by
|
Application
|
Entities read into Parasolid from a Romulus 6.0 transmit file have their names held in name attributes. Only entities to which the user has given names are treated in this way.
Note: Although a class 1 attribute, the Name system attribute does not propagate when a split event occurs.
|
A.3.8 Reflectivity
Identifier
|
SDL/TYSA_REFLECTIVITY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
Coefficient of specular reflection
|
Proportion of coloured light in highlights
|
Coefficient of diffuse reflection
|
Coefficient of ambient reflection
|
PK_ATTRIB_field_integer_c
|
Reflection power
|
Set by
|
Application
|
Used by
|
Application
|
|
A.3.9 Translucency
Identifier
|
SDL/TYSA_TRANSLUCENCY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_real_c
|
Transparency coefficient
|
range 0.0 to 1.0, where 0 is opaque and 1 is transparent
|
Set by
|
Application
|
Used by
|
Application
|
Note: TYSA_TRANSLUCENCY and TYSA_TRANSLUCENCY_2 behave independently of each other. For example, consider two faces: one has a TYSA_TRANSLUCENCY attribute and the other does not. If these faces are merged together, the TYSA_TRANSLUCENCY attribute is deleted. This is still true even if the body has a TYSA_TRANSLUCENCY_2 attribute attached to it that specifies the same translucency as the TYSA_TRANSLUCENCY attribute: the TYSA_TRANSLUCENCY attribute is still deleted when the faces are merged, even though visually, there is no apparent translucency change, because of the presence of the TYSA_TRANSLUCENCY_2 attribute.
|
A.3.10 Translucency 2
Identifier
|
SDL/TYSA_TRANSLUCENCY_2
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_body, PK_CLASS_instance, PK_CLASS_assembly
|
Field types
|
PK_ATTRIB_field_real_c
|
Transparency coefficient
|
range 0.0 to 1.0, where 0 is opaque and 1 is transparent
|
Set by
|
Application
|
Used by
|
Application
|
Note: TYSA_TRANSLUCENCY and TYSA_TRANSLUCENCY_2 behave independently of each other. For example, consider two faces: one has a TYSA_TRANSLUCENCY attribute and the other does not. If these faces are merged together, the TYSA_TRANSLUCENCY attribute is deleted. This is still true even if the body has a TYSA_TRANSLUCENCY_2 attribute attached to it that specifies the same translucency as the TYSA_TRANSLUCENCY attribute: the TYSA_TRANSLUCENCY attribute is still deleted when the faces are merged, even though visually, there is no apparent translucency change, because of the presence of the TYSA_TRANSLUCENCY_2 attribute.
|
A.3.11 Transparency
Identifier
|
SDL/TYSA_TRANSPARENCY
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_body, PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_integer_c
|
Non-zero transparency coefficient value is transparent
|
Set by
|
Application
|
Used by
|
Hidden-line drawings
|
A body may be rendered transparent if it has an attached transparency attribute with a non-zero transparency coefficient. See Section 105.3.21, “Transparency”, for more information.
A.3.12 Unicode name
Identifier
|
SDL/TYSA_UNAME
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_assembly, PK_CLASS_body, PK_CLASS_instance, PK_CLASS_shell, PK_CLASS_face, PK_CLASS_loop, PK_CLASS_edge, PK_CLASS_vertex, PK_CLASS_group, PK_CLASS_surf, PK_CLASS_curve, PK_CLASS_point, PK_CLASS_region
|
Field types
|
PK_ATTRIB_field_ustring_c
|
Name of entity
|
Set by
|
Application
|
Used by
|
Application
|
This attribute definition provides a Unicode alternative to the ASCII-only Name attribute.
Note: Although a class 1 attribute, the Uname system attribute does not propagate when a split event occurs.
|
A.3.13 Scale factor
Identifier
|
SDL/TYSA_SCALE_FACTOR
|
|
Class
|
PK_ATTDEF_class_01_c
|
|
Owner types
|
PK_CLASS_assembly, PK_CLASS_body
|
|
Field types
|
PK_ATTRIB_field_integer_c
|
An integer representing the scale factor of the part. It must be in the range [-6, 3].
|
Set by
|
Application
|
Used by
|
Application and PK_BODY_enlarge
|
This attribute definition represents the scale factor of a part. See Section 14.9, “Representing models whose parts are of different scales” for more information.
Note: For data compatibility purposes, we recommend applications interpret 0 as indicating a mapping 1 Parasolid unit = 1 metre.
|
[back to top]
A.4 System attribute definitions whose presence alone defines a property
The following definitions provide a standard marker for certain entity properties. They have no fields or their fields are unused, but their presence on an entity defines a property.
A.4.1 Behaviour of merged entities in groups
Identifier
|
SDL/TYSA_GROUP_MERGE
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_group
|
Field types
|
PK_ATTRIB_field_string_c
|
Unused
|
Set by
|
Application
|
Used by
|
Modelling operations
|
If a group has an attribute of this definition attached, it indicates that alternative behaviour should be used if an entity in the group is merged with an entity not in that group.
A.4.2 Invisibility
Identifier
|
SDL/TYSA_INVISIBLE
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_body, PK_CLASS_assembly, PK_CLASS_instance
|
Field types
|
None
|
Set by
|
Application
|
Used by
|
Application
|
A.4.3 Non-mergeable edges
Identifier
|
SDL/TYSA_EDGE_NO_MERGE
|
Class
|
PK_ATTDEF_class_06_c
|
Owner types
|
PK_CLASS_edge
|
Field types
|
PK_ATTRIB_field_string_c
|
Unused
|
Set by
|
Application
|
Used by
|
Modelling operations
|
If an edge has an attribute of this definition attached, it indicates that the edge should not be merged in any modelling operations.
A.4.4 Region
Identifier
|
SDL/TYSA_REGION
|
Class
|
PK_ATTDEF_class_01_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_string_c
|
Unused
|
Set by
|
Application
|
Used by
|
Hidden-line images
|
-
Regional data allows the application to analyse a hidden-line picture for distinct regions in the 2-D view.
-
Further information on the use of region attributes can be found in Section 105.3.24, “Regional data”.
[back to top]
A.5 System attribute definitions created and used by Parasolid
The following definitions are created by Parasolid to store information for use by Parasolid operations.
A.5.1 Faceting attributes
For further information on the use of attributes in faceting, see Section 107.2.16, “Incremental faceting”.
A.5.1.1 Incremental faceting
Identifier
|
SDL/TYSA_INCREMENTAL_faceting
|
Class
|
PK_ATTDEF_class_03_c
|
Owner types
|
PK_CLASS_face
|
Field types
|
PK_ATTRIB_field_string_c
|
Unused
|
Set by
|
Incremental Faceting/Application
|
Used by
|
Incremental Faceting
|
A.5.1.2 Facet vertex data
For information about how to create or edit incremental faceting attribute definitions for edges and fins, please contact Parasolid Support.
[back to top]