Revit API:如何计算地板边缘的总点数?

Posted

技术标签:

【中文标题】Revit API:如何计算地板边缘的总点数?【英文标题】:Revit API: How can I count total point on the edge of the floor? 【发布时间】:2017-06-15 16:00:58 【问题描述】:

作为我的标题,我想知道位于地板边缘的总端点。有没有人有解决方案? 我的理想大概是这样的:

int i = 0;
FilteredElementCollector docCollector1 = new FilteredElementCollector(doc).OfClass(typeof(Point));
foreach(Point point in docCollector1)

  i++;

TaskDialog.Show("Revit","Have total 0 point on the edge of the floor ", i);

这是关于我的问题的图片: Edge has endpoint

我只是想知道我的地板周围有多少个端点。

我可以通过这段代码识别 4 条边,但我仍然不知道得到每条边的所有点。

for (int i = 0; i < ea.Size; i++)

    Edge e = ea.get_Item(i);
        //Identify point located edge in here       
    IList<XYZ> exyz = e.Tessellate();
    int m = exyz.Count;
    XYZ sPoint = exyz[0];
    XYZ ePoint = exyz[m - 1];
    XYZ mPoint = new XYZ((sPoint.X + ePoint.X) / 2, (sPoint.Y + ePoint.Y) / 2, 0);          

【问题讨论】:

你应该添加详细的问题描述 - 什么是预期的结果,你实际上有什么?如果有错误,一些错误描述。当然,您应该添加重现问题所需的代码 【参考方案1】:

我刚刚在Revit API discussion forumhow to get all the points on the edge of the floor 上回答了你的问题:

您可以添加几何位置过滤器,例如,使用BoundingBoxIntersectsFilter。

这里有一些例子:

http://thebuildingcoder.typepad.com/blog/2013/03/filter-for-family-instances-in-a-room.html

http://thebuildingcoder.typepad.com/blog/about-the-author.html#5.9

【讨论】:

以上是关于Revit API:如何计算地板边缘的总点数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Forge 模型衍生 API 获取 revit 模型的单位?

如何从 Revit API 调用 Revit 清除按钮

如何使用 Revit API 从上传到系统的 Revit 文件中获取所有元素

如何从 revit 插件或使用 Forge api 为 Revit 文件创建 URN

如何使用 Forge API 从模型 Revit 2022 获取零件类别

如何在设计自动化 api 中为 revit 创建多个文件并将结果下载为一个 zip 文件