395 发表于 2015-7-27 14:08:24

块引用、属性和属性同步

我有一个应用程序,在其中我将块引用插入到文件空间中的辅助数据库中。如果块引用包含某些属性,那么我将使用计算文本填充属性。我遇到的问题是文本格式不正确,属性设置为中心对齐,但生成的属性不是。运行例程后,我打开创建的绘图并选择属性。文本说它是中心对齐的,但它不是以这种方式显示的。我可以在命令行执行属性同步,文本将捕捉到其正确的位置。所以我想我只需要在代码中同步属性,使用giles Brute force方法并尽可能多地跟踪所有链接,但没有太大成功。这是我用来将我的属性添加到块引用的代码,public静态ull AddAttie teReduce(此BlockReagedblock,Dicpedia属性值)。
{。
如果(块引用==null)。
{。
抛出新的ArgumentNullException(“块参考”);。
}。


var事务=blockReference.Database.TransactionManager.TopTransaction;。
如果(事务==null)。
{。
抛出新的AcRx.Exception(ErrorStatus.NoActiveTransactions);。
}。


var block TableRecord=blockReference.BlockTableRecord.GetObject();。
var数据库=blockReference.Database;。


foreach(块表记录中的var对象ID)。
{。
如果(objectId.ObjectClass!=GlobalAcad.AttributeDefinitionClass)。
{。
继续;。
}。


使用(新的WorkingDatabase aseSwitcher(数据库))。
{。
var属性定义=objectId.GetObject();。
var属性引用=new属性引用();。
attributeReference.SetDatabaseDefaults(数据库);。
attributeReference.SetAttributeFromBlock(属性定义,blockReference.BlockTransform);。
如果(属性值!=null&&attributeValues.ContainsKey(attributeDefinition.Tag.ToUpper ()))。
{。
如果(attributeReference.IsMTextAttribute)。
{。
attributeReference.MTextAttribute.Contents=属性值;。
}。
其他。
{。
attributeReference.TextString=属性值;。
}。


如果(attributeDefinition.Justify!=AttachmentPoint.BaseLeft)。
{。
attributeReference.AlignmentPointattributeDefinition.AlignmentPoint.TransformBy(blockReference.BlockTransform)。
attributeReference.AdjustAlignment(数据库);。
}。
}。


blockReference.AttributeCollection.AppendAttribute(属性参考);。
transaction.AddNewlyCreatedDBObject(属性引用,真);。
}。
}。
}我尝试了许多不同的可能性,包括尝试设置位置等。然而,我所读到的所有内容都表明您只需要设置对齐点,然后调用调整对齐。这适用于我使用活动文档的其他应用程序,但由于某种原因我无法让它在侧数据库中工作。有人有其他想法吗?。
**** Hidden Message *****

超级粽子 发表于 2015-7-27 14:41:06

翻译错误代码(429):请求 QPS 超过限制。

网络桃源 发表于 2015-7-27 16:27:42

翻译错误代码(429):请求 QPS 超过限制。
页: [1]
查看完整版本: 块引用、属性和属性同步