1、背景
再进行二次开发的过程中,有时需要将DBOjbect对象的“ID“信息记录来,以满足不同的业务要要求,比如在Block分解后的DBObject对象中,记录一下分解前的块参照”ID“标志,引便于将这些分解的对象分组。
然而DBObject存在两种唯一ID信息,Id(ObjectID)和Handle。理论上讲,Id是保证在当前进程唯一的,进程唯一有两层面的意思,一个是在AutoCAD程序进程打开期间,不同dwg图纸的对象会被Application统一管理ID,保证唯一标识;另一个是同一dwg图纸,同一DBObject,程序两次打开,ObjectID是不一样的。所以DBObject对象的Id属性不适合持久化管理,因为他是易变,不符合持久化的常理。Handle是跟随dwg图纸的,在每张dwg图纸上DBObject的Handle是唯一的,但同时如果两张dwg图纸同源(在某个时期复制成两份,分别修改演化),这两张dwg图纸中,同源部分会存在相同Handle的对象。本文主要介绍这两种ID的读取和使用方法