// build the LasPointClassificationDescription
// assign a new classification code to be assigned to the selected LAS points
// don't alter any of the classification flags
var edits = new LasPointClassificationDescription();
edits.ClassCode = 6;
if (lasDatasetLayer.CanClassifyLasPoints(edits))
lasDatasetLayer.ClassifyLasPoints(edits, true);
// alternatively set up the LasPointClassificationDescription to modify classification flags
var edits2 = new LasPointClassificationDescription();
edits2.KeyPoints = LasClassFlagEditType.Set;
edits2.SyntheticPoints = LasClassFlagEditType.Clear;
// don't change the OverlapPoints, WithheldPoints flags
// apply the edit
if (lasDatasetLayer.CanClassifyLasPoints(edits2))
lasDatasetLayer.ClassifyLasPoints(edits2, true);
// or perform both a classification code and classification flag edit
var edits3 = new LasPointClassificationDescription();
edits3.ClassCode = 5;
edits3.KeyPoints = LasClassFlagEditType.Set;
edits3.SyntheticPoints = LasClassFlagEditType.Clear;
// be explicit about not changing the other flags
edits3.WithheldPoints = LasClassFlagEditType.NoChange;
edits3.OverlapPoints = LasClassFlagEditType.NoChange;
// apply the edit
if (lasDatasetLayer.CanClassifyLasPoints(edits3))
lasDatasetLayer.ClassifyLasPoints(edits3, true);