Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions fn_red_tag.m
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@

for dir = 1:3 % Fix assume there are three direction, where direction 3 = nondirectional
sc_dmg = damage.story{s}.(['qnt_damaged_dir_' num2str(dir)]) .* sc_filt;
num_comps = comps.story{s}.(['qty_dir_' num2str(dir)]);
num_comps = comps.story(s).(['qty_dir_' num2str(dir)]);

% For each structural system
structural_systems = unique([damage.comp_ds_table.structural_system; damage.comp_ds_table.structural_system_alt]);
Expand All @@ -95,6 +95,7 @@
% just ignore system 12 (coupling beams)
structural_systems(structural_systems == 12) = [];
end
sys_tag = false(num_reals, length(structural_systems));

for sys = 1:length(structural_systems)
ss_filt_ds = damage.comp_ds_table.structural_system' == structural_systems(sys) | damage.comp_ds_table.structural_system_alt' == structural_systems(sys);
Expand All @@ -103,10 +104,11 @@
% Check damage among each series within this structural system

% Initialize so the sub-series is reset for each structural system
ser_dmg = [];
ser_qty = [];

series = unique(damage.comp_ds_table.structural_series_id(ss_filt_ds));

ser_dmg = zeros(num_reals, length(series));
ser_qty = zeros(num_reals, length(series));

for ser = 1:length(series)
ser_filt_ds = damage.comp_ds_table.structural_series_id' == series(ser);
ser_filt_comp = comps.comp_table.structural_series_id' == series(ser);
Expand Down
18 changes: 18 additions & 0 deletions main_PBEErecovery.m
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,24 @@
import recovery.repair_schedule.main_repair_schedule
import recovery.functionality.main_functionality

%% Set default red tag options for backward compatibility
if ~isfield(functionality_options,'red_tag_options') || isempty(functionality_options.red_tag_options)
functionality_options.red_tag_options = struct();
end

if ~isfield(functionality_options.red_tag_options,'ignore_coupling_beam_for_red_tag')
functionality_options.red_tag_options.ignore_coupling_beam_for_red_tag = false;
end

if ~isfield(functionality_options.red_tag_options,'tag_coupling_beams_over_height')
functionality_options.red_tag_options.tag_coupling_beams_over_height = false;
end

%% Calculate Red Tags
[ damage_consequences.red_tag, damage_consequences.red_tag_impact, damage_consequences.inspection_trigger ] ...
= fn_red_tag( functionality_options.calculate_red_tag, damage, building_model.comps,...
damage_consequences.simulated_replacement_time, functionality_options.red_tag_options );

%% Combine compoment attributes into recovery filters to expidite recovery assessment
[damage, tmp_repair_class, damage_consequences] = main_preprocessing(...
damage.comp_ds_table, damage, repair_time_options, tmp_repair_class, ...
Expand Down