/// <summary> /// 断开导线自动建立包含关系 /// </summary> /// <param name="dxObjIds">导线实体对象ID集合</param> private void BreakDxAutoContains(IList <ObjectId> dxObjIds) { //电杆对象ID集合 var dgObjIds = LateralLine.dgObjIdList; //电杆数 var dgCount = dgObjIds.Count; for (int i = 0; i < dgCount; i++) { //取得电杆坐标数据 var dgPt = GetPtValue(i, dgObjIds); //最后一根电杆只包含一条线 if (dgCount - 1 == i) { var dxPt = GetPtValue(i, dxObjIds); //获取导线包含表cid var cid = DBEntityFinder.Instance.GetContainCount(dxPt.G3E_FID); InsertDBEntity.AddContain(cid, dgPt.G3E_FID, dxPt); } else { //电杆前面的导线 var previousDxPt = GetPtValue(i, dxObjIds); //获取导线包含表cid var cid = DBEntityFinder.Instance.GetContainCount(previousDxPt.G3E_FID); cid = InsertDBEntity.AddContain(cid, dgPt.G3E_FID, previousDxPt); //电杆后面的导线 var lastDxPt = GetPtValue(i + 1, dxObjIds); InsertDBEntity.AddContain(cid, dgPt.G3E_FID, lastDxPt); } } }
/// <summary> /// 连续导线自动建立包含关系 /// </summary> /// <param name="dxObjId">导线实体对象ID</param> private void ContinuouslyDxAutoContains(ObjectId dxObjId) { var dxPt = DBSymbolFinder.Instance[dxObjId]; //获取导线包含表cid var cid = DBEntityFinder.Instance.GetContainCount(dxPt.G3E_FID); foreach (var item in LateralLine.dgObjIdList) { //取得电杆坐标数据 var dgPt = DBSymbolFinder.Instance[item]; //添加包含关系 InsertDBEntity.AddContain(cid, dgPt.G3E_FID, dxPt); } }