public PolygonOverlaps GetOverlapPolygonObjectIds(Database database,
                                                          IEnumerable <ObjectId> selectedObjectIds, double tolerance)
        {
            var singleTopologyResults = OverlapPolygonDetector.FindPolygonOverlaps(selectedObjectIds.ToArray());

            return(singleTopologyResults);
        }
        protected override IEnumerable <CheckResult> CheckImpl(IEnumerable <ObjectId> selectedObjectIds)
        {
            var results = new List <OverlapPolygonCheckResult>();
            //var editor = Document.Editor;

            //polygonOverlaps.CannotCreateRegions, "不能造区");
            //polygonOverlaps.CannotBooleanRegions, "不能作布尔运算");
            //topoData.WrongEnvelopeObjects, "包围盒计算错误,可能有重复点");
            //topoData.InvalidObjects, "内部拓扑错误");

            var overlaps = OverlapPolygonDetector.FindPolygonOverlaps(selectedObjectIds.ToArray());

            foreach (var overlap in overlaps.GeometryOverlaps)
            {
                var checkResult = new OverlapPolygonCheckResult(overlap.ThisGeometry,
                                                                overlap.ThatGeometry, overlap.IntersectRegion);
                results.Add(checkResult);
            }

            return(results);
        }
Beispiel #3
0
 public static void CheckOverlapping()
 {
     OverlapPolygonDetector.FindOverlapingPolylines();
 }