通过imodel类的Elements属性,我们可以很容易的遍历文件中的几何元素属性,示例代码如下:
foreach (IModelElement element in imodel.Elements) { strInfo = ""; strInfo += "\n\n\n"; strInfo += "id = "; strInfo += element.Element.ElementId.ToString();
//元素几何类型 string strGeo = String.Format("{0}", element.Geometry.GetType()); strInfo += "\n几何类型="; strInfo += strGeo;
////元素instance类 strInfo += "\ninstance类型="; foreach (Class c in element.Classes) { strInfo += c.Name; strInfo += "\n"; }
//元素属性信息 foreach (Dynamics o in element.Objects) //由element到instance { strInfo += "\nDynamicsName = "; strInfo += o.ToString();
foreach (Property p in o.Class.Properties) //如果已知property名字:dynamic dydata = o; 然后通过dynata.property名字访问 { if (!o.ECInstance[p.Name].IsNull) { strInfo += "\n"; strInfo += p.Name; strInfo += "="; strInfo += o.ECInstance[p.Name].NativeValue; } } }
//如果有子元素,需要递归调用foreach (IModelElement e in ele.Children) }
请问IModelElement element.LevelName和imodel中的图层信息是对应的吗?