Revit二次开发,如何解析系统族的几何信息?如墙、风管等

如何解析系统族的几何信息?如墙、风管等。

一、系统族的继承特征

Revit二次开发,如何解析系统族的几何信息?如墙、风管等_第1张图片

系统族,如Wall、Duct等,它们有一个父级继承,就是都来自于HostObject,这可能就是系统族的标志。知道这个信息很有用。

二、编写获取系统族的几何信息的代码

Autodesk.Revit.DB.Options opt = new Options();
SolidToMesh solidToMesh = new SolidToMesh();
Autodesk.Revit.DB.GeometryElement geomElements = base.HostObject.get_Geometry(opt);
foreach (GeometryObject geoElement in geomElements)
{
    Solid solid= geoElement as Solid;
    if (null == solid)
    {
        continue;
    }

    attributes.MeshPoints.AddRange(solidToMesh.GetVertex(geoElement));

    foreach (Face geomFace in solid.Faces)
    {

    }

    foreach (Edge geomEdge in solid.Edges)
    {

    }
}

通过上述代码,可以获得系统族的几何信息。其中base.HostObject就是你的族元素,如Wall、Duct等。
代码中的solidToMesh.GetVertex,这是我自己写的一个用于取三角面片的公共类。您可以使用自己的方式取三角面片。
Faces和Edges就是它的面和边,您可以通过循环得到它的各种信息。

 

祝您用餐愉快。

你可能感兴趣的:(Revit二次开发)