X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

BIM软件批量改名方法:Dynamo批量将房间名称转换为模型文字

发布:中文网小编3号 浏览:2600人 分享
发布于:2020-05-19 15:00

    今天呢,我们简单聊聊如何把房间名称,变成模型文字,好在三维中能够看到房间名称。

    本来吧,我觉得批量创建模型文字应该是个很简单的事,但是我在Dynamo中搜了下ModelText,发现只有一个在族环境中创建模型文字的节点:

image.png

    我这么多节点包,竟然没有直接创建模型文字的节点?难道还要去写Python代码?没办法,只好去查下API,不查还好,一查,觉得这个更是有意思了,竟然只能在族环境下才允许创建模型文字,这个事就有点扯了。。。

image.png

    谁能告诉我,这是什么鬼,但是问题有了,总要想办法解决,好在这个问题还有能变通解决的,例如之前我做门窗详图那个例子,我们可以复制模型文字啊,所以“copyelement”方法在这里使用正合适,我们可以再搜索下:

image.png

    所在类为“ElementTransformUtilClass“,所以我们的基本语法为:

    copied=ElementTransformUtils.CopyElement(doc,ElementId(elementId),i.ToXyz())

    那么我们只要获取所有的房间,然后在房间中心点或者直接获取房间的location,把模型文字复制到这里就可以了,大家可以自己尝试下,我就直接贴出代码和节点了:


    # Copyright(c) 2010, 九哥BIMer

    import clr

    clr.AddReference("RevitAPI")

    import Autodesk

    from Autodesk.Revit.DB import *


    clr.AddReference("RevitNodes")

    import Revit

    clr.ImportExtensions(Revit.GeometryConversion)


    clr.AddReference("RevitServices")

    import RevitServices

    from RevitServices.Persistence import DocumentManager

    from RevitServices.Transactions import TransactionManager


    doc =  DocumentManager.Instance.CurrentDBDocument

    app =  DocumentManager.Instance.CurrentUIApplication.Application


    elementId = IN[0].Id

    Pts = UnwrapElement(IN[1])

    new = []

    copied = []


    TransactionManager.Instance.EnsureInTransaction(doc)

    for i in Pts:

      copied = ElementTransformUtils.CopyElement(doc,ElementId(elementId),i.ToXyz())

      new.append(doc.GetElement(copied[0]))

    TransactionManager.Instance.TransactionTaskDone()


    OUT = new

image.png

    从上图可以看出,我复制完文字,将模型文字的值改成房间名称,最后又更新了下文字的位置,这是因为,这里复制模型文字,坐标是相对于你放置的那个模型文字的坐标,更新成房间坐标就可以了。

    从这里我们也看出,这不是个好的解决办法,于是我又想,既然允许在族环境中创建模型文字,那么我们不如直接做个模型文字的族,直接放置族岂不是来的痛快。

    于是我就做了一个模型文字族,添加需要的参数,文字采用中心对齐,如下图,载入项目中就可以用了:

image.png

    那么这样来的更简单,只需要获取房间的location,然后用FamilyInstance.ByPoint放置模型文字族即可,然后将房间名称设置给对应的族即可,如下图:

image.png

    这样我们就完成了,房间名称转换为模型文字的操作,可以在三维中看到房间名称了。


BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!