jixiezhang 发表于 2022-4-11 21:23:46

请教一个问题,属性块的属性访问

本帖最后由 jixiezhang 于 2022-4-11 21:27 编辑

在autocad官方的开发文档里是这样写的,用VBA方法来修改属性的值。Change the value of the attribute   
' Note: There is no SetAttributes. Once you have the variant array, you have the objects.   
' Changing them changes the objects in the drawing.   
varAttributes(0).TextString = "NEW VALUE!"
但是我用C#通过com方式时,在visiostudio里, 我尝试用varAttributes.TextString,但是发现没有这个方法,请教一下,是我少引用了库,还是什么原因?
Acadapp.Visible = true;       foreach (AcadEntity item in AcadDoc.ModelSpace)
{               
if (item is AcadBlockReference blockReference)
   {                        MessageBox.Show(blockReference.EntityName);   
// 块的所有属性列表                        
object[] varAttributes = blockReference.GetAttributes();                        
for (int i = 0; i < varAttributes.Length; i++)                     
{   //if (varAttributes.TextString == oldMachineName)                           
//{                            //    varAttributes.TextString = newMachineName;                            //}

jixiezhang 发表于 2022-4-14 20:25:28

已解决。
原因是得要类型转换一下
页: [1]
查看完整版本: 请教一个问题,属性块的属性访问