1)过滤器:
public class FaceFilter : ISelectionFilter
{
Document doc = null;
public FaceFilter(Document document)
{
doc = document;
}
public bool AllowElement(Element elem)
{
return true;
}
public bool AllowReference(Reference reference, XYZ position)
{
if (doc.GetElement(reference).GetGeometryObjectFromReference(reference) is PlanarFace)
{
return true;
}
return false;
}
}
2)拾取面
Reference refer = uidoc.Selection.PickObject(ObjectType.Face,new FaceFilter(revitDoc));
PlanarFace face = revitDoc.GetElement(refer).GetGeometryObjectFromReference(refer) as PlanarFace;
3)得到面的面积:
double d = face.Area * 0.3048 * 0.3048;