91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

Dynamo運(yùn)行時(shí)添加一個(gè)進(jìn)度條

發(fā)布于:2021-06-30 11:45:13

網(wǎng)友投稿

更多

本文來自“BIM的樂趣”的“九哥BIMer”

你好,我是九哥~

今天呢,我們來玩?zhèn)€不一樣的,給我們的Dynamo程序,添加一個(gè)進(jìn)度條,如下圖所示:

01.gif

本次教程不詳細(xì)講解這個(gè)如何實(shí)現(xiàn)的了,給大家一個(gè)用Python寫好的窗體,你只需要在自己的程序里直接調(diào)用即可使用,然后我會(huì)在接下來的幾篇文章中,給大家講解一下如何在Dynamo中使用WindowsForm繪制窗體。

本次教程,就給大家介紹下,如何將這個(gè)進(jìn)度條加入到自己的程序中,雖然并不是特別準(zhǔn)確的顯示程序進(jìn)度,但是也能有個(gè)大概提示。

首先,新建一個(gè)PythonScript節(jié)點(diǎn),把我提供的代碼復(fù)制進(jìn)去作為模塊使用。

附件下載:

Dynamo運(yùn)行時(shí)添加一個(gè)進(jìn)度條.zip

文章開始的動(dòng)圖,是通過1到10000的計(jì)數(shù),簡(jiǎn)單實(shí)現(xiàn)了一個(gè)進(jìn)度條,代碼如下:


#示例代碼:

importsys

importclr

importSystem

clr.AddReference('ProtoGeometry')

fromAutodesk.DesignScript.Geometryimport*

 

ProgressBarUtils=IN[0]

pgb=ProgressBarUtils()

lstProcessing=list(range(10000))

out=[]

withpgb.MyProgressBroadcaster(len(lstProcessing),"BIM的樂趣")asbroadcaster:

foriinlstProcessing:

#你自己程序的核心代碼

#

#通過EventHook增加進(jìn)度條

broadcaster.onChange.next_p()

OUT=out


這里的進(jìn)度條是通過模塊里寫好的一個(gè)計(jì)數(shù)器實(shí)現(xiàn)的,我們直接通過broadcaster.onChange.next_p()方法與你自己的程序掛鉤,來增加進(jìn)度條顯示。

接下來我們用一個(gè)簡(jiǎn)單的小例子介紹要具體用法,我們簡(jiǎn)單創(chuàng)建一系列點(diǎn),然后在指定點(diǎn)出放置族:

02.gif

如上所示,我們?cè)谥付c(diǎn)處放置族,套用了上面的示例代碼,融合了在指定點(diǎn)處放置族的代碼,可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的帶進(jìn)度條的程序,代碼如下:

03.png

import sys

import clr

import System

 

clr.AddReference("RevitServices")

clr.AddReference("RevitNodes")

import RevitServices

from RevitServices.Persistence import DocumentManager

from RevitServices.Transactions import TransactionManager

doc =  DocumentManager.Instance.CurrentDBDocument

 

import Revit

clr.ImportExtensions(Revit.Elements)

clr.ImportExtensions(Revit.GeometryConversion)

 

clr.AddReference("RevitAPI")

from Autodesk.Revit.DB import *

 

famType = UnwrapElement(IN[0])

pts = IN[1]

if not isinstance(pts, list):

  pts = UnwrapElement([pts])

else:

  pts = UnwrapElement(pts)

 

ProgressBarUtils = IN[2]

pgb = ProgressBarUtils()

 

elems = []

elemlist = []

with pgb.MyProgressBroadcaster(len(pts), "種樹進(jìn)度條") as broadcaster:

  TransactionManager.Instance.EnsureInTransaction(doc)

  for pt in pts:

    #你自己的程序操作邏輯

    if famType.IsActive == False:

      famType.Activate()

    elems = doc.Create.NewFamilyInstance(pt.ToRevitType(), famType, Structure.StructuralType.NonStructural)

    elemlist.append(elems.ToDSType(True))

    #通過EventHook增加進(jìn)度條

    broadcaster.onChange.next_p()

  TransactionManager.Instance.TransactionTaskDone()

 

OUT = elemlist

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:Revit應(yīng)用和刪除填充圖案

下一篇:Revit石材幕墻建模解決方案——“材質(zhì)分割”(一)

主站蜘蛛池模板: 国产成人综合洲欧美在线 | 巨大巨粗巨长 黑人长吊视频 | 美女毛片在线 | 欧美日韩一区二区中文字幕视频 | 一级作爱视频 | 黄网观看| 青青青国产精品国产精品美女 | 日韩精品中文字幕一区三区 | 国产精品视频免费播放 | 欧美日韩午夜精品不卡综合 | 国产精品色婷婷在线观看 | 欧美毛片视频 | 午夜精品福利视频 | 亚洲色图日韩精品 | 一级特黄aaaaaa大片 | 日本一级特黄在线播放 | 三级黄色免费网站 | 国产亚洲精品色一区 | 国产精品久久免费观看 | 国产自线一二三四2021 | 美日韩在线视频 | 小明看看在线视频 | 99久久精品国产免看国产一区 | 福利片在线观看免费高清视频 | 淫婷婷| 热99re久久国超精品首页 | 欧洲美女高清一级毛片 | 成人国产精品一级毛片了 | 欧美日韩不卡中文字幕在线 | 亚洲人成网站在线观看播放青青 | 久久久99精品 | 亚洲国产精品久久久久久网站 | 成人免费的性色视频 | 国产精品xxx | 国内精品久久久久鸭 | 国产日韩欧美精品一区二区三区 | 国产一区二区三区免费播放 | 最近手机中文在线视频 | 黄色好看视频 | 综合色婷婷 | 欧美日本日韩 |