现有需求修改CellHeaderElement下子元素的连接材质属性?烦请老师给一下相关示例代码,谢谢
迭代以及修改单元的子元素要用到ChildEditElemIter类,具体用法您可以搜一下以前的看看,讨论过多次,帖子中也有示例代码。附加材质属性可以看一下SDK带的这个例子:C:\Program Files\Bentley\MicroStationCONNECTSDK\examples\Visualization\MaterialsExample
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
郭老师。这个.net 是不是没有相关接口?
.Net也有,不过ChildEditElemIter类似乎是有问题,只能迭代子元素,但是不能修改。附加材质的接口应该可以使用。
郭老师,我刚测试了一下,是不是必须AddToModel();但是这样单元内的子元素属性并没有修改,只是重新 添加了一个新元素
/// <summary> /// 设置元素材质 /// </summary> /// <param name="element"></param> /// <param name="materialName"></param> public static void SetElementMaterialInfo(this Element element, string materialName = "") { var mExtension = (element as DisplayableElement).GetAsMaterialPropertiesExtension(); if (mExtension != null && !string.IsNullOrEmpty(materialName)) { MaterialId materialId = new MaterialId(materialName); BentleyStatus status = mExtension.AddMaterialAttachment(materialId); mExtension.AddToModel(); } }
麻烦看一下,这块代码应该怎么修改
1. 修改元素后要调用ReplaceInModel(注意,是对整个Cell去ReplaceInModel,而不是对这个子元素),不能调用AddToModel
2. C# 目前的遍历单元下元素进行修改的功能有问题,只能切换到C++代码来写
Answer Verified By: Today 徐