Source : ISO 10303-55
SCHEMA procedural_shape_model_schema;
REFERENCE FROM
product_property_representation_schema -- ISO 10303-41
(shape_representation);
REFERENCE FROM
geometry_schema -- ISO 10303-42
(geometric_representation_item);
REFERENCE FROM
topology_schema -- ISO 10303-42
(topological_representation_item);
REFERENCE FROM
geometric_model_schema -- ISO 10303-42
(edge_based_wireframe_model,
face_based_surface_model,
shell_based_surface_model,
shell_based_wireframe_model,
solid_model);
REFERENCE FROM
representation_schema -- ISO 10303-43
(representation,
representation_item_relationship,
representation_relationship);
REFERENCE FROM
procedural_model_schema;
-- ISO 10303-55
TYPE shape_representation_item =
SELECT
(geometric_representation_item,
topological_representation_item);
END_TYPE;
ENTITY explicit_procedural_geometric_representation_item_relationship
SUBTYPE OF (explicit_procedural_representation_item_relationship);
SELF\representation_item_relationship.relating_representation_item : procedural_shape_representation_sequence;
SELF\representation_item_relationship.related_representation_item : geometric_representation_item;
WHERE
WR1: NOT (
'PROCEDURAL_SHAPE_MODEL_SCHEMA.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE'
IN TYPEOF(
SELF\representation_item_relationship.related_representation_item));
END_ENTITY;
ENTITY explicit_procedural_shape_representation_relationship
SUBTYPE OF (explicit_procedural_representation_relationship);
SELF\representation_relationship.rep_1 : procedural_shape_representation;
SELF\representation_relationship.rep_2 : shape_representation;
END_ENTITY;
ENTITY indirectly_selected_shape_elements
SUBTYPE OF (indirectly_selected_elements, user_selected_shape_elements);
WHERE
WR1: SIZEOF(QUERY(q <*
SELF\indirectly_selected_elements.indirectly_picked_items
| NOT ('PROCEDURAL_SHAPE_MODEL_SCHEMA.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY procedural_shape_representation
SUBTYPE OF (procedural_representation, shape_representation);
SELF\representation.items : SET[1:?] OF procedural_shape_representation_sequence;
END_ENTITY;
ENTITY procedural_shape_representation_sequence
SUBTYPE OF (geometric_representation_item, procedural_representation_sequence);
WHERE
WR1: SIZEOF(QUERY(q <* SELF\procedural_representation_sequence.elements
| NOT ('PROCEDURAL_SHAPE_MODEL_SCHEMA.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
ENTITY procedural_solid_representation_sequence
SUBTYPE OF (procedural_shape_representation_sequence);
WHERE
WR1: 'GEOMETRIC_MODEL_SCHEMA.SOLID_MODEL' IN TYPEOF(SELF);
END_ENTITY;
ENTITY procedural_surface_representation_sequence
SUBTYPE OF (procedural_shape_representation_sequence);
WHERE
WR1: ('GEOMETRIC_MODEL_SCHEMA.FACE_BASED_SURFACE_MODEL' IN TYPEOF(SELF))
XOR
('GEOMETRIC_MODEL_SCHEMA.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(SELF));
END_ENTITY;
ENTITY procedural_wireframe_representation_sequence
SUBTYPE OF (procedural_shape_representation_sequence);
WHERE
WR1: ('GEOMETRIC_MODEL_SCHEMA.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(SELF))
XOR
('GEOMETRIC_MODEL_SCHEMA.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(SELF));
END_ENTITY;
ENTITY user_selected_shape_elements
SUBTYPE OF (user_selected_elements);
WHERE
WR1: SIZEOF(QUERY(q <*
SELF\user_selected_elements.picked_items | NOT
('PROCEDURAL_SHAPE_MODEL_SCHEMA.SHAPE_REPRESENTATION_ITEM'
IN TYPEOF(q)))) = 0;
END_ENTITY;
END_SCHEMA; -- procedural_shape_model_schema