Esempio n. 1
0
        /// <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);
                }
            }
        }
Esempio n. 2
0
        /// <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);
            }
        }