Revit选择
免责声明,我们刚刚开始使用Revit。在MEP中,我们将楼层划分为多个区域,用于绘制线轴图。因此,在Revit中,我尝试使用区域来进行相同的划分。首先,我如何获取一个区域内的所有元素?因为Area不是元素的参数,所以我假设没有办法使用FilteredElementCollector。
其次,是否有更好的方法将绘图划分为“区域”,然后查询所有管道、管道配件和管道附件?
**** Hidden Message ***** 不确定这是否有帮助,但您能否在管道本身上设置一个读取区域名称的属性,然后只选择具有正确区域名称的管道?我在Revit中进行过零编程,但在AutoCAD MEP中就是这样做的。 咳嗽,咳嗽,吸吮,咳嗽
对不起。
MEP使用空间,但我支持Revit,因为出于某种原因,在我工作的地方,他们将Revit工作交给没有经验的人,最终导致噩梦(不知道为什么),他们现在试图避免
我可以回去检查,但每个元素都有参数,这些参数最终就像动态对象一样,您可以使用名称和值字典中的属性。若你们窥探,你们能在参数字典中找到面积属性吗
表单右侧显示元素的参数。
https://www.theswamp.org/index.php?topic=49784.msg549527#msg549527
这是一个很好的例子 没有,我没有足够的Revit经验来知道是否以及如何添加会自动拾取该区域的参数。我会深入调查的,我确实开始取得进展,让用户选择一个区域,然后使用BoundingBoxInsideFilter获取边界框内的FamilyInstances。我只想知道如何过滤掉所有东西,除了我想要的家庭。从OmniClass开始,我们将看看它能让我走多远。这是我的一些实验代码, 公共结果执行(。
外部命令数据命令数据,。
引用字符串消息,。
ElementSet元素)。
{。
var uiapp = commandData,应用;。
var uidoc = uiapp,ActiveUIDocument。
var app = uiapp,应用;。
var doc = uidoc,文档;。
。
var r = uidoc,Selection.PickObject(对象类型,元素,"选择区域:");。
。
var element = doc,GetElement(r . element id);。
。
var bbox = element . get _ bounding box(doc,active view);。
var outline = new Outline(bbox,最小bbox,max);。
var bb filter = new BoundingBoxIsInsideFilter(outline);。
。
var PVP = new parameter value provider(new element id((int)builtin parameter,omni class _ CODE));。
。
var collector = new FilteredElementCollector(doc,doc。ActiveView.Id)。
,of class(type of(family instance))。
,OfCategory(BuiltInCategory,OST_PipeAccessory)。
,where passes(bb filter);。
。
foreach(收集器中的变量e)。
{。
var Parameters = e . Parameters;。
}。
。
返回结果,成功了;。
}。
这个课程很贵,但我相信它是由Autodesk的一个从事Revit API工作的人开设的。也许你能让你的公司支付它。
https://www . udemy . com/revi tapi/
这是revitapi博客。
https://boostyourbim . WordPress . com/ 您可以加载一个示例模型来查看,也许可以找到一种方法 Revit 支持获取文档或视图中的图元,因此我们需要进行计算才能获取区域(区域)内的图元。
在收集器的循环中,获取每个元素,然后获取其边界框。然后将此元素的边界框与区域边界框:轮廓内进行比较
。Min
elementBox.Max
好主意Khoa。当管道跨越多个区域时,您只需要考虑特殊情况,这可能会发生很多。 跨区域边界运行的跨越元素将有它们的边界框与区域(Area)轮廓重叠。我们需要根据我们想要如何处理它们来使用特殊情况对它们进行计数。
这是修改后的代码:
if (outline.MinelementBox.Max)
{
// Element inside the outline
if (outline.MinelementBox.Max)
{
}
else // Element crosses the outline
{
}
}
页:
[1]
2