davehuhudave 发表于 2010-7-30 11:29:00

关于块定义AttributeDefinition

为什么块定义AttributeDefinition建立之后不能修改其Position,即使修改提交了还是变回原来的,
。。。。
          attref.Position = New Point3d(p.X, p.Y, 0)------此时已经变掉
            trans.Commit()
         dim p as Point3d=attref.Position ---------此时又恢复了

davehuhudave 发表于 2010-7-30 16:01:00

该如何修改已存在的AttributeDefinition的Position啊???

雪山飞狐_lzh 发表于 2010-7-31 10:27:00

是属性定义还是属性参照?

davehuhudave 发表于 2010-8-2 08:45:00

属性定义,属性参照也一样改不了

雪山飞狐_lzh 发表于 2010-8-2 09:55:00

如果是改def,ref是不会跟着改的
直接改ref
另外,最好把定义和参照的含义先搞清楚

davehuhudave 发表于 2010-8-2 10:03:00

是,我知道得自己写程序改,但是不知道怎么改,因为我直接改掉commit之后没有被修改掉,还出现上面那个情况

雪山飞狐_lzh 发表于 2010-8-2 11:27:00

我这没有问题

         
      public static void test25()
      {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Editor ed = doc.Editor;
            Database db = doc.Database;
            using (var tr = db.TransactionManager.StartTransaction())
            {
                var bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
                var btr = tr.GetObject(bt["A"], OpenMode.ForWrite) as BlockTableRecord;
                foreach (var id in btr)
                {
                  var attdef = tr.GetObject(id, OpenMode.ForWrite) as AttributeDefinition;
                  if (attdef != null)
                  {
                        attdef.Position += new Vector3d(10, 10, 0);
                  }
                }
                tr.Commit();
            }      }

davehuhudave 发表于 2010-8-2 13:06:00

我也很纳闷,对于TextString,角度,颜色,大小等都能改掉,就Position改不掉,见鬼了

davehuhudave 发表于 2010-8-2 15:58:00

是不是块也得做什么变动啊

雪山飞狐_lzh 发表于 2010-8-2 22:31:00

我测试的结果是改掉了。。。。。。
你的Cad版本?
页: [1]
查看完整版本: 关于块定义AttributeDefinition