python在bim中的应用_Revit元素类别——Dynamo Python系列教程(六)

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

Revit Elements分为六个组:

模型元素:代表建筑项目中存在的物理项。“模型元素”组中的元素可以细分为以下内容:

族实例:包含族实例对象。您可以将族对象加载到项目中,或从族模板创建它们;

主体元素:包含可以包含其他模型元素(例如,墙,屋顶,天花板和地板)的系统族对象;

结构元素:包含仅在Revit Structure中使用的元素。

草图元素:代表用于2D/3D草图的临时项目:

草图平面

草图

3D路径

视图元素:表示您在Revit中查看和与其他对象交互的方式。

组元素:代表Revit中的辅助图元,例如数组和组对象。

注释和数据元素:包含可见的非物理项。

信息元素:包含用于存储项目和应用程序数据的非物理不可见项:

项目基准图元

每个组包含相关的元素及其对应的符号。

图元也按以下分类:

类别

符号

实例

b9aa83d564f9

image

那我们Dynamo Python涉及到的呢,主要有一下几个应用:

从实例上移到类别:

instanceElement = UnwrapElement(IN[0])

OUT = instanceElement.Symbol, instanceElement.Symbol.Family, instanceElement.Symbol.Category.Name

b9aa83d564f9

image

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

collector = FilteredElementCollector(doc).OfClass(FamilySymbol)

OUT = collector.ToElements()

b9aa83d564f9

image

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

collector = FilteredElementCollector(doc)

bic = System.Enum.ToObject(BuiltInCategory, -2001320)

collector.OfCategory(bic)

OUT = collector.ToElements()

b9aa83d564f9

image

等效于:

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

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

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

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

查找“家庭类型”所属的类别ID

选择该类别的所有元素[collector.OfCategory(bic)]

寻找与家庭类型具有相同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

b9aa83d564f9

image

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值