Before enabling creation or editing capabilities, make sure that your model defines an IFeatureModelUpdaterIFeatureModelUpdaterIFeatureModelUpdater. You typically do that by calling FeatureModelBuilder::editable(true) when you are creating your model:

auto editableModel = FeatureModelBuilder::newBuilder()
                         .modelMetadata(modelMetadata)
                         .featureModelMetadata(featureModelMetadata)
                         .bounds(modelBounds)
                         .features({})
                         .editable(true)
                         .build();
var editableModel = FeatureModelBuilder.NewBuilder()
    .ModelMetadata(modelMetadata)
    .FeatureModelMetadata(featureModelMetadata)
    .Features(new List<Feature>())
    .Editable(true)
    .Build();
IFeatureModel editableModel = FeatureModelBuilder.newBuilder()
                                                 .modelMetadata(modelMetadata)
                                                 .featureModelMetadata(featureModelMetadata)
                                                 .features(Collections.emptyList())
                                                 .editable(true)
                                                 .build();

To allow users to edit the geometry of military symbols interactively, you must enable the editing behavior in the feature layer builder. This snippet shows you how to do that:

// Create a layer from a military symbols model and make it editable
auto layer = FeatureLayer::newBuilder() //
                 .model(militarySymbologyModel)
                 .editable(true)
                 .build();
// Create a layer from a military symbols model and make it editable
var layer = FeatureLayer.NewBuilder()
    .Model(militarySymbologyModel)
    .Editable(true)
    .Build();
// Create a layer from a military symbols model and make it editable
FeatureLayer layer = FeatureLayer.newBuilder()
                                 .model(militarySymbologyModel)
                                 .editable(true)
                                 .build();

See this article for more information about editing.

To allow users to insert new military symbols on the map, you must pass the correct IGeometryCreatorIGeometryCreatorIGeometryCreator to your controller’s CreatorCreatorCreator. You can retrieve the geometry creator from the MilitarySymbologyNodeMilitarySymbologyNodeMilitarySymbologyNode:

// set up a Creator for the feature and its geometry.
auto standard = MilitarySymbology::Standard::MilStd2525b;
auto symbol = MilitarySymbol::create(standard, "G*G*GPAR--****X");
auto featureCreator = std::make_shared<MilitarySymbolFeatureCreator>(symbol);

// wire creation to the controller (here we're using DefaultController)
defaultController->setCreator(Creator::newBuilder().layer(layer).map(map).featureCreator(featureCreator).build());
// set up a Creator for the feature and its geometry.
var standard = MilitarySymbology.Standard.MilStd2525b;
var symbol = MilitarySymbol.Create(standard, "G*G*GPAR--****X");
var featureCreator = new MilitarySymbolFeatureCreator(symbol);

// wire creation to the controller (here we're using DefaultController)
defaultController.Creator = Creator.NewBuilder().Layer(editableLayer).Map(map).FeatureCreator(featureCreator).Build();
// set up a Creator for the feature and its geometry.
MilitarySymbology.Standard standard = MilitarySymbology.Standard.MilStd2525b;
MilitarySymbol symbol = MilitarySymbol.create(standard, "G*G*GPAR--****X");
MilitarySymbolFeatureCreator featureCreator = new MilitarySymbolFeatureCreator(symbol);

// Wire creation to the controller (here we're using DefaultController)
defaultController.setCreator(Creator.newBuilder().layer(editableLayer).map(map).featureCreator(featureCreator).build());

See this article for more information about creation.