c#检测较新的行
当你有2条线时,有没有办法找出什么是最古老的绘制线,什么是较新的绘制线?我可以假设具有较高ObjectId值的那个总是较新的那个吗?
**** Hidden Message *****
我在查找绘图中创建的最后一个组时使用Object.Id.Handle.Value。
那是很久以前的事了,所以我不记得所有的细节。
IIRC:这与ObjectId更改每个绘图会话有关?IDK。 是的,似乎当我关闭绘图并重新打开它时,所有的objectID都已改变。
对于我的情况,我希望确保在同一个会话中获得新创建的行。所以这就是为什么我需要确定它没有使用任何更低的数字。
查看对象。Id.Handle.Value,是因为较高的值总是较新创建的值,还是因为较旧的已删除条目被重用?
您可以通过绘制一些线条来测试它,删除最旧的线条,重新打开绘图并放置新行。
句柄将保留,ObjectIds不保留。
您可以通过绘制一些线条来测试这一点,删除最旧的线条,重新打开绘图并放置一个新行。句柄将保留,ObjectIds不会。
但是,您如何通过查看句柄来判断最近创建的是什么。我可以100%肯定地说,更高值的句柄总是更新的,或者删除的条目(低数字)会被重新使用吗?
编辑:
mm一些测试已经告诉我,仅查看对象ID,新行可以获得比旧行更低的数字。这还没有帮助 它们在数据库中的顺序是按时间顺序排列的吗?如果您检索ModelSpace中的所有对象,您会将对象先添加到最后添加吗?我从未尝试过,但它们应该按照添加的顺序出现。
不使用ObjectId进行测试,而是使用Handles。ObjectIds在绘图打开时添加,并在绘图关闭时消失。句柄存储在绘图数据库中并将保留。
我已经在组上使用objectId.Handle.Value多年了,它从未失败过。
我们一直在使用它。
如果您需要会话的起点,则 Database.Handseed 将提供数据库将用于下一个对象的句柄。
页:
[1]