diff --git a/src/serializers/schema_dependent/XmlSerializer.cpp b/src/serializers/schema_dependent/XmlSerializer.cpp index d02a97d8d7..28ea71f832 100644 --- a/src/serializers/schema_dependent/XmlSerializer.cpp +++ b/src/serializers/schema_dependent/XmlSerializer.cpp @@ -626,11 +626,13 @@ void MAKE_TYPE_NAME(XmlSerializer)::finalize() { ptree* ncalendar = format_entity_instance(calendar, calendars); if (ncalendar) { - auto working_times = calendar->WorkingTimes().value(); - for(auto it2 = working_times->begin(); it2 != working_times->end(); ++it2) - { - auto working_time = *it2; - format_entity_instance(working_time, *ncalendar); + IfcSchema::IfcWorkTime::list::ptr working_times = calendar->WorkingTimes().value_or(nullptr); + if (working_times != nullptr) { + for (IfcSchema::IfcWorkTime::list::it it2 = working_times->begin(); it2 != working_times->end(); ++it2) + { + IfcSchema::IfcWorkTime* working_time = *it2; + format_entity_instance(working_time, *ncalendar); + } } } }