- Return std::expected from RimSurfaceCollection::importSurfacesFromFiles
with a message naming the files that could not be imported
- Return specific errors from ImportSurface and NewSurface scripting
methods instead of nullptr
- Import before deleting the surface to overwrite, so a failed overwrite
keeps the existing surface
- Catch surfio exceptions in RifSurfio to avoid a crash on corrupt files
- Include the method name in the generic "no result" gRPC error
- Add Python tests for import_surface error handling
- Added RimGeneric3dView, a 3D view that is not tied to any grid case,
useful for wells, surfaces and other data not requiring a reservoir
grid. The view supports a custom name.
- Introduced RimGenericViewCollection, a new top-level collection that
holds both Eclipse views and RimGeneric3dView instances. It overrides
defineUiTreeOrdering() to display both types as a single flat list
under the top-level 'Views' node.
- RimOilField now exposes a single genericViewCollection instead of a
plain eclipseViewCollection field.
- RimEclipseViewCollection is unchanged and continues to be used for
per-case and ensemble view collections.
- Updated RimEclipseCase::globalViewCollection() and related helpers to
use RimGenericViewCollection, and added matching overloads in
RicNewViewFeature for creating eclipse views from the merged
collection.
- Added RicNewGenericDataViewFeature to create a new generic data view
from the context menu.
* #14411 Enforce name uniqueness for surfaces, polygons and folders
Names must be unique among siblings sharing the same parent folder. Items in different folders may keep identical names, and comparison is case sensitive.
Siblings are the objects held by the same caf::PdmChildArrayField. Items and folders live in two distinct child arrays in caf::PdmNestedCollection, so a folder and an item may share a name under the same parent.
The Python API gets an OnNameConflict flag on AddFolder, CreatePolygon, ImportSurface and NewRegularSurface, supporting FAIL (default), AUTO_RENAME and OVERWRITE. NewSurface is left out, as grid case surfaces derive their tree label from the case and K index and carry no name of their own.
Port RimSurfaceCollection, RimPolygonCollection and the polygon-in-view
side onto the new caf::PdmNestedCollection framework, replacing the
per-class folder plumbing (m_subCollections field, topmost-folder flag,
add/remove/find sub-collection, factory, "new folder" command) with the
shared base.
- RimSurfaceCollection and RimPolygonCollection now derive from
caf::PdmNestedCollection. Each constructor uses the generic folder
icon and exposes a static createTopmost() that marks the top instance
and applies the branded domain icon; RimOilField calls the factory.
- RimPolygonInViewCollection uses the new RimNestedMirrorCollectionInView
helper, and a new RimPolygonContainer carries the source-side polygon
link.
- RicNewSurfaceCollectionFeature is removed; the generic
RicNewNestedCollectionFeature drives the "Add Folder" action against
both collections.
- Update callers (RimAnnotationCollection, RimEnsembleSurface, polygon
command features) and the scripting wrapper (RimcSurfaceCollection),
plus the Python add-folder binding and polygon test.
- Introduce RimRegularFileSurface::propertyName() as canonical property key for file-based surfaces.
- Change RimRegularSurface::setPropertyAsDepth() to void and remove existence check; error handling is now in updateSurfaceData().
- Update all usages to match new setPropertyAsDepth() behavior.
- Log and handle missing depth property in updateSurfaceData().
- Update tests to reflect new error handling approach.
- Minor includes and logging improvements.
Add virtual methods (isFileBased, filePath, setFilePath) to RimSurface base
class. Implement these in RimFileSurface and RimRegularFileSurface to provide
a common interface for all file-based surfaces.
Replace class-specific methods (setSurfaceFilePath/surfaceFilePath) with the
common interface methods (setFilePath/filePath) in both RimFileSurface and
RimRegularFileSurface. Update RimEnsembleSurface to use the common interface.
This enables polymorphic treatment of file-based surfaces without changing
the inheritance hierarchy or breaking backward compatibility.
Fixes#13296
* Add surfio as submodule and create importer with tests
* Update compile fix when mio.h is included in multiple compile units
* Move file tools into RifFileTools
* 10675 Fix missing intersection line geometry
* Change to list of visible surface intersection lines
* Enable surface intersection band for any intersection
* Show labels for intersection curves in 3D
The polylines are defined in the display coordinate system without Z-scaling. The z-scaling is applied to the visualization parts using Part::setTransform(Transform* transform)
The annotation objects are defined by display coordinates, so apply the Z-scaling to the coordinates.
* Improve naming of surfaces
* Use scaling factor of 1.0 for flat intersection views
* Refactor interface to PdmObjectHandle and PdmFieldHandle
Return objects instead of passing in structures as parameters
* Add nodiscard to several functions
* Remove redundant this->
* Rename to ptrReferencedObjectsByType
* #8016 Surface Ensemble : Update 2d intersection views
* Ensemble WLP : Make code more robust to missing data
* Janitor: Do not add files to recently used list when importing ensemble
* #8016 Ensemble WLP : Delete all temporary plots in one go
* #8016 WLP: Create a default date string that can be exported to LAS
* #8016 Janitor: Use *.dev as default well path extension
* Add flag to keep temp. parameter files or not.
* Ask user if it is ok to clean the output folder if selected.
* Add property for elastic table input file.
* Do not show legend by default when refreshing tsurfs
* Make sure all loadsteps are enabled in post processing json file
* Support running adv. proc without req. basic proc to be run first