Skip to content

Add RESQML EPC file support infrastructure#723

Draft
Copilot wants to merge 10 commits intodevfrom
copilot/fix-1793152-87388597-2ba58695-6215-41b7-b6b3-cb26ad7646a0
Draft

Add RESQML EPC file support infrastructure#723
Copilot wants to merge 10 commits intodevfrom
copilot/fix-1793152-87388597-2ba58695-6215-41b7-b6b3-cb26ad7646a0

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 3, 2026

RESQML (.epc) files are an industry-standard format for reservoir data exchange with no existing support in ResInsight. This PR adds the full import pipeline, conditionally compiled against the fesapi library, which is included as a git submodule in ThirdParty/fesapi.

New components

  • RifResqmlFileTools — reads IJK grid geometry and continuous/discrete cell properties from EPC files. Guarded by #ifdef RESINSIGHT_HAVE_RESQML; returns a descriptive error message when fesapi is not present
  • RimResqmlCaseRimEclipseCase subclass following the RimRoffCase pattern; loads grid + properties, computes depth-related results and cell volumes on open
  • RicImportResqmlCaseFeature — UI command opening a .epc file dialog, wired into the Import → RESQML Grid Models menu

Wired into existing infrastructure

  • RiaDefines::ImportFileType::RESQML_FILE = 1 << 11; .epc extension detected in obtainFileTypeFromFileName
  • RiaImportEclipseCaseToolsopenResqmlCasesFromFileNames / openResqmlCaseFromFileName
  • RicImportGeneralDataFeature — dispatches .epc files through openResqmlFilesFromFileNames; adds "RESQML EPC File (*.epc)" filter
  • RicAddEclipseInputPropertyFeature — enabled for RimResqmlCase selections
  • All CMakeLists_files.cmake files updated

CMake

fesapi is included as a git submodule at ThirdParty/fesapi and built as part of the ResInsight build when RESQML support is enabled:

cmake -DRESINSIGHT_ENABLE_RESQML=ON ..

Sets RESINSIGHT_HAVE_RESQML compile definition and builds fesapi from source. Unneeded fesapi build targets (tests, examples, Java/dotnet wrappers) are disabled automatically.

Original prompt

This section details on the original issue you should resolve

<issue_title>Create a plan on how to add file support for Resqml files</issue_title>
<issue_description>Suggest a plan on how to read 3d grid data from resqml files into ResInsight. Suggest how 3D grid data and 3D cell results data.</issue_description>

Comments on the Issue (you are @copilot in this section)


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Co-authored-by: magnesj <1793152+magnesj@users.noreply.github.com>
Copilot AI changed the title [WIP] Create a plan on how to add file support for Resqml files Add RESQML EPC file support infrastructure Mar 3, 2026
@magnesj
Copy link
Copy Markdown
Owner

magnesj commented Mar 3, 2026

@copilot use fesapi as submodule in ThirdParty

Co-authored-by: magnesj <1793152+magnesj@users.noreply.github.com>
Copy link
Copy Markdown
Author

Copilot AI commented Mar 3, 2026

@copilot use fesapi as submodule in ThirdParty

Done in commit 920f238. Added ThirdParty/fesapi as a git submodule pointing to https://github.com/F2I-CONSULTING/fesapi.git in .gitmodules, and replaced the find_package(fesapi) approach with add_subdirectory(ThirdParty/fesapi) in CMakeLists.txt. The fesapi target is now added to THIRD_PARTY_LIBRARIES so its include directories propagate automatically to dependents.

Copilot AI and others added 7 commits March 3, 2026 18:08
…nto copilot/fix-1793152-87388597-2ba58695-6215-41b7-b6b3-cb26ad7646a0
…nto copilot/fix-1793152-87388597-2ba58695-6215-41b7-b6b3-cb26ad7646a0
- Initialize ThirdParty/fesapi submodule (v2.14.1.0)
- Fix fesapi CMAKE_SOURCE_DIR usage: use CMAKE_CURRENT_SOURCE_DIR so
  FESAPI_ROOT_DIR and CMAKE_MODULE_PATH resolve correctly as subdirectory
- Fix fesapi target name: FesapiCpp (not fesapi)
- Add missing vcpkg dependencies: hdf5, minizip, boost-uuid
- Add fesapi src include path in ApplicationLibCode
- Add RifResqmlFileTools as friend class in RigMainGrid
- Update RifResqmlFileTools to fesapi v2.14 API: DataObjectRepository,
  loadBlockInformation/getXyzPointsOfBlock, getInt32ValuesOfPatch
- Fix FESAPI_STATIC propagation: change PRIVATE to PUBLIC so consumers
  do not see symbols as dllimport when linking the static library
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a plan on how to add file support for Resqml files

2 participants