protected override IEnumerable <CheckResult> CheckImpl(IEnumerable <ObjectId> selectedObjectIds)
        {
            var results   = new List <NearVerticesCheckResult>();
            var algorithm = new NearVerticesRectifier(Document.Database, Tolerance);

            algorithm.Check(selectedObjectIds);
            foreach (var nears in algorithm.NearVertices)
            {
                var checkResult = new NearVerticesCheckResult(nears);
                results.Add(checkResult);
            }
            return(results);
        }
        protected override Status FixImpl(CheckResult checkResult, out List <ObjectId> resultIds)
        {
            resultIds = new List <ObjectId>();
            var cr = checkResult as NearVerticesCheckResult;

            if (cr == null)
            {
                return(Status.Invalid);
            }
            using (var transaction = Document.Database.TransactionManager.StartTransaction())
            {
                NearVerticesRectifier.RectifyNearVertices(cr.NearVertices, transaction);
                resultIds.AddRange(cr.SourceIds);
                transaction.Commit();
            }
            return(Status.Fixed);
        }