diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 82d8c1b973..d2502a23d4 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1008,6 +1008,10 @@ Argument* IfcEntityInstanceData::getArgument(unsigned int i) const { } void IfcEntityInstanceData::setArgument(unsigned int i, Argument* a, IfcUtil::ArgumentType attr_type) { + if (!initialized_) { + load_(); + } + while (attributes_.size() < i) { attributes_.push_back(new NullArgument()); } diff --git a/src/ifcparse/IfcSpfHeader.cpp b/src/ifcparse/IfcSpfHeader.cpp index e07ed45cda..a9a28c7aff 100644 --- a/src/ifcparse/IfcSpfHeader.cpp +++ b/src/ifcparse/IfcSpfHeader.cpp @@ -41,6 +41,8 @@ HeaderEntity::HeaderEntity(const char * const datatype, IfcFile* file) if (file) { offset_in_file_ = file->stream->Tell(); load_(); + } else { + initialized_ = true; } }