通过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)
}