Monday 11 September 2017

DYN06.03 : Data-Shapes Package ႏွင့္ မိတ္ဆက္ၿခင္း အပိုင္း(၂)

မဂၤလာပါ။

ဒီပို ့စ္မွာေတာ့ Revit နဲ ့Excel အႀကား Information ေတြ အၿပန္အလွန္ ခ်ိတ္ဆက္ပံု၊ ဖလွယ္ပံုကို Dynamo Code  အသံုးၿပဳပံုၿပီး တင္ၿပေဆြးေႏြးသြားမွာ ၿဖစ္ပါတယ္။ End-user ေတြ အသံုးၿပဳရလြယ္ကူေစမယ့္ Code ၿဖစ္ဖို ့လည္း လိုအပ္တာေႀကာင့္ Data-Shapes Package ထဲက Node ေတြကိုလည္း တြဲဖက္အသံုးၿပဳသြားမွာ ၿဖစ္ပါတယ္။

ဘာ Add-ins မသံုးဘူး ဆိုရင္ Revit နဲ ့Excel ႀကားမွာ Information ေတြကို အၿပန္အလွန္ ခ်ိတ္ဆက္ဖို ့၊ ဖလွယ္ဖို ့ ဆိုတာ မၿဖစ္ႏိုင္တဲ့ ကိစၥတခုပါပဲ။ တနည္းအားၿဖင့္ေတာ့ Revit Software ရဲ့ Limit လို ့ဆိုရမွာပါပဲ။ တခါ Add-ins ေတြ သံုးႀကၿပန္ေတာ့ လည္း အဲ့ဒီ Add-ins ေတြမွာ Limit ေတြထပ္ရွိေနၿပန္ပါေသးတယ္။ ဥပမာ Revit ရဲ့ Family Parameter အားလံုးကို Excel ဆီ ပို ့လို ့မရတာ၊ Excel ဆီကို Export လုပ္တိုင္း Excel File အသစ္တည္ေဆာက္ရတာ...စသၿဖင့္ေသာ အဆင္မေၿပမွုေတြ၊ အပိုလုပ္ရတဲ့ ႀကားခံ Process ေတြပါပဲ။ ေနာက္ဆံုးတခ်က္ကေတာ့ Add-ins ဟာ Free မဟုတ္ႀကတာပါပဲ။

ဒါဆို Dynamo ကေရာ ဘာေတြ လုပ္ေပးႏိုင္ပါသလဲ။
Revit Project ထဲမွာရွိတဲ့ Element ေတြရဲ့ Parameter အမ်ိဳးအစားနဲ ့ သူတို ့ရဲ့ Value ေတြကို Excel ဆီပို ့ ႏိုင္သလို Excel ဆီက Information ေတြကိုလည္း အၿပန္အလွန္ အေနနဲ ့Import ၿပန္လုပ္ႏိုင္ပါတယ္။ ဒါ့အၿပင္ တိက်တဲ့စည္းကမ္းခ်က္ေတြ သတ္မွတ္ၿပီး  Revit နဲ ့Excel အႀကား Information ေတြကို အၿပန္အလွန္ ခ်ိတ္ဆက္ႏိုင္၊ ဖလွယ္ႏိုင္ပါေသးတယ္။

လက္ေတြ ့အေနနဲ ့ Data Exchange Process ေလးတခုေလာက္ လုပ္ႀကည့္ႀကရေအာင္။ ရိုးရွင္းတဲ့ အိမ္တလံုးထဲက Room ေတြရဲ့ Information ေတြကို Revit နဲ ့Excel အႀကား အၿပန္အလွန္ ခ်ိတ္ဆက္ႀကည့္၊ ဖလွယ္ႀကည့္ႀကမယ္ ဆိုပါဆို ့။


ဒီ Room Schedule မွာ ပထမ Column (၃) ခုက Information ေတြဟာ Revit က တိုက္ရိုက္ Extract လုပ္ရမွာၿဖစ္ၿပီး က်န္တဲ့ Column ေတြအတြက္ Information ေတြကိုေတာ့ Excel မွာ ၿဖည့္စြက္ဖို ့ ၿပင္ဆင္ေပးထားတာပါ။

ပထမဆံုး ဒီ Room Schedule ကို Excel ဆီ Export လုပ္ႏိုင္မယ့္ Dynamo Code တခုေရးပါ့မယ္။
ဒီ Code မွာ အပိုင္း (၃) ပိုင္း ပါ၀င္ပါ့မယ္။
၁။ Revit Project ထဲက Room Information ေတြကို Extract လုပ္ၿခင္း
၂။ Extract လုပ္ထားတဲ့ Room Information ေတြကို Excel ဆီ Export လုပ္ၿခင္း
၃။ User-friendly ၿဖစ္ေစဖို ့Code ကို ထပ္ေဆာင္းမြမ္းမံရၿခင္း ... ရယ္ဆိုၿပီးေတာ့ ရွိပါမယ္။

Revit Project ထဲက Room Information ေတြကို Extract လုပ္ၿခင္း။

> Categories ထဲကေန  Room ကိုေရြးပါတယ္။
> Room ထဲကမွ Element အားလံုးကို ေရြးထုတ္ပါတယ္။
> Room Element ေတြရဲ့ Number, Name နဲ ့ Area ဆိုတဲ့ Room Information ေတြကို Extract လုပ္ပါတယ္။
> Parameter Type မတူတဲ့ Room Information ေတြကို List လုပ္ပါတယ္။
> လက္ရွိအတိုင္း  Excel ဆီ ပို ့မယ္ဆိုရင္ List တခုသည္ Excel ရဲ့ Row တခုၿဖစ္ေနပါလိမ့္မယ္။

> List တခုတည္းမွာ Room တခုရဲ့ Type မတူတဲ့ Parameter ေတြပါ၀င္ေနေစခ်င္ရင္ေတာ့ ရွိေနတဲ့ List ကို Transpose  လုပ္ရပါမယ္။

> ဒီေနရာမွာ Room ေတြရဲ့ List ကို Number အားၿဖင့္ စီခ်င္တယ္ ဆိုပါဆို ့။
> Room Element အားလံုးကို ေရြးထုတ္တဲ့ အခ်ိန္တည္းက ကိုယ္စီခ်င္တဲ့ Number ဆိုတဲ့ Parameter ရဲ့ Value နဲ ့စီခဲ့ဖို ့လိုပါလိမ့္မယ္။ ဒီေနရာမွာ SwingNodes Package ရဲ့ List.SortByParameterValue ကို အသံုးၿပဳဖို ့ သင့္ေတာ္ပါတယ္။
အခုဆိုရင္ Extract လုပ္ထားတဲ့ Room အလိုက္ Information ေတြဟာ Excel ဆီကို Export လုပ္ဖို ့ အဆင္သင့္နီးပါးေလာက္ ၿဖစ္ေနၿပီလို ့ ဆိုႏိုင္ပါတယ္။ တခုပဲ ဆံုးၿဖတ္ဖို ့ရွိတာက Excel File အသစ္ဖန္တီးမွာလား။ ရွိႏွင့္ၿပီးသား ဒါမွမဟုတ္ Format ၿပင္ထားၿပီးသား Excel File ထဲကို Information ေတြ သြင္းမွာလား ... ဆိုတာပါပဲ။

Excel File အသစ္ဖန္တီးမယ္ ဆိုရင္ေတာ့ Information ေတြအတြက္ လိုအပ္တဲ့ Title ေတြကို ထည့္ေပးလိုက္ဖို ့လိုအပ္ပါလိမ့္မယ္။ အဲ့ဒီ Title ေတြအတြက္ List.AddItemToFront ကို အသံုးၿပဳပါမယ္။ (တကယ္လို ့ ရွိႏွင့္ၿပီးသား ဒါမွမဟုတ္ Format ၿပင္ထားၿပီးသား Excel File ထဲကို Information ေတြ သြင္းမွာ ဆိုရင္ေတာ့ ဒီအဆင့္ဟာ မလိုအပ္ပါဘူး။)

အခုဆိုရင္ေတာ့ ပထမဆံုး Row မွာ Title ေတြကို ေတြ ့ရမွာၿဖစ္ၿပီး ေအာက္က Row ေတြမွာေတာ့ Room Information ေတြကို Room Number အလိုက္ အစီအစဥ္တက် ၿဖစ္ေနတာကို ၿမင္ေတြ ့ႀကရမွာပါ။

Extract လုပ္ထားတဲ့ Room Information ေတြကို Excel ဆီ Export လုပ္ၿခင္း။

ဒီေနရာမွာလည္း အေၿခအေန (၂)မ်ိဳးအတြက္ ၿပင္ဆင္ရပါမယ္။  Excel File အသစ္ဖန္တီးဖို ့အတြက္ရယ္၊ တကယ္လို ့ ရွိႏွင့္ၿပီးသား ဒါမွမဟုတ္ Format ၿပင္ထားၿပီးသား Excel File ထဲကို Information ေတြသြင္းဖို ့ ရယ္ ... ဆိုၿပီးေတာ့ ၿဖစ္ေနပါ့မယ္။

Excel File အသစ္ဖန္တီးဖို ့အတြက္ရယ္ ဆိုရင္ေတာ့...

> FilePath ေပးတဲ့ အခါမွာ ကိုယ္အသစ္ဖန္တီးခ်င္တဲ့ Excel File ရဲ့ Name ကို .xls ဒါမွမဟုတ္ .xlsx ဆိုတဲ့ Excel File ရဲ့ Extension ကိုပါ တြဲထည့္ၿပီး ေပးဖို ့ လိုအပ္ပါမယ္။ (ဥပမာ RoomData.xls ဒါမွမဟုတ္ RoomData.xlsx).
> SheetName ကိုလည္း သင့္ေတာ္တဲ့ Name တခုေပးႏိုင္ပါတယ္။
> startRow ကို Code Block သံုးၿပီး 0 လို ့ေပးပါမယ္။
(ဆိုလိုတာကေတာ့ Excel ရဲ့ ပထမဆံုး  Row က စၿပီး Information ေတြသြင္းမယ္ ဆိုတဲ့ သေဘာပါ။)
> startCol ကို Code Block သံုးၿပီး 0 လို ့ေပးပါမယ္။ 
(ဆိုလိုတာကေတာ့ Excel ရဲ့ ပထမဆံုး  Column က စၿပီး Information ေတြသြင္းမယ္ ဆိုတဲ့ သေဘာပါ။)
> Data ဆိုတဲ့ Input မွာ Extract လုပ္ထားတဲ့ Room Information ေတြအတြက္ ၿဖစ္ပါတယ္။
> overWrite ကေတာ့ ရွိႏွင့္ၿပီးသား Excel File ဆိုရင္ File တခုလံုးကို Overwrite လုပ္ပစ္မလား ဆိုတဲ့ True/ False ေရြးၿခယ္မွုပါ။ File အသစ္ဖန္တီးတဲ့ Process အတြက္ကေတာ့ ဘာၿဖစ္ၿဖစ္ ကိစၥ မရွိလွပါဘူး။



တကယ္လို ့ ရွိႏွင့္ၿပီးသား ဒါမွမဟုတ္ Format ၿပင္ထားၿပီးသား Excel File ထဲကို Information ေတြသြင္းဖို ့ ရယ္ ... ဆိုၿပီးေတာ့ 


> FilePath ေပးတဲ့ ရွိႏွင့္ၿပီးသား Excel File ကို ေရြးခ်ယ္လိုက္ရပါမယ္။
> SheetName ေနရာမွာလည္း ရွိႏွင့္ၿပီးသား Excel File ရဲ့ Sheet Name အတိုင္း String အၿဖစ္ Input လုပ္ေပးရပါမယ္။ 
(Case Sensitive ၿဖစ္တဲ့ အတြက္ ကိုယ္ Information ေတြသြင္းမယ့္ Sheet Name အတိုင္း ၏ သည္ မေရြး ကိုက္ညီေနရပါမယ္။)
> startRow ကို ကိန္းဂဏန္း အၿဖစ္ေရးသြင္းရာမွလည္း ရွိႏွင့္ၿပီးသား Excel File ရဲ့  Format အတိုင္း အံ၀င္မယ့္ Row Number ကို ေရးသြင္းရပါမယ္။
(Dynamo သေဘာအရ အေရအတြက္ေတြကို 0 က စေရတြက္တာေႀကာင့္ အခု Row Number 4 ကေန Information ေတြစၿပီး သြင္းမယ္ ဆိုရင္ 3 လို ့ကိန္းဂဏန္း (Number) အေနနဲ ့ ရိုက္ထည့္ေပးရပါမယ္။
> startCol ကိုလည္း startRow အတိုင္း ဂရုတစိုက္ ေဆာင္ရြက္ဖို ့လိုအပ္ပါမယ္။
(Column Number B ကေန Information ေတြစၿပီး သြင္းမယ္ ဆိုရင္ 1 လို ့ကိန္းဂဏန္း (Number) အေနနဲ ့ ရိုက္ထည့္ေပးရပါမယ္။
> Data ကေတာ့ ပထမ Process အတိုင္း ေဆာင္ရြက္ရံုပါပဲ။
> overWrite အေနနဲ ့က False ေပးရပါလိမ့္မယ္။ ဒါမွ ရွိႏွင့္ၿပီးသား Excel File ထဲက Revit ဆီက Data Extraction လုပ္ထားတဲ့ Data ေတြမဟုတ္တဲ့  တၿခားေသာ Data ေတြကို Overwrite အလုပ္မခံရေအာင္လို ့ ပါ။

ခုဆိုရင္ေတာ့ Revit က  Information ေတြကို Excel ဆီ Exchange လုပ္နည္း Workflow (၂) ခုကို ေဆြးေႏြးခဲ့ၿပီး ၿဖစ္ပါတယ္။
ေနာက္ဆံုး အေနနဲ ့ End-user ေတြအတြက္ User-friendly ၿဖစ္ေအာင္ Dynamo Code ေတြကို မြမ္းမံၿဖည့္စြက္ပံုေလး ဆက္လက္ တင္ၿပေဆြးေႏြး သြားမွာ ၿဖစ္ပါတယ္။

User-friendly ၿဖစ္ေစဖို ့Code ကို ထပ္ေဆာင္းမြမ္းမံရၿခင္း။
ဒီအဆင့္မွာေတာ့ Dynamo Code ေရးသူအေနနဲ ့ မိမိအတြက္ထက္ Dynamo ဆိုတာကို လံုး၀မထိေတြ ့ ဖူးေသးတဲ့ End-user ေတြအတြက္ကို အဓိကထား စဥ္းစားၿပီး  Code ေတြကို ေရးဖို ့လိုအပ္လာပါမယ္။ ေနာက္ဆံုး တင္ၿပေဆြးေႏြးခဲ့တဲ့ Code (Revit To Excel) ကို အေၿခခံၿပီး ေဆြးေႏြးႀကည့္ႀကရေအာင္။

> ပထမဆံုး အေနနဲ ့Extract လုပ္ခ်င္တဲ့ Room ဆိုတဲ့ Category ကို ေရြးၿခယ္ဖို ့
> File Path ေပးၿပီး Excel File အသစ္ဖန္တီးဖို ့၊ ဒါမွမဟုတ္ ရွိၿပီးသား Excel File ကို File Path ေပးဖို ့
> အသစ္ဖန္တီးမယ့္ Excel File ရဲ့ Sheet Name ကို အမည္ေပးဖို ့၊ ဒါမွမဟုတ္ ရွိၿပီးသား Excel File ရဲ့ Sheet Name အတိုင္း String အၿဖစ္ Input လုပ္ေပးဖို ့
> Start Row နဲ ့ Start Column နံပါတ္ေတြကို သတ္မွတ္ဖို ့
... စတဲ့ User Input ေတြဟာ လက္ရွိ Code အတိုင္း ဆိုရင္ Dynamo ဆိုတာကို လံုး၀မထိေတြ ့ ဖူးေသးတဲ့ End-user ေတြအတြက္ တကယ့္အခက္အခဲ တခုပါပဲ။ End-user ေတြအေနနဲ ့ ဒီအခက္အခဲကို အလြယ္တကူ ေၿပလည္ေစဖို ့အတြက္ကေတာ့ Dynamo Code ေရးသူေတြ အေနနဲ ့Node အပိုေလးေတြ ထပ္မံၿဖည့္စြက္ေပးဖို ့ လိုအပ္လာပါေတာ့တယ္။ အဲ့ဒီအတြက္ Data-Shapes Package ဟာ မလြဲမေသြ လိုအပ္လာမွာ ၿဖစ္ပါတယ္။

၁။ Category ကို ေရြးၿခယ္ၿခင္း။ 
ဒီ Function အတြက္  Data-Shapes Package ရဲ့ Node အခ်ိဳ  ့ကို ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း အသံုးၿပဳထားပါတယ္။ ဒါ့အၿပင္ Custom Node တခုၿဖစ္တဲ့ TL.DB Category to Revit Category ကို Forum တခုမွ ရလာေသာ Python Scrip နဲ ့ ေပါင္းစပ္ၿပီး ဖန္တီးထားတာပါ။ အဲဒါမွပဲ DB Category ကေန Revit Category ၿဖစ္ေအာင္ ေၿပာင္းလဲႏိုင္သြားပါတယ္။

၂။ File Path ေပးၿခင္း။  
UI.FilePath Data ကို အသံုးၿပဳထားပါတယ္။ သူ ့မွာ Input (၃) ခုရွိၿပီး Input Name တခုကိုသာ သိသာေအာင္ ေဖာ္ၿပေပးဖို ့လိုအပ္ပါတယ္။

၃။ Sheet Name ကို အမည္ေပး ၿခင္း။
UI.TextBox Data ကို အသံုးၿပဳထားပါတယ္။ သူ ့မွာ Input (၂) ခုရွိၿပီး Input Name တခုကိုသာ သိသာေအာင္ ေဖာ္ၿပေပးဖို ့လိုအပ္ပါတယ္။

၄။ Start Row/ Start Column နံပါတ္ကို သတ္မွတ္ၿခင္း။
UI.TextBox Data ကို အသံုးၿပဳထားပါတယ္။ သူ ့မွာ Input (၂) ခုရွိၿပီး Input Name တခုကိုသာ သိသာေအာင္ ေဖာ္ၿပေပးဖို ့လိုအပ္ပါတယ္။ 
တကယ္လိုအပ္ေနတဲ့ Input Type က Number ၿဖစ္ေနေပမယ့္လည္း Available ၿဖစ္တဲ့ TextBox Data Node ကိုပဲ အသံုးၿပဳထားပါတယ္။ Number ထည့္သြင္းရမယ့္ Input ေရွ  ့ေရာက္ေတာ့မွပဲ String.ToNumber နဲ ့ ထည့္သြင္းခဲ့တဲ့ String ကို Number အၿဖစ္ ေၿပာင္းလဲၿပီး လိုအပ္တဲ့ Input နဲ ့ ခ်ိတ္ဆက္ေပးရပါတယ္။
Dynamo ကို မထိေတြ ့ဖူးေသးတဲ့ End-user အတြက္ Dynamo ရဲ့ 0 ကေန စၿပီး ေရတြက္တဲ့ List ရဲ့ သေဘာသဘာ၀ကို နားလည္မွာ မဟုတ္ပါဘူး။ ဒါေႀကာင့္ပဲ UI Dialog Box မွာ Start Row/ Start Column အတြက္ နံပါတ္ကို သတ္မွတ္ရတဲ့ အခါမွာ သူသိႏွင့္ၿပီးသား ကိန္းဂဏန္း ေရတြက္ပံုနဲ ့ ကိုက္ညီေနေစဖို ့ အတြက္ Formula (x-1) တခု ႀကားခံေပးထားလိုက္တာ ၿဖစ္ပါတယ္။
(ဥပမာ Excel ရဲ့ Row No. 4 ကေန Information ေတြ စ ထည့္ခ်င္ရင္ သူ ့အေနနဲ ့ သမရိုးက်အတိုင္း 4 ကို ရိုက္ထည့္ရံုပါပဲ။ Column No. C ကေန Information ေတြ စ ထည့္ခ်င္ရင္လည္း 3 ကို ရိုက္ထည့္ရံုပါပဲ) 



၅။ Dynamo Code ႏွင့္ ခ်ိတ္ဆက္ေပါင္းစည္းၿခင္း

အခုဆိုရင္ေတာ့ ဒီ Dynamo Code ဟာ End-user အတြက္ User-friendly ၿဖစ္တဲ့ Code တခုၿဖစ္သြားပါၿပီ။ ဒီ Dynamo Code ကို အသံုးၿပဳမယ္ဆိုရင္
၁။ Revit 2017.2 နဲ ့အထက္ ရွိရပါမယ္။ ဒါမွ Dynamo Player ကို အသံုးၿပဳႏိုင္မွာ ၿဖစ္ပါတယ္။
၂။ Dynamo 1.2.1 နဲ ့အထက္ ရွိရပါမယ္။
၃။ Data-Shapes Package  ရွိရပါမယ္။

 Dynamo Player အသံုးၿပဳပံုကိုေတာ့ ေအာက္က Video Link ေတြကေန ေလ့လာႏိုင္ပါတယ္။
1. Rename/ Renumbering and Cleaning of Parameter Value of Selected Category
 

2. Creating/ Adding Worksets Into Revit Project thru Excel

Friday 1 September 2017

DYN06.02 : Data-Shapes Package ႏွင့္ မိတ္ဆက္ၿခင္း အပိုင္း(၁)



Data-Shapes Package ဆိုတာက Dynamo ထဲမွာ ထပ္ေဆာင္းၿပီး install လုပ္ရတဲ့ Package မ်ိဳးလို ့ အႀကမ္းဖ်င္း နားလည္ထားရင္ပဲ လံုေလာက္မယ္ထင္ပါတယ္။ Dynamo ကို ထဲထဲ၀င္၀င္ သံုးစြဲလာတာနဲ ့ အမွ် ဒီလို Additional Package ေတြရဲ့ အသံုး၀င္ပံု၊ အသံုးၿပဳပံုေတြကိုလည္း ရင္းႏွီးလာမွာ ၿဖစ္လို ့ပါပဲ။


Dynamo ကို Revit အတြက္ Automation Tool အၿဖစ္အသံုးၿပဳႀကတဲ့ အခါ ဒီလို Additional Package ေတြဟာ ကိုယ့္ရဲ့ လိုအပ္ခ်က္အေပၚမူတည္ၿပီး လိုအပ္ေနမွာပါပဲ။ တခါတခါလည္း Package တခုနဲ ့ တခုအႀကားၿဖစ္ေစ၊ Package တခုတည္းအတြင္းမွာၿဖစ္ေစ Conflict ၿဖစ္တာေတြလည္း ေတြ ့ ၿမင္ရတတ္ပါတယ္။ အဲ့ဒီအခါက်ရင္ေတာ့ လိုအပ္သလို Package ေတြကို uninstall လုပ္တာတို ့၊ Dynamo တခုလံုးကို uninstall လုပ္ၿပီး reinstall ၿပန္လုပ္ရတာေတြလည္း ရွိေကာင္းရွိႏိုင္ပါတယ္။


ဒီလို Package ေတြအမ်ားႀကီးထဲကမွ ဒီ Data-Shapes Package ကိုကြက္ၿပီး အက်ယ္တ၀င့္ ေဆြးေႏြးရၿခင္းရဲ့ အဓိက အေႀကာင္းအရင္းကေတာ့ သူ ့ရဲ့ UI (User Interface) Node ေတြေႀကာင့္ပဲ ၿဖစ္ပါတယ္။ End-user အတြက္ User-friendly ၿဖစ္ေစဖို ့အတြက္ Dynamo Code ေတြကို ဖန္တီးႀကတဲ့ အခါမွာ သူ ့ရဲ့ UI Node ေတြဟာ အဓိက အခန္းက႑ကေန ပါ၀င္ေနလို ့ပါပဲ။


Data-Shapes Package ရဲ့ UI နဲ ့ ပတ္သက္တဲ့ Node ေတြကေတာ့ ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္းပဲ ၿဖစ္ပါတယ္။



အထက္ေဖာ္ၿပပါ Node ေတြထဲကမွ ပထမဆံုးေသာ Node ၿဖစ္တဲ့ UI.MultipleInputForm ဆိုတဲ့ Node အေႀကာင္းကို အရင္ဆံုး ေဆြးေႏြးတင္ၿပခ်င္ပါတယ္။
 Dynamo ရဲ့ Working Space ထဲကို အဲဒီ UI.MultipleInputForm ဆိုတဲ့ Node ေလးခ်ၿပီး သူ ့ရဲ့အေပၚ Casa ေလး တင္လိုက္မိရင္ပဲ အထက္ေဖာ္ၿပပါ ပံုအတိုင္း အသံုးၿပဳပံု Hints ေတြကို ၿမင္ေတြႏိုင္ပါတယ္။

ဒီ Node ဟာဆိုရင္ Imput (9) မ်ိဳးကို လက္ခံႏိုင္ပါတယ္။
၁။ "String" လို ့ေခၚတဲ့ Text လို key-in လုပ္ရတဲ့ Info ေတြ
၂။ "Boolean" လို ့ေခၚတဲ့ True/ False Option ေတြ
၃။ "File Path" ေရြးလို ့ရႏိုင္တဲ့ Function ေတြ
၄။ "Directory Path" ေရြးလို ့ရႏိုင္တဲ့ Function ေတြ
၅။ Revit ရဲ့ Model Element ေတြကို Select လုပ္လို ့ရတဲ့ Function ေတြ
၆။ Revit ရဲ့ Element Face ေတြကို Select လုပ္လို ့ရတဲ့ Function ေတြ
၇။ Revit ရဲ့ Element Edge ေတြကို Select လုပ္လို ့ရတဲ့ Function ေတြ

ေအာက္မွာက်န္ေနတဲ့ ၂ ခုကေတာ့ ေနာက္ထပ္  Node ေတြၿဖစ္တဲ့ UI.DropDown Data UI.ListView Data တို ့နဲ ့ တြဲဖက္ၿပီး ေရြးခ်င္တဲ့ Info ေတြကို DropDown List ကေသာ္လည္းေကာင္း၊ ListView ကေသာ္လည္းေကာင္း ေရြးခ်ယ္လို ့ရတဲ့ Function ေတြပဲ ၿဖစ္ပါတယ္။

ေအာက္က Video မွာ "String"နဲ ့ "Revit element selection" အသံုးကို တင္ၿပေဆြးေႏြးထားပါတယ္။


လာမယ့္ ပို ့စ္က်ရင္ေတာ့ "File Path"  နဲ ့ တၿခား အသံုးေတြကို ဆက္လက္တင္ၿပေပးသြားမွာၿဖစ္ပါတယ္။
တကယ္လို ့သာ Revit 2018.1 သံုးမယ္ ဆိုရင္ေတာ့ "File Path" တို ့ "Boolean" တို ့ေတြဟာ Dynamo Player ရဲ့ Built-in Function ေတြအေနနဲ ့ ပါ၀င္လာတာမို ့ UI အေနနဲ ့သီးသန္ ့ဖန္တီးေပးဖို ့ မလိုအပ္ေတာ့ပါဘူး။ ဒါေပမယ့္ တၿခား Input ေတြအတြက္ေတာ့ UI Node ေတြဟာ လိုအပ္ေနအံုးမယ္ ဆိုတာကိုလည္း သိထားေစခ်င္ပါတယ္။