if (aDocRef->isInitialized() && // initialized immideately means already exist and will be loaded
!Model_Application::getApplication()->hasDocument(aDocRef->docId()))
- Model_Application::getApplication()->setLoadByDemand(data()->name());
+ Model_Application::getApplication()->setLoadByDemand(data()->name(), aDocRef->docId());
}
std::shared_ptr<ModelAPI_Document> Model_ResultPart::partDoc()
for(int a = aDoc->size(aBodyGroup) - 1; a >= 0; a--) {
ResultPtr aBody = std::dynamic_pointer_cast<ModelAPI_Result>(aDoc->object(aBodyGroup, a));
// "object" method filters out disabled and concealed anyway, so don't check
- if (aBody.get() && aBody->shape().get()) {
+ if (aBody.get() && aBody->data()->isValid() && aBody->shape().get()) {
TopoDS_Shape aShape = *(aBody->shape()->implPtr<TopoDS_Shape>());
if (!aShape.IsNull()) {
aBuilder.Add(aResultComp, aShape);