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); }