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

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

Dynamo運行時添加一個進度條

發布于:2021-06-30 11:45:13
首頁/技術分享/Dynamo
收藏
6594

網友投稿

更多

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

你好,我是九哥~

今天呢,我們來玩個不一樣的,給我們的Dynamo程序,添加一個進度條,如下圖所示:

01.gif

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

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

首先,新建一個PythonScript節點,把我提供的代碼復制進去作為模塊使用。

附件下載:

Dynamo運行時添加一個進度條.zip

文章開始的動圖,是通過1到10000的計數,簡單實現了一個進度條,代碼如下:


#示例代碼:

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增加進度條

broadcaster.onChange.next_p()

OUT=out


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

接下來我們用一個簡單的小例子介紹要具體用法,我們簡單創建一系列點,然后在指定點出放置族:

02.gif

如上所示,我們在指定點處放置族,套用了上面的示例代碼,融合了在指定點處放置族的代碼,可以實現一個簡單的帶進度條的程序,代碼如下:

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), "種樹進度條") 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增加進度條

    broadcaster.onChange.next_p()

  TransactionManager.Instance.TransactionTaskDone()

 

OUT = elemlist

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:Revit應用和刪除填充圖案

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

主站蜘蛛池模板: 一级片在线免费播放 | 99久久国产综合精品2020 | 日韩免费观看 | 国产精品成人69xxx免费视频 | 深夜偷偷看视频在线观看 | 最新欧美伦禁片在线观看 | 亚洲精品国产三级在线观看 | 毛片网站大全 | 毛片大全在线观看 | 久久免费视频观看 | 成人青草亚洲国产 | 亚洲 欧美 激情 另类 自拍 | 亚洲视频国产视频 | 在线观看高清免费 | 黄在线观看在线播放720p | 日韩一级免费毛片 | 欧美日韩国产片 | 91在线 | porny | 欧美 | 高清亚洲精品酒店一区 | 青青青国产依人精品视频 | 在线免费一级片 | 免费xxx成年大片 | 国产第一页久久亚洲欧美国产 | 三级大片在线观看 | 亚洲爆操| 黄色在线观看www | 人与牲动交xxxxbbbb高清 | 99视频有精品视频免费观看 | 国产三级在线视频播放线 | 亚洲精品综合网在线8050影院 | 国产在线观看精品 | 手机免费黄色网址 | 精品久久一区二区 | 91短视频版官网 | 天堂亚洲欧美日韩一区二区 | 加勒比一道本综合 | 亚洲涩色| 特大巨黑人吊与黑人性xxxx | 国内一区二区三区精品视频 | 亚洲日本欧美综合在线一 | 欧美电影精品久久久久 |