图纸集 API 是一个多客户端 API。这意味着多个客户端可以在任何给定时间查看给定的客户端并与之交互。这需要特别注意如何在数据库中引用或修改对象。AcSmDatabase 为了对其中的任何对象进行修改,您必须锁定它,然后在完成更改后将其解锁。应仅在准备好进行更改时才锁定数据库,并且应尽快将其解锁。出于性能原因,还应尽可能少地锁定和解锁数据库。如果需要进行多项修改,请锁定数据库,进行所有更改,然后将其解锁。AcSmDatabase 由于数据库有多个客户端,因此当其他客户端进行更改时,它将不时自动重新加载。重新装入数据库时,将丢弃所有包含的对象实例,并在读入数据库时创建新实例。 因此,在参照位于图纸集数据库中的对象时,遵循以下基本规则非常重要:
重新加载数据库后,指向驻留在数据库的对象的指针将无效。但是,如果改为存储对象 ID,则可以使用它安全地检索指向当前对象实例的指针。 此规则的唯一例外是数据库。您可以存储指向因为数据库对象的指针在重装操作期间不会被销毁和重新创建。AcSmDatabase 可以通过对对象调用方法来检索任何数据库驻留对象的对象 ID。相反,您可以通过调用该方法从 ID 获取关联的对象实例。这将返回一个通用接口指针,可以查询所需的接口。GetObjectIdGetPeristentObjectIAcSmPersist 注意:DST 文件只能使用图纸集管理器对象进行修改。
|
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:50
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.