当前位置: 首页 > news >正文

参数添加 dynamo

以下是Python节点的输入顺序:

IN [0] - 参数名称作为字符串。这将是你的参数的名称。

IN [1] - Group Name as String。这将是共享参数组名称。该参数将被存储在该组中。

IN [2] - 参数类型,它定义是否是一个是/否,文本,整数等参数类型。在左边有一个单独的Python节点,枚举项目中可用的所有参数类型,以便获取其中的一个。

IN [3] - 可见?这是一个布尔真/假,这将使参数用户可见(它将显示在元素的属性中)或不可见(用户不能看到参数,它只能通过API访问)

IN [4] - 元素类别。这是一个你想添加参数到ex的类别。通用模型或家具。

IN [5] - 参数组。这是在UI中显示时参数存储的组。当您选择一个元素时,每个参数都在一个组内。最常用的是图形,文本,标识等,但还有更多可用于放置您的参数。

IN [6] - 实例?这是一个布尔真/假,确定这将是一个实例或类型参数。

一旦你运行这个定义,它将在共享参数文件中创建参数,并将其添加到项目中。

参数类型节点的代码 Parameter Group node:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
import System

#Assign your output to the OUT variable
OUT = System.Enum.GetValues(ParameterType)

 参数组节点Parameter Group node:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
import System

#Assign your output to the OUT variable
OUT = System.Enum.GetValues(BuiltInParameterGroup)

参数创建节点parameter creation node:

import clr
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *

# Import DocumentManager and TransactionManager
clr.AddReference(“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

# Import RevitAPI
clr.AddReference(“RevitAPI”)
import Autodesk
from Autodesk.Revit.DB import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application

from System.Collections.Generic import *

# Import ToDSType(bool) extension method
clr.AddReference(“RevitNodes”)
import Revit
clr.ImportExtensions(Revit.Elements)
import System
#The inputs to this node will be stored as a list in the IN variable.
dataEnteringNode = IN

_paramName = IN[0]
_groupName = IN[1]
_paramType = IN[2]
_visible = IN[3]
_category = IN[4]
_paramGroup = IN[5]
_instance = IN[6]

def ParamBindingExists(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
paramExists = True
break
else:
paramExists = False
return paramExists

def RemoveParamBinding(_doc, _paramName, _paramType):
map = doc.ParameterBindings
iterator = map.ForwardIterator()
iterator.Reset()
while iterator.MoveNext():
if iterator.Key != None and iterator.Key.Name == _paramName and iterator.Key.ParameterType == _paramType:
definition = iterator.Key
break
message = None
if definition != None:
map.Remove(definition)
message = “Success”
return message

#”Start” the transaction
TransactionManager.Instance.EnsureInTransaction(doc)

message = None

if ParamBindingExists(doc, _paramName, _paramType):
if not RemoveParamBinding(doc, _paramName, _paramType) == “Success”:
message = “Param Binding Not Removed Successfully”
else:
message = None

try:
file = app.OpenSharedParameterFile()
except:
message = “No Shared Parameter file found.”
pass

group = file.Groups.get_Item(_groupName)
if group == None:
group = file.Groups.Create(_groupName)

if group.Definitions.Contains(group.Definitions.Item[_paramName]):
_def = group.Definitions.Item[_paramName]
else:
_def = group.Definitions.Create(_paramName, _paramType, _visible)

builtInCategory = System.Enum.ToObject(BuiltInCategory, _category.Id)
cats = app.Create.NewCategorySet()
cats.Insert(doc.Settings.Categories.get_Item(builtInCategory))
if _instance:
bind = app.Create.NewInstanceBinding(cats)
else:
bind = app.Create.NewTypeBinding(cats)
param = doc.ParameterBindings.Insert(_def, bind, _paramGroup)

# “End” the transaction
TransactionManager.Instance.TransactionTaskDone()

#Assign your output to the OUT variable
if message == None:
OUT = “Success”
else:
OUT = message

 

 http://www.360doc.com/content/16/0624/11/13726687_570358668.shtml

转载于:https://www.cnblogs.com/ShirleyX/p/7997826.html

相关文章:

  • Oracle初级——续续篇
  • transient关键字
  • [codeforces] 25E Test || hash
  • python入门----hello world
  • HDU2019数列有序!
  • Kafka无消息丢失配置
  • 人体的数学美思考
  • winfrom 水晶报表制作
  • 洛谷 P1454 圣诞夜的极光
  • 关于手势处理
  • ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
  • Centos运行Mysql因为内存不足进程被杀
  • BZOJ3529 [Sdoi2014]数表 【莫比乌斯反演】
  • JS 详解 Cookie、 LocalStorage 与 SessionStorage
  • 进程和线程(5)-分布式进程
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • go语言学习初探(一)
  • JS笔记四:作用域、变量(函数)提升
  • maven工程打包jar以及java jar命令的classpath使用
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • mysql 5.6 原生Online DDL解析
  • React系列之 Redux 架构模式
  • 高性能JavaScript阅读简记(三)
  • 工程优化暨babel升级小记
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端面试之CSS3新特性
  • ​LeetCode解法汇总518. 零钱兑换 II
  • (03)光刻——半导体电路的绘制
  • (超详细)语音信号处理之特征提取
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十三)Flask之特殊装饰器详解
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • 、写入Shellcode到注册表上线
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework杂记
  • @Async注解的坑,小心
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @Repository 注解
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [\u4e00-\u9fa5] //匹配中文字符
  • [Android Studio] 开发Java 程序
  • [android] 手机卫士黑名单功能(ListView优化)
  • [BZOJ3757] 苹果树
  • [C#]winform部署yolov5-onnx模型
  • [C++]AVL树怎么转
  • [Firefly-Linux] RK3568 pca9555芯片驱动详解
  • [hive]中的字段的数据类型有哪些
  • [IE编程] 了解Urlmon.dll和Wininet.dll
  • [Java、Android面试]_05_内存泄漏和内存溢出
  • [JavaScript] JavaScript事件注册,事件委托,冒泡,捕获,事件流
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解
  • [Linux] - 定时任务crontab
  • [Oh My C++ Diary]善用三目运算符(a?b:c)