Integrated generic resource: Fundamentals of product description and support | ISO 10303-41:2021(E) © ISO |
NOTE 1 The concepts defined in this schema do not provide a generic capability to associate an identification, a name, a description, or a role to product data. They are applied, in order to ensure upward compatibility, in the case where a requirement to add one or more of these kinds of attributes to a particular entity data type has been identified during the revision or amendment process of the standard document in which this entity data type is defined.
NOTE 2 The associated entities are defined in ISO 10303-41, ISO 10303-43 and ISO 10303-44.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the basic_attribute_schema and identifies the necessary external references.Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.
EXPRESS specification:
*)
SCHEMA basic_attribute_schema;
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(identifier,
label,
text);
(*
NOTE 3 The schemas referenced above are specified in the following parts:
support_resource_schema ISO 10303-41
NOTE 4 See Annex D for a graphical representation of this schema.
The following concepts are supported by this schema:
The assignment of an identifier corresponds to the id_attribute entity data type. The entities to which an identifier may be assigned are specified in the id_attribute_select data type. These entities have a derived attribute id. The corresponding identifier value is provided by the get_id_value function. A constraint ensures that there is at most one instance of id_attribute assigned to an instance of an entity in the id_attribute_select type.
The assignment of a name corresponds to the name_attribute entity data type. The entities to which a name may be assigned are specified in the name_attribute_select data type. These entities have a derived attribute name. The corresponding label value is provided by the get_name_value function. A constraint ensures that there is at most one instance of name_attribute assigned to an instance of an entity in the name_attribute_select type.
The assignment of a descriptive text corresponds to the description_attribute entity data type. The entities to which a description may be assigned are specified in the description_attribute_select data type. These entities have a derived attribute description. The corresponding text value is provided by the get_description_value function. A constraint ensures that there is at most one instance of description_attribute assigned to an instance of an entity in the description_attribute_select type.
The assignment of a role corresponds to the role_association entity data type. The entities to which a role may be assigned are specified in the role_select data type. These entities have a derived attribute role. The corresponding object_role is provided by the get_role function. A constraint ensures that there is at most one instance of role_association assigned to an instance of an entity in the role_select type.
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
A description_attribute_select specifies those objects that may be assigned a descriptive text.EXPRESS specification:
*)
TYPE
description_attribute_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
A generic_attribute_list_select specifies those objects that may be assigned a generic attribute list.EXPRESS specification:
*)
TYPE
generic_attribute_list_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
A generic_attribute_select specifies those objects that may be assigned a generic attribute.EXPRESS specification:
*)
TYPE
generic_attribute_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
An id_attribute_select specifies those objects that may be assigned an identifier.EXPRESS specification:
*)
TYPE
id_attribute_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
A name_attribute_select specifies those objects that may be assigned a name.EXPRESS specification:
*)
TYPE
name_attribute_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE This empty extensible select requires extension in a schema that interfaces this schema to ensure that entities that refer to it have at least one valid instantiation.
A role_select specifies those objects that may be assigned a role.EXPRESS specification:
*)
TYPE
role_select
=
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
(*
NOTE 1 This entity provides the capability to add an aggregate id attribute to product data using a method that is upwardly compatible with ISO 10303-41:1994 and ISO 10303-43:1994.
EXPRESS specification:
*)
ENTITY aggregate_id_attribute;
attribute_value : identifier;
identified_item : SET[1:?] OF id_attribute_select;
END_ENTITY;
(*
Attribute definitions:
attribute_value: the identifier that distinguishes the identified_item.
NOTE 2 The context in which attribute_value is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or be default, in an agreement of common understanding between partners sharing this information.
identified_item: the collection of items that are identified.
NOTE This entity provides the capability to add a description attribute to product data using a method that is upwardly compatible with ISO 10303-41:1994, ISO 10303-43:1994, and ISO 10303-44:1994.
EXPRESS specification:
*)
ENTITY description_attribute;
attribute_value : text;
described_item : description_attribute_select;
END_ENTITY;
(*
Attribute definitions:
attribute_value: the text that characterizes the described_item.
described_item: the item that is described.
NOTE This entity provides the capability to define a generic attribute associated with product data using a method that is upwardly compatible with ISO 10303-41:1994, ISO 10303-43:1994, and ISO 10303-44:1994.
EXAMPLE A person entity data type instance is included in both generic_attribute_select and name_attribute_select. The name attribute of person is provided for the name value.
EXPRESS specification:
*)
ENTITY generic_attribute;
attribute_name : label;
attribute_value : text;
END_ENTITY;
(*
Attribute definitions:
attribute_name: the label used to name the generic_attribute.
attribute_value: the text that characterizes the generic_attribute.
NOTE This entity provides the capability to add a generic attribute to product data using a method that is upwardly compatible with ISO 10303-41:1994 and ISO 10303-43:1994.
EXPRESS specification:
*)
ENTITY generic_attribute_assignment;
attribute : generic_attribute;
item_with_attribute : generic_attribute_select;
END_ENTITY;
(*
Attribute definitions:
attribute: the generic_attribute to be associated with the product data.
item_with_attribute: the item to which the attribute is assigned.
NOTE This entity data type provides a capability to add a named list of generic attributes to certain product data entity data types using a method that is upwardly compatible with ISO 10303-41:1994, ISO 10303-43:1994, and ISO 10303-44:1994.
EXPRESS specification:
*)
ENTITY generic_attribute_list_assignment;
attribute_name : label;
attributes : LIST[1:?] OF generic_attribute;
item_with_attribute : generic_attribute_list_select;
END_ENTITY;
(*
Attribute definitions:
attribute_name: the label used to name the list of generic attributes.
attributes: the list of generic_attributes that are assigned to the element of product data.
item_with_attribute: the item to which the attributes are assigned.
NOTE 1 This entity provides the capability to add an id attribute to product data using a method that is upwardly compatible with ISO 10303-41:1994 and ISO 10303-43:1994.
EXPRESS specification:
*)
ENTITY id_attribute;
attribute_value : identifier;
identified_item : id_attribute_select;
END_ENTITY;
(*
Attribute definitions:
attribute_value: the identifier that distinguishes the identified_item.
NOTE 2 The context in which attribute_value is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or be default, in an agreement of common understanding between partners sharing this information.
identified_item: the item that is identified.
NOTE This entity provides the capability to add a name attribute to product data using a method that is upwardly compatible with ISO 10303-41:1994 and ISO 10303-44:1994.
EXPRESS specification:
*)
ENTITY name_attribute;
attribute_value : label;
named_item : name_attribute_select;
END_ENTITY;
(*
Attribute definitions:
attribute_value: the label by which the named_item is known.
named_item: the item to which the name is applied.
NOTE This entity provides the capability to add a role attribute to an association of management type data with other aspects of product data using a method that is upwardly compatible with ISO 10303-41:1994.
EXPRESS specification:
*)
ENTITY object_role;
name : label;
description :
OPTIONAL
text;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the object_role is known.
description: the text that characterizes the object_role. The value of the attribute need not be specified.
NOTE This entity data type provides a capability to add a role attribute to certain entity data types that specify associations between product data and administrative or management data. Such entity data types are specified in the management_resources_schema.
EXPRESS specification:
*)
ENTITY role_association;
role : object_role;
item_with_role : role_select;
END_ENTITY;
(*
Attribute definitions:
role: the object_role that specifies the purpose of the association of the role_association with product data.
item_with_role: the item to which a role is assigned.
If an aggregate_id_attribute references the object, the function will return the value of the attribute_value attribute of this aggregate_id_attribute. Otherwise, the indeterminate value will be returned.
EXPRESS specification:
*)
FUNCTION get_aggregate_id_value (obj : id_attribute_select) : identifier;
LOCAL aggregate_id_bag : BAG OF aggregate_id_attribute := (USEDIN(obj, 'BASIC_ATTRIBUTE_SCHEMA.' + 'AGGREGATE_ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM')); END_LOCAL; IF SIZEOF(aggregate_id_bag) = 1 THEN RETURN (aggregate_id_bag[1].attribute_value); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
obj: (input) the object for which an identifier is determined. This is an input to the function.
If a description_attribute references the object, the function will return the value of the attribute_value attribute of this description_attribute. Otherwise, the indeterminate value will be returned.
EXPRESS specification:
*)
FUNCTION get_description_value (obj : description_attribute_select) : text;
LOCAL description_bag : BAG OF description_attribute := (USEDIN(obj, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM')); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN (description_bag[1].attribute_value); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
obj: (input) the object for which a text is determined. This is an input to the function.
If an id_attribute references the object, the function will return the value of the attribute_value attribute of this id_attribute. Otherwise, the indeterminate value will be returned.
EXPRESS specification:
*)
FUNCTION get_id_value (obj : id_attribute_select) : identifier;
LOCAL id_bag : BAG OF id_attribute := (USEDIN(obj, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.' + 'IDENTIFIED_ITEM')); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN (id_bag[1].attribute_value); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
obj: (input) the object for which an identifier is determined. This is an input to the function.
If a name_attribute references the object, the function will return the value of the attribute_value attribute of this name_attribute. Otherwise, the indeterminate value will be returned.
EXPRESS specification:
*)
FUNCTION get_name_value (obj : name_attribute_select) : label;
LOCAL name_bag : BAG OF name_attribute := (USEDIN(obj, 'BASIC_ATTRIBUTE_SCHEMA.' + 'NAME_ATTRIBUTE.' + 'NAMED_ITEM')); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN (name_bag[1].attribute_value); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
obj: the object for which a label is determined. This is an input to the function.
If a role_association references the object, the function will return the object_role of the role attribute of this role_association. Otherwise, the indeterminate value will be returned.
EXPRESS specification:
*)
FUNCTION get_role (obj : role_select) : object_role;
LOCAL role_bag : BAG OF role_association := (USEDIN(obj, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE')); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN (role_bag[1].role); ELSE RETURN (?); END_IF;
END_FUNCTION;
(*
Argument definitions:
obj: (input) the object for which an object_role is determined. This is an input to the function.
*)
END_SCHEMA; -- basic_attribute_schema
(*
© ISO 2021 — All rights reserved