mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#3283 Editable well path. Set default unit system to match grid
This commit is contained in:
parent
d07b7d1456
commit
9ec2bc6922
@ -60,14 +60,17 @@ bool RicNewEditableWellPathFeature::isCommandEnabled()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewEditableWellPathFeature::onActionTriggered(bool isChecked)
|
||||
{
|
||||
if ( RiaApplication::instance()->project() && RiaApplication::instance()->project()->activeOilField() )
|
||||
RimProject* project = RiaApplication::instance()->project();
|
||||
if (project && RiaApplication::instance()->project()->activeOilField() )
|
||||
{
|
||||
RimWellPathCollection* wellPathCollection = RiaApplication::instance()->project()->activeOilField()->wellPathCollection();
|
||||
|
||||
if ( wellPathCollection )
|
||||
{
|
||||
std::vector<RimWellPath*> newWellPaths;
|
||||
newWellPaths.push_back(new RimModeledWellPath());
|
||||
auto newModeledWellPath = new RimModeledWellPath();
|
||||
newModeledWellPath->setUnitSystem(project->commonUnitSystemForAllCases());
|
||||
newWellPaths.push_back(newModeledWellPath);
|
||||
newWellPaths.back()->setName("UWell-" + QString::number(wellPathCollection->modelledWellPathCount()+1));
|
||||
wellPathCollection->addWellPaths(newWellPaths);
|
||||
wellPathCollection->uiCapability()->updateConnectedEditors();
|
||||
|
@ -123,31 +123,10 @@ 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 commonUnitSystem = proj->commonUnitSystemForAllCases();
|
||||
if (commonUnitSystem != RiaEclipseUnitTools::UNITS_UNKNOWN)
|
||||
{
|
||||
auto eclipseCase = dynamic_cast<RimEclipseCase*>(c);
|
||||
if (eclipseCase && eclipseCase->eclipseCaseData())
|
||||
{
|
||||
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;
|
||||
m_defaultUnitsForFracTemplates = commonUnitSystem;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -529,7 +529,7 @@ void RimProject::assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allCases(std::vector<RimCase*>& cases)
|
||||
void RimProject::allCases(std::vector<RimCase*>& cases) const
|
||||
{
|
||||
for (size_t oilFieldIdx = 0; oilFieldIdx < oilFields().size(); oilFieldIdx++)
|
||||
{
|
||||
@ -1015,6 +1015,36 @@ std::vector<RimFractureTemplate*> RimProject::allFractureTemplates() const
|
||||
return templates;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaEclipseUnitTools::UnitSystem RimProject::commonUnitSystemForAllCases() const
|
||||
{
|
||||
std::vector<RimCase*> rimCases;
|
||||
allCases(rimCases);
|
||||
|
||||
RiaEclipseUnitTools::UnitSystem commonUnitSystem = RiaEclipseUnitTools::UNITS_UNKNOWN;
|
||||
|
||||
for (const auto& c : rimCases)
|
||||
{
|
||||
auto eclipseCase = dynamic_cast<RimEclipseCase*>(c);
|
||||
if (eclipseCase && eclipseCase->eclipseCaseData())
|
||||
{
|
||||
if (commonUnitSystem == RiaEclipseUnitTools::UNITS_UNKNOWN)
|
||||
{
|
||||
commonUnitSystem = eclipseCase->eclipseCaseData()->unitsType();
|
||||
}
|
||||
else if (commonUnitSystem != eclipseCase->eclipseCaseData()->unitsType())
|
||||
{
|
||||
commonUnitSystem = RiaEclipseUnitTools::UNITS_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return commonUnitSystem;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -21,6 +21,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "RiaDefines.h"
|
||||
#include "RiaEclipseUnitTools.h"
|
||||
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
@ -105,7 +106,7 @@ public:
|
||||
void assignCaseIdToCase(RimCase* reservoirCase);
|
||||
void assignIdToCaseGroup(RimIdenticalGridCaseGroup* caseGroup);
|
||||
|
||||
void allCases(std::vector<RimCase*>& cases);
|
||||
void allCases(std::vector<RimCase*>& cases) const;
|
||||
|
||||
std::vector<RimSummaryCase*> allSummaryCases() const;
|
||||
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
||||
@ -147,6 +148,8 @@ public:
|
||||
std::vector<RimFractureTemplateCollection*> allFractureTemplateCollections() const;
|
||||
std::vector<RimFractureTemplate*> allFractureTemplates() const;
|
||||
|
||||
RiaEclipseUnitTools::UnitSystem commonUnitSystemForAllCases() const;
|
||||
|
||||
protected:
|
||||
// Overridden methods
|
||||
void initScriptDirectories();
|
||||
|
Loading…
Reference in New Issue
Block a user