In a project with more DC Worksheets we use a following derived property of a Safety Goal to calculate total safety related FIT:
let
worksheets : Set(dc::DCWorksheet) = dc::DCWorksheet.allInstances()->select(dc | dc.safetyGoal.oclAsType(safetygoals::SafetyGoal)->includes(self) and dc.getProfilePropertyValue('use_for_metrics')->first() <> 'no'),
totalSafetyRelated : Real = worksheets->iterate(sheet : dc::DCWorksheet; sum:Real=0 | sum + sheet.getTotalSafetyRelatedFailureRate(self))
in
if (totalSafetyRelated = 0) then
'-'
else
--display sum of single-point and residual fault
(((1000*totalSafetyRelated).round())/1000).toString()
endif
How should we modify this line:
totalSafetyRelated : Real = worksheets->iterate(sheet : dc::DCWorksheet; sum:Real=0 | sum + sheet.getTotalSafetyRelatedFailureRate(self))
to aggregate FIT rates of permanent or transient faults only?