Revit api 如何获取空间上方对象的空间信息';什么是天花板?

Revit api 如何获取空间上方对象的空间信息';什么是天花板?,revit-api,revitpythonshell,pyrevit,Revit Api,Revitpythonshell,Pyrevit,我是MEP工程师,希望在(房间边界)天花板上方添加机械设备、风管附件和管道附件的空间信息 我的第一个想法是使用BoundingBoxIntersectsFilter和一个带有修改的ClosedShell.GetBoundingBox().Max.Z的轮廓,然后使用BoundingBoxIntersectsFilter捕捉我的元素。这种方法是可行的,但我会有困难的准确性以上的空间,这是注意到限制在六个方面。这是因为事实比大纲只需要点。现在,我想我需要将空间转换为实心几何体并修改Z值,然后使用元素i

我是MEP工程师,希望在(房间边界)天花板上方添加机械设备、风管附件和管道附件的空间信息

我的第一个想法是使用BoundingBoxIntersectsFilter和一个带有修改的
ClosedShell.GetBoundingBox().Max.Z
的轮廓,然后使用
BoundingBoxIntersectsFilter
捕捉我的元素。这种方法是可行的,但我会有困难的准确性以上的空间,这是注意到限制在六个方面。这是因为事实比大纲只需要点。现在,我想我需要将空间转换为实心几何体并修改Z值,然后使用
元素intersectselementfilter
,但我目前仍在考虑使用哪些方法来修改空间几何体

也许我需要使用,但我真的不知道如何使用
Reference
。我已经看到使用了
get\u Geometry
,但我需要如何使用它的帮助。具体来说,这是我不理解如何在python代码中实现的代码:

foreach( GeometryObject obj in e.Objects )
  {
    Solid solid = obj as Solid;
    if( null != solid )
    {
      foreach( Face face in solid.Faces )
      {
        PlanarFace pf = face as PlanarFace;
        if( null != pf )
任何方向正确的踢腿都是非常感谢的


Kyre

当我以前这样做时,有时我会使用更简单的方法。确定设备上的关键点,然后将该设备点上的z值下降到下一层上有空格的z值,然后测试该XYZ以确定包围它的空格。

有很多方法。我认为最简单的方法可能是分两步进行。首先,使用边界框、轮廓或任何适合您需要的快速过滤器,将矩形区域内潜在候选对象的数量减少到合理的数量。在第二步中,逐个迭代候选对象,并对每个对象进行调用,以消除位于不规则空间边界之外的对象。

您可能需要使用ReferenceIntersector。以下是一个示例,按空间替换地板/屋顶: