internal void AutoOpenPointPlanFile(string file, string cityName, DerivedTypeEnum derivedType, List <string> failedFiles) { Document acDoc = Application.DocumentManager.Open(file, false); Database acCurDb = acDoc.Database; Editor ed = acDoc.Editor; DocumentLock docLock = acDoc.LockDocument(); try { ModelBase mb = new ModelBase(); //if (derivedType is DerivedTypeEnum.PointsPlan) //{ // mb = new PointsPlanModel(); //} //if (derivedType is DerivedTypeEnum.UnitPlan) //{ // mb = new UnitPlanModel(); //} //if (derivedType is DerivedTypeEnum.None) //{ // mb = new ModelBase(); //} // 判断是否读取布局空间(papermodel) MainForm.isOnlyModel = mb.IsOnlyModel; //MainForm.isOnlyModel = false; mb.DocName = Path.GetFileNameWithoutExtension(file); mb.projectId = cityName; // 获取图例 ModelBaseMethod <ModelBase> mbm = new ModelBaseMethod <ModelBase>(); mbm.GetAllLengedGemo(mb); mbm.GetExportLayers(mb); //// 获取特殊图层 //LayerSpecialCommand<ModelBase> layerSpecial = new LayerSpecialCommand<ModelBase>(); //layerSpecial.AddSpecialLayerModel(mb); //mb.LayerList = new List<string>{"道路中线"}; if (mb.LayerList != null) { foreach (string layer in mb.LayerList) { ModelBaseMethod <ModelBase> modelMe = new ModelBaseMethod <ModelBase>(); LayerModel lyModel = modelMe.GetAllLayerGemo(mb, layer); if (mb.allLines == null) { mb.allLines = new List <LayerModel>(); } mb.allLines.Add(lyModel); } //if (derivedType is DerivedTypeEnum.PointsPlan) //{ // PostModel.AutoPostModelBase(mb as ModelBase, failedFiles); //} //if (derivedType is DerivedTypeEnum.UnitPlan) //{ // PostModel.AutoPostModelBase(mb as ModelBase, failedFiles); //} //if (derivedType is DerivedTypeEnum.None) //{ // PostModel.AutoPostModelBase(mb as ModelBase, failedFiles); //} PostModel.AutoPostModelBase(mb as ModelBase, failedFiles); } docLock.Dispose(); acCurDb.Dispose(); acDoc.CloseAndDiscard(); acDoc.Dispose(); GC.Collect(); System.Windows.Forms.Application.DoEvents(); } catch (Exception e) { //string logFileName = @"C: \Users\Public\Documents\" + DateTime.Now.ToString("yyyy-MM-dd") + ".log"; //using (TextWriter logFile = TextWriter.Synchronized(File.AppendText(logFileName))) //{ // logFile.WriteLine(DateTime.Now); // logFile.WriteLine(e.Message); // logFile.WriteLine("\r\n"); // logFile.Flush(); // logFile.Close(); //} System.Windows.Forms.MessageBox.Show(e.Message); docLock.Dispose(); GC.Collect(); } // 发送类型 // 发送图层数据 }