美文网首页BIM的乐趣
Revit元素类别——Dynamo Python系列教程(六)

Revit元素类别——Dynamo Python系列教程(六)

作者: 九哥BIMer | 来源:发表于2020-03-11 00:59 被阅读0次

今天我们来聊聊Revit元素这点事,不仅仅是在Dynamo Python之中涉及,我们在日常使用Revit的时候,也涉及这个问题,只是对我们日常画图没什么影响,所以很多人并没太在意这块。
Revit Elements分为六个组:

  • 模型元素:代表建筑项目中存在的物理项。“模型元素”组中的元素可以细分为以下内容:
  • 族实例:包含族实例对象。您可以将族对象加载到项目中,或从族模板创建它们;
  • 主体元素:包含可以包含其他模型元素(例如,墙,屋顶,天花板和地板)的系统族对象;
  • 结构元素:包含仅在Revit Structure中使用的元素。
  • 草图元素:代表用于2D/3D草图的临时项目:
  • 草图平面
  • 草图
  • 3D路径
  • 视图元素:表示您在Revit中查看和与其他对象交互的方式。
  • 组元素:代表Revit中的辅助图元,例如数组和组对象。
  • 注释和数据元素:包含可见的非物理项。
  • 信息元素:包含用于存储项目和应用程序数据的非物理不可见项:
  • 项目基准图元
    每个组包含相关的元素及其对应的符号。
    图元也按以下分类
  • 类别
  • 符号
  • 实例
    image

那我们Dynamo Python涉及到的呢,主要有一下几个应用:
从实例上移到类别:

instanceElement = UnwrapElement(IN[0])
OUT = instanceElement.Symbol, instanceElement.Symbol.Family, instanceElement.Symbol.Category.Name
image

要选择所有族类型,我们可以使用FilteredElementCollector.ToElements()检索Revit元素:

collector = FilteredElementCollector(doc).OfClass(FamilySymbol)
OUT = collector.ToElements()
image

要在给定类别ID的情况下选择类别的所有族类型:

collector = FilteredElementCollector(doc)
bic = System.Enum.ToObject(BuiltInCategory, -2001320)
collector.OfCategory(bic)
OUT = collector.ToElements()
image

等效于:

collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements()

如果只想选择实例,则需要添加WhereElementIsNotElementType():

collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).WhereElementIsNotElementType().ToElements()

要从“族类型”中选择所有元素,我们需要:

  1. 查找“家庭类型”所属的类别ID
  2. 选择该类别的所有元素[collector.OfCategory(bic)]
  3. 寻找与家庭类型具有相同TypeId的元素
doc = DocumentManager.Instance.CurrentDBDocument
famtypes = UnwrapElement(IN[0])
elementlist = list()
for ft in famtypes:
    collector = FilteredElementCollector(doc)
    bic = System.Enum.ToObject(BuiltInCategory, ft.Category.Id.IntegerValue)
    collector.OfCategory(bic)
    for item in collector.ToElements():
        if item.GetTypeId().IntegerValue == ft.Id.IntegerValue:
        elementlist.append(item)
        #elementlist.append(ftlist)
OUT = elementlist
image

好了,今天的教程就分享就到这里了

相关文章

网友评论

    本文标题:Revit元素类别——Dynamo Python系列教程(六)

    本文链接:https://www.haomeiwen.com/subject/lhbvrhtx.html