AE读取CAD图层包括注记

        public override void FillDatabase(Teigha.DatabaseServices.Database pDb)

        {

            IFeatureClassContainer pFeatureClassContainer = pCADFeatureDataset as IFeatureClassContainer;

            IEnumFeatureClass pEnumFeatureClass = pFeatureClassContainer.Classes;

            IFeatureClass pFeatureClass = pEnumFeatureClass.Next();

           

            while (pFeatureClass != null)

            {               

                LoadLayer(pFeatureClass, pDb);

                Debug.WriteLine(pFeatureClass.FeatureType.ToString() + "-" + pFeatureClass.AliasName + "-" + pFeatureClass.ShapeType.ToString());

                pFeatureClass = pEnumFeatureClass.Next();

            }

        }

        private void LoadLayer(IFeatureClass pFeatureClass, Teigha.DatabaseServices.Database pDb)

        {



            int indx = pFeatureClass.FindField("Layer");

            int idxColor = pFeatureClass.FindField("Color");

            int idxText = pFeatureClass.FindField("TxtMemo");

            int idxHandle = pFeatureClass.FindField("Handle");

           

            pCursor = pFeatureClass.Search(null, false);

            IFeature pFeature2 = pCursor.NextFeature();

            //写入点线

          

          if (pFeatureClass.FeatureType == esriFeatureType.esriFTCoverageAnnotation)

                {

                    while (pFeature2 != null)

                    {

                        string geoName = "C_" + pFeature2.get_Value(indx).ToString();

                        string sAnnotation = pFeature2.get_Value(idxText).ToString();

                        IPoint pPoint = pFeature2.Shape as IPoint;

                        double x = 0, y = 0;

                        pPoint.QueryCoords(out x, out y);

                        Point3d pt = new Point3d(x, y, 0);

                        addTextEnt(modelSpaceId, pt, pt, sAnnotation, 2, TextHorizontalMode.TextLeft, TextVerticalMode.TextTop, LayerNames[geoName], ttfStyleId);

                        pFeature2 = pCursor.NextFeature();

                    }

                }

                else

                {

                    if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPoint)

                    {

                        while (pFeature2 != null)

                        {

                            IPoint pt = pFeature2.Shape as IPoint;

                            pFeature2 = pCursor.NextFeature();

                        }

                    }

                    else if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolyline)

                    {

                        short shtColor = 1;

                        while ((pFeature2 = pCursor.NextFeature()) != null)

                        {

                            string geoName = "C_" + pFeature2.get_Value(indx).ToString();

                        }

                    }

                    else if (pFeatureClass.ShapeType == esriGeometryType.esriGeometryPolygon)

                    {

                        short shtColor = 1;

                        while ((pFeature2 = pCursor.NextFeature()) != null)

                        {

                            string geoName = "C_" + pFeature2.get_Value(indx).ToString();                           

                        }

                    }

            }

           System.Runtime.InteropServices.Marshal.ReleaseComObject(pCursor);

            pCursor = null;

        }

    }


 

你可能感兴趣的:(读取)