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

Revit图元放进Dynamo要怎么做?如何利用Dynamo锁定与解锁Revit图元

发布:中文网小编3号 浏览:1924人 分享
发布于:2021-05-31 16:22

image.png

    今天我们来聊一个简单实用的小功能,就是标题写的锁定与解锁图元。

    我们都知道,在建模过程中,为了避免对某些图的误操作,经常会进行锁定,当需要修改的时候,在临时解锁。

    但是,当我们用Dynamo来改某些锁定图元参数的时候,会提示参数为只读:

image.png

    而我们需要设置这个参数,又不想对图元解锁。这个时候,我们就需要临时解锁图元,待调整完参数以后,重新锁定。

    Dynamo没有现成的节点,我们可以打开API手册查一下,因为是Element的通用属性,所以我们直接搜Element,然后找到Properties,很容易就能找到Pinned属性——Identifiesiftheelementhasbeenpinnedtopreventchanges,大概意思,就是标识这个Element是否被锁定,那么我们就更改这个属性即可,点进去:

image.png

    可以看到详细介绍如下:

image.png

    由此,我们可以看出这个属性是个布尔值,无论是get还是set,都是布尔值。

    那么参照C#语法,很容易就能得到核心语法:

        element.Pinned=False

    由于图元可能是锁定,也可能是未锁定,对应这种情况,用try...except...语法最合适。

    然后就能完善出我们的基本代码,再补全一些常用的引用即可。为了让节点更灵活,我们可以将布尔值作为输入,True为锁定,False为解锁,用起来更方便:

    for i in eles:

        try:

            i.Pinned=IN[1]

        except:

            typelist.append(list())

    实际使用的时候,我们可以获取图元后,先解锁,设置参数,之后再重新锁定即可,例如设置项目基点高程,如下图:

image.png

    设置完之后,项目基点仍为锁定状态:

image.png

    完整代码如下:

# 图元锁定与解锁#__author__ = '九哥BIMer'
import clrclr.AddReference('ProtoGeometry')from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitNodes")import Revitclr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManagerfrom System.Collections.Generic import *
clr.AddReference("RevitAPI")import Autodesk
doc = DocumentManager.Instance.CurrentDBDocument
eles = UnwrapElement(IN[0])TransactionManager.Instance.EnsureInTransaction(doc)
typelist = list()for i in eles:  try:    i.Pinned = IN[1]  except:    typelist.append(list())
TransactionManager.Instance.TransactionTaskDone()OUT = IN[0]



    Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。

    网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。

    需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频

l  BIM培训网校课程目录

l  Revit零基础培训教程

l  BIM项目实战训练营

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