ГОСТ Р ИСО 10303-41—2022
related_product_ definition (связываемое определение изделия) объекта, играющего роль атрибута
represented_product_relation (представленное отношение между изделиями).
23.5Определения функций схемы product_property_representation_ schema
23.5.1 Функция get_directed_link
Функция get_directed_link возвращает для любого списка представляющих представления объ
ектов representation и связанного списка chained_ representationjink (последовательность связан
ных представлений), состоящего из экземпляров представляющих отображаемый элемент объектов
mapped_item, представляющих контекст представления объектов representation_context или пред
ставляющих отношения между представлениями объектов representation_ relationship. На основе
исходных данных функция строит связный направленный список directedjink (направленная связь).
Функция get_directed_link возвращает значение UNKNOWN (неизвестно), когда входные данные не
удовлетворяют требованиям правильности.
EXPRESS-спеииФикаиия:
*)
FUNCTION get_directed_link (nodes :LIST OF representation;
undirected_link :LIST OF chained__representation_link) :LIST OF
representation_relationship;
LOCAL
directed_link :LIST OF representation_relationship := [];
END_LOCAL;
IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR
(VALUE_UNIQUE(nodes) = FALSE)
THEN
RETURN(?);
END_IF;
REPEAT i := 1 TO SIZEOF(undirected_link);
CASE TRUE OF
(’REPRESENTATION_SCHEMA.REPRESENTATION_CONTEXT’ IN
TYPEOF(undirected_link[i])) :BEGIN
IF ((nodes[i]\representation.context_of_items :=:
undirected_link[i]) AND
(nodes[i +
1]\representation.context_of_iterns :=:
undirected_link[i]))
THEN
INSERT(directed_link,
representation_relationship(’’,
f
r
nodes[i +
1],
nodes[i]),
(i - 1));
ELSE
RETURN(?);
END_IF;
END;
(’REPRESENTATION_SCHEMA.REPRESENTATION_RELATIONSHIP’IN
TYPEOF(undirected_link[i])) :BEGIN
IF (((nodes[i] :=:
undirected_link[i]\representation_relationship.rep_l) AND
(nodes[i +
1] :=:
undirected_link[i]\representation_relationship.rep_2)) OR
258