Set default unit system for fractures based on loaded cases

This commit is contained in:
Magne Sjaastad 2018-06-28 11:13:38 +02:00
parent d045d6da05
commit 082f8be6b2
3 changed files with 44 additions and 1 deletions

View File

@ -35,14 +35,15 @@
#include "RimEclipseResultCase.h"
#include "RimEclipseView.h"
#include "RimFileSummaryCase.h"
#include "RimFractureTemplateCollection.h"
#include "RimGridSummaryCase.h"
#include "RimIdenticalGridCaseGroup.h"
#include "RimMainPlotCollection.h"
#include "RimOilField.h"
#include "RimProject.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseMainCollection.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCaseMainCollection.h"
#include "RimSummaryCurve.h"
#include "RimSummaryCurveCollection.h"
#include "RimSummaryCurveFilter.h"
@ -158,6 +159,8 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile(const QStringList& file
RiaLogging::error(errorMessage);
}
project->activeOilField()->fractureDefinitionCollection()->setDefaultUnitSystemBasedOnLoadedCases();
RiuPlotMainWindowTools::refreshToolbars();
return true;

View File

@ -19,10 +19,13 @@
#include "RimFractureTemplateCollection.h"
#include "RiaLogging.h"
#include "RiaApplication.h"
#include "RigStatisticsMath.h"
#include "RigEclipseCaseData.h"
#include "RimCase.h"
#include "RimEclipseCase.h"
#include "RimEclipseView.h"
#include "RimEllipseFractureTemplate.h"
#include "RimFracture.h"
@ -113,6 +116,41 @@ RiaEclipseUnitTools::UnitSystemType RimFractureTemplateCollection::defaultUnitSy
return m_defaultUnitsForFracTemplates;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimFractureTemplateCollection::setDefaultUnitSystemBasedOnLoadedCases()
{
RimProject* proj = RiaApplication::instance()->project();
std::vector<RimCase*> rimCases;
proj->allCases(rimCases);
RiaEclipseUnitTools::UnitSystem commonUnitSystemForAllCases = RiaEclipseUnitTools::UNITS_UNKNOWN;
for (const auto& c : rimCases)
{
auto eclipseCase = dynamic_cast<RimEclipseCase*>(c);
if (eclipseCase)
{
if (commonUnitSystemForAllCases == RiaEclipseUnitTools::UNITS_UNKNOWN)
{
commonUnitSystemForAllCases = eclipseCase->eclipseCaseData()->unitsType();
}
else if (commonUnitSystemForAllCases != eclipseCase->eclipseCaseData()->unitsType())
{
commonUnitSystemForAllCases = RiaEclipseUnitTools::UNITS_UNKNOWN;
break;
}
}
}
if (commonUnitSystemForAllCases != RiaEclipseUnitTools::UNITS_UNKNOWN)
{
m_defaultUnitsForFracTemplates = commonUnitSystemForAllCases;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -41,7 +41,9 @@ public:
RimFractureTemplate* fractureTemplate(int id) const;
std::vector<RimFractureTemplate*> fractureTemplates() const;
void addFractureTemplate(RimFractureTemplate* templ);
RiaEclipseUnitTools::UnitSystemType defaultUnitSystemType() const;
void setDefaultUnitSystemBasedOnLoadedCases();
RimFractureTemplate* firstFractureOfUnit(RiaEclipseUnitTools::UnitSystem unitSet) const;