AnsweredAssumed Answered

MacroFeature & PMPSelectionbox

Question asked by Alexandre Gragnano on Nov 21, 2016
Latest reply on Nov 22, 2016 by Alexandre Gragnano



I am starting a macro feature project but I have some problems with it:

I have a PMPSelectionbox which accept multiple sketches in input.

If the user click on OK button, OnClose method call SaveFeatureData:


void IPropertyManagerPage2Handler9.OnClose(int reason)
    if (reason == (int)swPropertyManagerPageCloseReasons_e.swPropertyManagerPageClose_Okay)


In this method, I am trying to save selections into the feature definition object:


private void SaveFeatureData()
    var selMgr = (SelectionMgr)ModelDoc.SelectionManager;
    var features = new List<Feature>();
    var selMarks = new List<int>();
    var drViews = new List<object>();
    var count = selMgr.GetSelectedObjectCount2(SelectionMark);
    if (count > 0)
        for (var i = 1; i <= count; i += 1)
            var type = selMgr.GetSelectedObjectType3(i, SelectionMark);
            if (type == SelectionType)
                var selection = selMgr.GetSelectedObject6(i, SelectionMark);
                if (selection is Feature)
    if (Feature == null)
        Feature = ModelDoc.FeatureManager.InsertMacroFeature3
            BaseName: "MacroFeature",
            ProgId: "Namespace.MacroFeature",
            MacroMethods: null,
            ParamNames: null,
            ParamTypes: null,
            ParamValues: null,
            DimTypes: null,
            DimValues: null,
            EditBodies: null,
            IconFiles: null,
            Options: 0
    if (Feature != null)
        var data = (MacroFeatureData)Feature.GetDefinition();
        if (data != null)
            var access = data.AccessSelections(ModelDoc, null);
            if (access == true)
                    Objects: features.ToArray(),
                    SelMarks: selMarks.ToArray(),
                    DrViews: drViews.ToArray()
                Feature.ModifyDefinition(data, ModelDoc, null);


At creation time, everything is ok but at edition time, if I add or remove a sketch

from the selection box and I click on OK, the new selection is not saved.


Note: If I run step by step, everything look ok:

- features list is ok

- selmarks list is ok

- Feature.ModifyDefinition returns true


I do not really understand AccessSelections / ReleaseSelection / ModifyDefinition mechanism


Some help will be welcome.