李毛毛 发表于 2010-11-26 14:13:00

新建图层的函数问题。

根据高程建图层。
public ObjectId createLayer(string layername)
      {
            ObjectId layerId;
            Database db = HostApplicationServices.WorkingDatabase;
            Transaction trans = db.TransactionManager.StartTransaction();
            try
            {
                LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
                if (lt.Has(layername))
                {
                  layerId = lt;
                }
                else
                {
                  LayerTableRecord ltr = new LayerTableRecord();
                  ltr.Name = layername;
                  layerId = lt.Add(ltr);
                  trans.AddNewlyCreatedDBObject(ltr, true);
                }
                trans.Commit();
            }
            finally
            {
                trans.Dispose();
            }
            return layerId;
      }
这个函数用了之后,直接根据高程新建了图层,把原来的图直接放在了新图层上了。
怎么就会把原来图层上的东西搞没有了呢??怎么让它还能既保留在原来的图层上又有新图层呢?

雪山飞狐_lzh 发表于 2010-11-26 14:26:00

<p>你想一个对象又在图层1,又在图层2?</p>
<p>不可能</p>
<p>&nbsp;</p>

李毛毛 发表于 2010-11-26 14:58:00

哦。真是个白痴的问题。

chpmould 发表于 2010-11-28 09:34:00

图层拷贝就可以,我以前用LISP试过
页: [1]
查看完整版本: 新建图层的函数问题。