Bentley Map v8i SS4 C# plugin: Erasing instances ECCriteria problem

Hi,

I'm trying to use GDIEraseProcessor to erase instances, but I have no idea how I can get/create ECCriteria that is first parameter of Erase instances method.

As I understand it will provide the selection criteria of features to be erased.

So far I was trying get it from StorageImports criteria, as simply I found this property there satisfying expected interface of a parameter, but it is set to null  (probably it has different purpose in this class).

What I want to achieve is to erase only Selected instances so I don't even need to provide any "where clauses", but if provided criteria is null it erases everything.

Does anyone have an idea how to do it? Thanks in advance.

My code:

GDI.GDIEraseProcessor ep = new GDI.GDIEraseProcessor();

//trying to get selection critieria from IImportCriteria, which is not working

IImportCriteria criteria = GDI.GeoDataInterchangeAddIn.Instance.MasterFileImport;
criteria.Geometry = null;
criteria.SpatialArea = SpatialArea.Selection;
IStorageImportCriteria storageImp = criteria.StorageImports[0] as IStorageImportCriteria;
IECCriteria selectionCritieria = storageImp?.ECCriteria;

if (selectionCritieria != null)
ep.EraseInstances(selectionCritieria, storageImp);

Parents Reply
  • Hi Jan,

    Thanks for the hint. My bad, I didn't read it before.

    It's Bentley Map V8i SS4 (I've just stated it in Tags hoping it is enough).

    The code:

    GDI.GDIEraseProcessor ep = new GDI.GDIEraseProcessor();
    
    //now  I need to get/create IECCriteria instance, trying to do it in the following manner, but it seems it is not the way
    IImportCriteria criteria = GDI.GeoDataInterchangeAddIn.Instance.MasterFileImport;
    criteria.Geometry = null;
    criteria.SpatialArea = SpatialArea.Selection;                
    IStorageImportCriteria storageImp = criteria.StorageImports[0] as IStorageImportCriteria;                
    IECCriteria selectionCritieria = storageImp?.ECCriteria;
    
    //calling erase
    if (selectionCritieria != null)
    {
        ep.EraseInstances(selectionCritieria, storageImp);
    }

Children