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 ေတြဟာ လိုအပ္ေနအံုးမယ္ ဆိုတာကိုလည္း သိထားေစခ်င္ပါတယ္။


Saturday 8 July 2017

DYN06.01 : Dynamo Player ႏွင့္ မိတ္ဆက္ၿခင္း

Dynamo Player ရယ္လို ့ ေၿပာလိုက္ရင္ သာမန္ Revit User ေတြအတြက္ေတာ့ နည္းနည္း ထူးဆန္းေနႀကမွာပါပဲ။ က်ေနာ္တို ့လို Dynamo ေၿခေဆာ့လက္ေဆာ့ ရွိသူေတြအတြက္ေတာ့ သိထားသင့္ တတ္ထားသင့္တဲ့ Tool တခုလို ့ ဆိုရမွာပါ။


ပထမဆံုးအေနနဲ ့ Dynamo ဆိုတာ Visual Programming Script/ Tool ရယ္လို ့သိထားႀကၿပီးၿပီ လို ့ေမွ်ာ္လင့္ပါတယ္။
ဆိုေတာ့ကာ ... သာမန္အားၿဖင့္ ေရးၿပီးသား Dynamo Code ေတြကို အသံုးၿပဳဖို ့ ဆိုတာ End User အေနနဲ ့ အဲ့ဒီ Dynamo Code ေတြကို ဖြင့္ရမယ္။ ၿပီးရင္ လိုအပ္တဲ့ Input ေတြကို ၿဖည့္ရမယ္။ ေနာက္ဆံုးအေနနဲ ့ Run Button ကို ႏွိပ္ရမယ္။
ဆိုေတာ့ကာ ... End User ေတြဟာ Dynamo ရဲ့ အေၿခခံသေဘာတရားေတြ၊ လုပ္ေဆာင္ခ်က္ေတြကို နားလည္ေနဖို ့ လိုလာၿပန္တယ္။ ဒါ့အၿပင္ End User ေတြေႀကာင့္ ေရးၿပီးသား Dynamo Code ေတြလည္း မေတာ္တဆ ဆိုသလို ပ်က္စီးသြားတတ္တာေတြလည္း ၿဖစ္ႏိုင္ေနေသးၿပန္တယ္။ End User တိုင္းကို Dynamo မတတ္မေနရ... လို ့လုပ္ရေအာင္က်ၿပန္ေတာ့လည္း ပံုမွန္ Authoring Tool ေတြလို စိတ္၀င္စားဖို ့ ကလည္း မၿဖစ္ႏိုင္ၿပန္ဘူး။
ဒါေႀကာင့္ပဲ ေရးၿပီးသား Dynamo Code ေတြကို အားလံုးအတြက္လည္း အသံုးတည့္ေအာင္၊ ၿပီးေတာ့ User-friendly လည္း ၿဖစ္မယ့္ Tool တခုခုကို က်ေနာ္တို ့ ေမွ်ာ္လင့္ခဲ့ႀကတယ္။

အရင္ဆံုး Dyno Browser ဆိုတဲ့ Tool တခု ေပၚလာတာ ေတြ ့ရပါတယ္။ Dynamo ကို ဖြင့္စရာမလိုပဲ Dyno Browser ထဲမွာ ရွိေနတဲ့ Dynamo Code ေတြကို Double-click ႏွိပ္ၿပီး Run လိုက္ရံုပါပဲ။ Input ေတြနဲ ့ တြဲၿပီး သံုးရတဲ့ Dynamo Code ေတြ အတြက္က်ေတာ့ ထပ္ဆင့္ၿပင္ဆင္မွုေတြ လုပ္ေပးရပါတယ္။

ဒီလိုနဲ ့ Autodesk Revit 2017 ထြက္လာၿပီး သိပ္မႀကာခင္မွာပဲ Revit 2017.2 ထပ္ထြက္လာၿပီး သူနဲ ့အတူ Dynamo Player ဆိုတဲ့ Tool တခုပါ တြဲပါလာတာပါေတာ့တယ္။

Dynamo Player ဆိုတာ ဘာလဲ

Dynamo Code ေတြကို Dynamo(Visual Programming) Knowledge ရွိစရာ မလိုပဲ End User တိုင္း အလြယ္တကူ အသံုးၿပဳႏိုင္ေအာင္ စီစဥ္ဖန္းတီးေပးထားတဲ့ User-friendly Tool တခုလို ့ ဆိုႏိုင္ပါတယ္။
Dynamo Player ခ်ည္းသက္သက္ ဆိုရင္ေတာ့ Simple Code ေတြကိုသာ Run ဖို ့အဆင္ေၿပႏိုင္ၿပီး User Input ေတြ တြဲပါေနတဲ့ Code ေတြကို End User ေတြ လြယ္လြယ္ကူကူ အသံုးၿပဳႏိုင္ဖို ့ ဆိုရင္ေတာ့ Code ေရးသူေတြအေနနဲ ့ User Interface (UI) ေတြကို ဖန္တီးေပးႏိုင္တဲ့ Node Package ေတြကို အသံုးၿပဳဖို ့လိုအပ္လာပါလိမ့္မယ္။ ဒါမွလည္း End User ေတြအတြက္ User-friendly ၿဖစ္မယ့္ Code ေတြကို ဖန္တီးႏိုင္မွာ ၿဖစ္ပါတယ္။

UI ေတြကို ဖန္တီးေပးႏိုင္တဲ့ Node Package ေတြကေတာ့ ...
- Data-Shapes
- Rhythm
... စတဲ့ Package ေတြပဲ ၿဖစ္ပါတယ္။ က်ေနာ္မသိတဲ့ တၿခား Package ေတြလည္း ရွိေကာင္း ရွိႏိုင္ပါလိမ့္မယ္။

လာမယ့္ Post က်ရင္ေတာ့ Data-Shapes နဲ ့ Rhythm Package ေတြထဲက Node ေတြရဲ့ အသံုးၿပဳပံုကို တင္ၿပေဆြးေႏြးသြားဖို ့ရည္ရြယ္ထားပါတယ္။

Monday 26 June 2017

DYN05.03 : Dynamo Code မ်ားႏွင့္ ကခုန္ၿခင္း - အပိုင္း(၃)

သူ...
သူဟာ
က်ေနာ္တို ့ဘ၀ထဲကို အလင္းတန္းေတြ သယ္ေဆာင္လာတယ္ပဲ ေၿပာရမလား။
က်ေနာ္တို ့ဦးေရဖ်ားထက္ အလံၿဖဴေတြ လာလာစိုက္ေနတယ္ပဲ ေၿပာရမလား။
ဘယ္လိုပဲေၿပာေၿပာ အကန္ ့အသတ္ေတြ၊ အတားအဆီးေတြကိုေတာ့ သူ ့ရဲ့ ပံ့ပိုးမွုေတြနဲ ့ တဆင့္ခ်င္း တလွမ္းခ်င္းေတာ့ ေက်ာ္ၿဖတ္ႏိုင္ခဲ့တာပဲေလ။

ႏွလံုးသားကို ညႊိဳ ့ယူ ဖမ္းစားတတ္သူေတြကေတာ့ သူ ့အကူအညီနဲ ့ပန္းပြင့္ေတြ ဖန္ဆင္းတတ္ႀကတယ္။ နတ္စီတဲ့ အိပ္မက္လွလွေတြ ဖန္တီးတတ္ႀကတယ္။ :P

သူဟာ က်ေနာ္တို ့ဘ၀ေတြအတြက္ေတာ့ တန္ခိုးရွင္တေယာက္လိုပါပဲ။
-------------------------------------------------------------------------------------

မိုးေတြတဖြဲဖြဲက်ေနတဲ့ ႀကားက အပူခ်ိန္ေတြၿမင့္မားေနစဲ စက္ရုပ္ၿမိဳ့ေတာ္ရဲ့ အလုပ္နားရက္တခုမွာေပါ့။ အိမ္ခ်င္းက တဘေလာ့သာၿခားေပမယ့္ တလတခါေတာင္မွာ မေတြ ့ၿဖစ္ႀကတဲ့ သူငယ္ခ်င္း အိမ္အလည္လာရင္း...
စကားေတြ ေဖာင္ဖြဲ ့ရင္းက ... သူ ့... အေႀကာင္းေတြဆီ ေရာက္သြားၿပီး ဒီဇာတ္လမ္းေလး စတင္ခဲ့တယ္...ဆိုပါေတာ့....။

ဒန္  ဒန္ ့ ဒန္
-----------------------------------------------------------------------------------
ဟိဟိ... ဘာမွဟုတ္ဘူး သက္လား... Dynamo Code တခုအေႀကာင္း ေၿပာမလို ့ အစပ်ိဳးတာ... :P

သူငယ္ခ်င္းက သူ ့အလုပ္ထဲက တခ်ိဳ  ့ Repetition ၿဖစ္ေနတဲ့ ကိစၥေတြ၊ Manually လုပ္ေနရတဲ့ တခ်ိဳ ့ Process ေတြအေႀကာင္း ေၿပာႀကရင္းက Sheet Number ေတြကို အလြယ္တကူ Rename/ Renumber  လုပ္ဖို ့ နည္းလမ္းရွာရင္းက ဒီ ရိုးရွင္းတဲ့ Dynamo Code ေလးကို ရွာေဖြေတြ ့ရွိခဲ့ႀကတာပါ။

 Revit မွာက Sheet Number ကို ထပ္လို ့မရတာက Software Limit တခုၿဖစ္ေနတာရယ္ေႀကာင့္ သက္ဆိုင္ရာ Authority ေတြအတြက္ ၿပင္ဆင္တဲ့ အခါ ဒီ Sheet ကိုပဲ Duplicate လုပ္ၿပီး Sheet Number ရဲ့ ေနာက္ဖက္မွာ Authority Name ကို Initial အေနနဲ ့ BCA, URA, LTA,... စသၿဖင့္ ၿဖည့္စြက္ေပးရေလ့ ရွိသတဲ့။

အတိုခ်ံဳးေၿပာရရင္ေတာ့ Sheet Number ကို XXX/XX/XXX(BCA) လို ့ေပးထားတဲ့ Sheet ေတြကိုပဲ  URA  ကို Issue လုပ္ခ်င္လာတဲ့အခါ Sheet Number တခုခ်င္းစီကို သြားၿပီး Rename လုပ္ေနရတာကို လြယ္ကူၿမန္ဆန္တဲ့ နည္းလမ္းရွာရင္းက ဒီ Dynamo Code ေလး ေရးၿဖစ္ခဲ့တယ္ ဆိုပါေတာ့။










ဒီ Code ရဲ့ ရည္ရြယ္ခ်က္ကေတာ့ ဖြင့္ထားတဲ့ Revit ဖိုင္ရဲ့ Sheet ေတြရဲ့ Sheet Number ေတြမွာ ပါ၀င္ေနတဲ့ Authority ရဲ့ Initial ေတြကို ကိုယ္ အစားထိုးခ်င္တဲ့ Authority ရဲ့ Initial ေတြနဲ ့ အစားထိုး Rename လုပ္ေပးတာပါပဲ။

Saturday 6 May 2017

BIM01.02 : ေထြရာေလးပါး BIM စကား၀ိုင္း - အပိုင္း(၂)

အခ်ိန္ကား ကဆုန္လၿပည့္ေက်ာ္ (၂) ရက္၊ တနလၤာေန ့။
စလံုးက တခ်ိဳ ့ေတြ ရံုးတက္ရၿပီး တခ်ိဳ ့ေတြရံုးပိတ္တဲ့ေန ့ေပါ့။ ကိုယ္ေတြကေတာ့ ကံေကာင္းစြာနဲ ့ပဲ အိမ္မွာႏွပ္ေနတယ္ ဆိုပါေတာ့။
ေၿမာက္ၿပန္ေလကလည္း ကိုယ္ေတြလို ရံုးမတက္ရတဲ့ သူေတြကို ဂုဏ္ၿပဳခ်င္လို ့ပဲလားေတာ့ မသိဘူး။ တၿဖဴးၿဖဴးနဲ ့ကို တိုက္ေနေတာ့တာပဲ။
တေယာက္တည္း ေယာင္ခ်ာခ်ာနဲ ့ ဘာလုပ္ရင္ ေကာင္းမလဲ စဥ္းစားရင္းက
တေလာက ရန္ကုန္ကေန ၀ယ္လာတဲ့ ဆရာဦးဆန္းလြင္ရဲ့” ရတနာ(၃)ပါးကို ယံုႀကည္ ကိုးကြယ္ ဆည္းကပ္လာသူတေယာက္ အေႀကာင္း” ဆိုတဲ့ စာအုပ္ကို ဖတ္ဖို ့ စိတ္ကူးလိုက္မိတယ္။ မႀကာပါဘူး ဖုန္းကနိုတီေတြ တက္လာေနတာနဲ ့ စာအုပ္ေလး ေဘးခ်ရင္း Facebook ေပၚ လက္ေရာက္သြားတယ္ဆိုပါေတာ့။
အဲဒီမွာတင္ Facebook ေပၚက ေဘာ္ဒါေဘာ္ကၽြတ္ေတြကို ေထာပနာၿပဳ ႀသဘာေပးရင္းက ခ်က္ေဘာက္ကေန ေမးခြန္းေလးတခ်ိဳ ့က တက္လာပါေလေရာ။

ညီငယ္ :
အကို
အကိုတို႔စလံုးမွာဘြဲ႕ယူခဲ့တယ္ ဆိုေတာ့ ကၽြန္ေတာ္ တခုေမးလို႔ ရမလားမသိဘူး။
ကၽြန္ေတာ္ :
ေမးလို႔ရပါတယ္ ညီ။ အကိုတို့ ယူခဲ့တာ ဘြဲ႔မဟုတ္ပါဘူး ဒီပလိုမာပါ။ ၿပီးေတာ့ BCA က ဘြဲ႔ကို တိုက္႐ိုက္ေပးလို႔မရဘူးထင္တယ္။ သူက Institute လည္းမဟုတ္၊ University လည္းမဟုတ္ဘူးဆိုေတာ့ေလ။ ဘြဲ႔အတန္းေတြဆို တျခား တကၠသိုလ္ေတြနဲ႔  Joint လုပ္ၿပီး ဖြင့္တာပဲ  ေတြ ့ ရတယ္။

ညီငယ္ :
BCA ကေပးတာလား အကို။
ကၽြန္ေတာ္ :
ဟုတ္တယ္။

ညီငယ္ :
အဲလိုရဖို႔ဆိုရင္အရင္ဦးဆံုးဘာျပင္ဆင္ထားရမလဲ အကို။

ကၽြန္ေတာ္ :
အရင္ဆံုး English Screening Test ကို ေအာင္ေအာင္ ေၿဖရတယ္။ ၿပီးေတာ့ ကိုယ္တက္ခ်င္တဲ့ Course အတြက္ လိုအပ္တဲ့ တၿခား Criteria ေတြနဲ ့လည္း ၿပည့္စံုဖို ့ေတာ့ လိုတယ္။
ဥပမာ SDip BIM အတြက္ဆိုရင္ အနည္းဆံုး Authoring/Modeling Software တခုခုကို တတ္ေၿမာက္ေႀကာင္း Certificate of Completion ေတြကို ၿပရတယ္။ Autodesk Software ဆိုရင္လည္း Autodesk ရဲ့ Authorized Training Center ကေပးတဲ့ Certificate ၿဖစ္ဖို ့ေတာ့ လိုတယ္။ မဟုတ္ရင္ BCA ကဖြင့္တဲ့ BIM Modeling Course ကို Bridging Course အေနနဲ ့ အရင္တက္ရတယ္။ အဲ့ Course ရဲ့ Certificate of Completion ကိုၿပႏိုင္မွ တက္ခြင့္ေပးတယ္။ ခုေနာက္ပိုင္း အေၿပာင္းအလဲ ရွိမရွိ ေတာ့ သိပ္မေသခ်ာဘူး။

ညီငယ္ :
BIM အတြက္သီးသန္႔သေဘာမ်ိဳးရွိလား အကို။

ကၽြန္ေတာ္ :
အကိုတို ့တက္ခဲ့တဲ့ Course ကိုက Specialist Diploma in BIM Course တဲ့။
BIM ကိုပဲ သီးသန္႔သင္တာ ညီ။
ညီငယ္ :
အဲဒါစာတမ္းျပဳစုရလား။

ကၽြန္ေတာ္ :
စာတမ္းရယ္ေတာ့ မဟုတ္ဘူး။ Group အလိုက္ Project လုပ္ရတယ္။ အဲ့ Project ကို Report အေနနဲ႔ေရးၿပီးတင္ရတယ္။ အဲ့ဒါကေတာ့ တဦးခ်င္းစီ အေနနဲ ့ေပါ့။
ၿပီးေတာ့ အဲ့ Project လုပ္ခဲ့ပံုကို Group အလိုက္ Presentation လုပ္ၿပီး ႐ွင္းျပရတယ္။ ကိုယ့္ Project ထဲမွာ ဘယ္လို BIM Uses ေတြကိုအသံုးၿပဳထားတယ္။ ဘယ္ေလာက္အထိ Project ရဲ့ ေအာင္ၿမင္မွုအေပၚမွာ အေထာက္အပံ့ ၿဖစ္ေစတယ္။ ဘယ္လို အက်ိဳးေက်းဇူးေတြကို ေတြ ့ၿမင္ ခံစားရတယ္။ စသၿဖင့္ေပါ့။
အဲ့ေလာက္ပါပဲ။
Module အေနနဲ႔(၈)ခု႐ွိတယ္။
ခုနကေျပာတဲ့ ဟာအားလံုးကို Module တခုအေနနဲ႔ လုပ္ရတာပါ။
ညီငယ္ :
တခါက Facebook က အကိုတေယာက္ Share တာဖတ္ဖူးတယ္။
Project လုပ္ၿပီး Report တင္တဲ့ေနရာၿပိဳင္ပြဲသေဘာလိုမ်ိဳးရွိတယ္ဆိုတာ။

ကၽြန္ေတာ္ :
ၿပိဳင္ပြဲရယ္ေတာ့ မဟုတ္ပါဘူး။
BIM Competition က သတ္သတ္႐ွိတယ္။ BCA ကပဲ ႀကီးမႉးၿပီးေတာ့
တႏွစ္တခါလုပ္တာ။ Singapore Construction Productivity Week (scpw) Event က်ရင္ Seminar ေတြ၊ ေဆာက္လုပ္ေရး ပစၥည္းၿပပြဲေတြနဲ ့ အတူ BIM Competition Award ေတြကို ခ်ီးၿမွင့္ႀကတာ။

ညီငယ္ :
အဲဒီမွာဆို ၿပိဳင္ပြဲရွိတယ္ေပါ့။

ကၽြန္ေတာ္ :
အရင္ႏွစ္ေတြကေတာ့ Company ေတြဝင္ၿပိဳင္ၾကတယ္။ အခုေနာက္ပိုင္း ေက်ာင္းသားေတြအတြက္ပဲ ႐ွိေတာ့တယ္ထင္တယ္။

ညီငယ္ :
ကၽြန္ေတာ ္BIM နဲ႔ပတ္သက္ၿပီး အေသးစိတ္သိခ်င္တယ္ အကို။
ဘယ္လိုလုပ္ရမလဲ။

ကၽြန္ေတာ္ :
ငါေတာင္ေရးေရးရယ္ 😂😂

ညီငယ္ :
ကၽြန္ေတာ္ေျပာခ်င္တာက
ကၽြန္ေတာ္ဘန္ေကာက္ေရာက္ေနတဲ့၂ႏွစ္အတြင္း
အေတြ႕အၾကံဳးရွာရင္း BIM ကိုေလ့လာမယ္။
အကို လမ္းညြန္ေပးပါလား။

ကၽြန္ေတာ္ :
ေလ့လာတာ ေကာင္းတာေပါ့။ ခက္တာက စာေတြ႔နဲ႔တင္မလံုဘူး ညီ။
အလုပ္နဲ႔တြဲလုပ္ရမွ ထိေရာက္တာ။
အကိုေတာင္ ၂၀၁၂ ကတည္းက အဲ့ ဘင္ဆိုတာကို လုပ္ေနတာပဲ။ အလုပ္ထဲမွာ Apply လုပ္ရတာ တႏွစ္ေလာက္ပဲ ႐ွိေသးတယ္။
ေက်ာင္းတက္ေနတုန္း ဆိုရင္ေတာ့ ေက်ာင္းစာနဲ႔ တြဲပီးေလ့လာေပါ့။
BIM ဆိုတာႀကီးကို တတ္ရမယ္ ဆိုတဲ့ စိတ္ေတာ့ မထားေစခ်င္ဘူး။ ကိုယ္ေလ်ွာက္လွမ္းဖို႔ ေရြးခ်ယ္ထားတဲ့ Ttrade ...ဥပမာ Archi ဆိုလဲ Archi, Struc ဆိုလဲ Struc... ကို Strong ျဖစ္ေအာင္ လုပ္ေစခ်င္တယ္။
၂၀၁၀ ေလာက္က လူသိမ်ားလက္ခံလာတဲ့ BIM ဆိုတာက IT နည္းပညာေတြ အရမ္းထြန္းကားလာတဲ့အေပၚမွာ အေျချပဳၿပီး AEC ရဲ႕ ယႏၱယားႀကီး အဆင့္ျမႇင့္တင္ဖို႔ ျဖစ္လာခဲ့တာ။
အေထာက္အကူျပဳ Platform သက္သက္လို ့ အႀကမ္းဖ်င္း ဆိုႏိုင္တယ္။
သူမ႐ွိလည္း အေဆာက္အဦးေတြက ေဆာက္ျမဲ ေဆာက္ေနရမွာ။
သူ႐ွိလာေတာ့ သူ႔ကို အသံုးခ်ၿပီး ပိုၿပီးျမန္ဆန္၊ ပိုၿပီးလြယ္ကူ၊ ပိုၿပီး တိက်ေသခ်ာတဲ့ ရလဒ္ေတြကို ဖန္တီးႏိုင္ၾကတယ္။
ဒါေပမယ့္ သူခ်ည္း သက္သက္ဆို ဘာမွ မဟုတ္ဘူး။
ေနာက္ဆိုရင္ BIM ဆိုတာ မပတ္သက္ခ်င္ရင္ေတာင္မွ ပတ္သက္ေနရေတာ့မယ့္ အရာတခု ျဖစ္လာေတာ့မွာ။
ကိုယ့္ Trade ကို Master ျဖစ္ေနေအာင္ႀကိဳးစားရင္း တဖက္ကလည္း ခုလို အေထာက္အကူျပဳ နည္းပညာေတြ၊ Platform ေတြကို ပိုင္ပိုင္ႏိုင္ႏိုင္ အသံုးခ်ႏိုင္ေအာင္ ႀကိဳးစားေပါ့။ အကို သိသေလာက္ကေတာ့ အတတ္ႏိုင္ဆံုး ႐ွင္းျပေပးမွာပါ။
BIM က ဘာနဲ႔တူသလဲ ဆိုရင္ စားပြဲဝိုင္းတခုနဲ႔ သဏၭာန္ တူတယ္။ သာမန္စားပြဲေတာ့မဟုတ္ဘူးေပါ့ကြာ။ အဆင့္ျမင့္ IT နည္းပညာေတြနဲ႔ ဖန္တီးထားတဲ့ စားပြဲဝိုင္းတခုေပါ့။
အဲ့ဒီစားပြဲဝုိင္း ပတ္ပတ္လည္မွာ လုပ္ငန္းနဲ႔ ပတ္သက္ေနတဲ့ လူတန္းစားမ်ိဳးစံုက ပတ္လည္ဝိုင္းေနမယ္။
ဒီလုပ္ငန္းႀကီး အလ်ွင္အျမန္နဲ႔ ကုန္က်စရိတ္ အသင့္တင့္ဆံုးနဲ႔ အခ်ိန္မီ ၿပီးစီးေအာင္ျမင္ဖို႔အတြက္ အားလုံးက သူတို႔ရဲ႕ အေတြ႔အၾကံဳေတြ၊ ဗဟုသုတာေတြ၊ အတတ္ပညာေတြ၊ အယူအဆေတြ ကို နည္းလမ္းကိုယ္စီနဲ႔ တင္ျပၾကမယ္။ အဲ့ဒီတင္ျပခ်က္ Input ေတြကို က်န္တဲ့ Stakeholder/ Team Member ေတြကလည္း နားလည္ၾကတယ္။ အဲ့လိုနာလည္ရျခင္းဟာ အဲ့ဒီစားပြဲဝိုင္းႀကီးက သတ္မွတ္ထားတဲ့ Language တခုေၾကာင့့္ပဲ။
ငါ့ညီ နားလည္မလားေတာ့ မသိဘူး။
အဲ့ဒီ Language ဟာ BIM Process ေတြပဲ။
အဲ့ဒီအတြက္ ဒီစားပြဲဝိုင္းမွာ စည္းကမ္းေတြ ထုတ္ထားရတယ္။ ဒီစားပြဲဝိုင္းပတ္ပတ္လည္မွာ ပါဝင္ေနၾကတဲ့ မည္သူမဆို ကိုယ္နဲ႔ သက္ဆိုင္တဲ့ အဆို ထင္ျမင္ယူဆခ်က္ ေတြကို Input လုပ္တဲ့အခါ က်န္တဲ့သူ႔ထက္ ရာထူးအဆင့္ နိမ့္သည္ျဖစ္ေစ ျမင့္သည္ျဖစ္ေစ က
သူ႔ Input ကို လက္ခံရမယ္၊ ေဝမ်ွရမယ္၊ အၾကံေပးရမယ္ လိုအပ္ခ်က္ေတြ ျဖည့္စြက္ရမယ္။
ဒါကို Collaboration လုပ္တယ္ ေခၚတာေပါ့ကြာ။
တေယာက္ရဲ႕ Input နဲ႔ တျခား တေယာက္ရဲ႕ Input အၾကား မွာ အၿငိအစြန္းမ႐ွိေစဖို႔ အတြက္၊ ျဖစ္လာရင္လည္း အဲ့ဒီ အၿငိအစြန္းကို ေျဖေလ်ာ့ဖို႔အတြက္ နည္းလမ္းေတြ ႐ွာၾကရတယ္။ အဲ့ဒါကိုေတာ့ Coordination လုပ္တယ္ ေခၚတာေပါ့။
အဲ့ဒီလို မတူညီတဲ့ Input ေတြကို လုပ္ငန္းအတြက္ အတူတကြေပါင္းစည္းၿပီး လုပ္ငန္းႀကီး အလ်ွင္အျမန္ေအာင္ျမင္ေအာင္ ေဆာင္ရြက္ျခင္းကိုေတာ့ Integration လုပ္တယ္လို႔ ဒီလိုပဲ အၾကမ္းဖ်င္း နားလည္ထားတယ္။
အဲ့ေတာ့ ဒီစားပြဲဝိုင္းႀကီးက သတ္မွတ္ထားတဲ့ Language ကိုအသံုးျပဳၿပီး Stakeholder/ Team Member အခ်င္းခ်င္း ပြင့္ပြင့္လင္းလင္း ေဆြးေႏြးမယ္၊ အၾကံျပဳမယ္။ လုပ္ငန္းမွာ ၾကံဳလာမယ့္ အခက္အခဲေတြကို ႀကိဳတင္မွန္းဆၿပီး အၾကံျပဳၾကမယ္။ အဲ့အခက္အခဲေတြကို ဘယ္လိုေက်ာ္ျဖတ္မလဲ ဆိုတဲ့ plan ေတြဆြဲႀကမယ္။ အဲ့ဒီလိုေတြလုပ္လို႔ရေအာင္ ဒီစားပြဲႀကီးက လိုအပ္တဲ့ နည္းပညာေတြကို ပံ့ပိုးေပးထားမယ္။
အဲ့ဒါ BIM ရဲ႕ သေဘာသဘာဝပဲလို႔ အကိုယူဆတာပဲ။ သူမ်ားေတြယူဆတာနဲ႔ေတာ့ တူခ်င္မွ တူမွာေပါ့ကြာ။
ေခါင္း႐ႈပ္သြားၿပီလားေတာ့ မသိဘူး။ 😜

ညီငယ္ :
မရႈပ္ပါဘူး အကို ကၽြန္ေတာ္နားလည္တယ္။
အကိုေျပာတဲ့စကားဝိုင္းက VDC ရဲ႕သေဘာတရားေပါ့ေနာ္။

ကၽြန္ေတာ္ :
BIM ဆိုတဲ့ေနရာမွာက Little BIM နဲ႔ Big BIM ရယ္ဆိုၿပီး ေျပာလို႔ရတယ္။ အခု Revit ကိုသံုးၿပီး Information Modeling လုပ္ေနၾကတာကို BIM လုပ္ေနတယ္လို႔ေျပာရင္ ျငင္းလို႔မရဘူး။ ဘာလို႔ဆို Modeling ကို Information နဲ႔ Attach လုပ္ထားရင္ BIM မည္တာပဲေလ။ သာမန္ Modeling ထက္သာလြန္ထက္မ်က္တဲ့ Intelligent ျဖစ္တဲ့ Modeling ကို ဖန္တီးေနလို႔ေလ။ သူကေန AEC လုပ္ငန္းႀကီးတေလ်ွာက္လံုးအတြက္ လိုအပ္တဲဲ့ info ေတြကို စပြားဖန္တီးသယ္ေဆာင္ႏိုင္လို႔ပဲ။ ၿပီးေတာ့ အဲ့ဒီ Info ေတြကို Software Platform တခုကေန တျခားတခုကို Exchange လည္း လုပ္ႏိုင္တယ္။ ေျပာရရင္ေတာ့ Little BIM ရဲ႕ Process ကို Support လုပ္ႏိုင္တယ္။ သူ႔မွာလည္း Modeling အျပင္ Management ကိုပါ ဂ႐ုျပဳလုပ္ေဆာင္ရတာပဲ။ ဒါေပမယ့္ သူ႔ရဲ႕ လုပ္ေဆာင္မႈကေေတာ့ ေဘာင္နဲနဲက်ဥ္းတာေပါ့။
Big BIM မွာက်ေတာ့ လုပ္ေဆာင္ခ်က္ေတြက ပိုၿပီး က်ယ္ျပန္႔သြားၿပီ။ သူ႔အတြက္ လုပ္ေဆာင္ရတဲ့ Management Process ကလည္း ပိုၿပီး မ်ားျပားလာတယ္။ သံုးရတဲ့ Tools ေတြကလည္း ပိုမ်ားလာတာကိုး။ Integration Process အႀကီးစားႀကီးျဖစ္လာတယ္။ အကိုေျပာတဲ့ စားပြဲဝိုင္းႀကီးက ပိုၿပီးလည္း ၿမိဳင္ဆိုင္လာတယ္လို႔ ဆိုရမယ္။
အဲ့ဒီကေနၿပီးေတာ့ Big BIM Process ေတြဟာ Construction Management/ Project Management Process ေတြနဲ႔ပါ Integrate လုပ္ႏိုင္တဲ့ အဆင့္ကို တက္လွမ္းလာတဲ့အခါမွာ VDC ဆိုတာႀကီး ျဖစ္လာေတာ့တာပဲ။
ေနာက္ဆံုးရည္မွန္းခ်က္ကေတာ့ IPD လို႔ေခၚတဲ့ Integrated Project Delivery (IPD) လုပ္ဖို႔အတြက္ျဖစ္လာခဲ့ေတာ့တာပဲ။ BIM ကိုစတင္ခဲ့ကတည္းက အဲ့ဒီ IPD လုပ္ႏိုင္ဖို႔အတြက္ ရည္မွန္းခဲ့ၾကေပမယ့္ အဟန္႔အတား (Obstacle ေတြအမ်ားႀကီးကို ေက်ာ္ျဖတ္ေနၾကရေတာ့ သူတို႔သြားခ်င္တဲ့ IPD ကို လြယ္လြယ္နဲ႔ မေရာက္ႏိုင္တာလည္း ပါတာေပါ့။ ၿပီးေတာ့ နည္းပညာရဲ႕အေထာက္အပံ့ေတြကလည္း သိပ္ အဆင္သင့္ မျဖစ္ၾကေသးဘူးေလ။ အဲ့ဒါအျပင္ Stakeholder/ Team Member ေတြအားလံုးက ဒီ Process ရဲ႕ Function ေတြနဲ႔ အကြၽမ္းတဝင္မ႐ွိခဲ့ေသးတာ၊ Benefit ေတြအေပၚမွာ ယံုၾကည္မႈအားနည္းေနခဲ့ ေသးတာေတြလည္း ပါတာေပါ့။
အခုေတာ့ Stakeholder/ Team Member အေတာ္မ်ားမ်ားက BIM ရဲ႕ အႏွစ္သာရကို ယံုၾကည္လာေနၾကပါၿပီ။ တခ်ိန္တည္းမွာနည္းပညာေတြရဲ႕ အေထာက္အပံ့စြမ္းအားေတြကလည္းတေန ့ထက္တေန ့ အံ့မခန္း တိုးတက္လာတယ္ေလ။ ၿပီးေတာ့ BIM ရဲ႕ အက်ိဳးေက်းဇူးေတြကိုလည္း မ်က္ျမင္ သိ႐ွိလာၾကၿပီ။
ေျပာရရင္ လူေတြ ဒီ Integrated Process ႀကီးကို သက္ဝင္ ယံုၾကည္လာၾကၿပီ လို႔ ဆိုႏိုင္တယ္။ ဒါေတာင္ သံသယေတြကေတာ့ ၾကားခံေနဆဲပဲ။
တခ်ိဳ႕ကေတာ့ Technological Revolution လို႔ ဆိုၾကသလို တခ်ိဳ႕ကလည္း Technological Evolution လို႔ ယံုၾကည္ၾကတယ္။
ဘယ္လိုပဲျဖစ္ျဖစ္ လုပ္႐ိုးလုပ္စဥ္ေတြကေန ေသြဖယ္ေက်ာ္လႊားၿပီး Change ဆိုတာကိုေတာ့ မလြဲမေသလုပ္ေဆာင္ၾကရမယ္ ဆိုတာကေတာ့ အေသအခ်ာ ေျပာလို႔ရတယ္။ မဟုတ္ရင္ ဓေလ့ထံုးစံအေဟာင္းေတြရဲ႕ လႊမ္းမိုးမႈကေန ေဖာက္ထြက္ေက်ာ္လႊားႏိုင္ဖို႔ သိပ္မလြယ္လွဘူး။
ငါ့ညီနဲ႔ ခ်က္ေတာ့မွ အကိုလည္း ႀကီးႀကီးက်ယ္က်ယ္ေတြ ေျပာတတ္လာသလိုပဲ 😝😝

ညီငယ္ :
ရပါတယ္ အကို
ကၽြန္ေတာ္လည္း အကိုနဲ႔ေတြ႕မွပိုနားလည္သြားတယ္။

ကၽြန္ေတာ္ :
စိတ္ထဲမွာ အဲ့အေၾကာင္းေတြ ပို႔စ္အေနနဲ႔ ေရးျဖစ္ဖို႔ စဥ္းစားေသးတယ္။ ဘယ္ကစရမလဲ အစ႐ွာမရ ျဖစ္ေနတာ။

ညီငယ္ :
အကို
Stakeholder/ Team Member ေတြက Sub-con ေတြကိုေျပာတာလား။

ကၽြန္ေတာ္ :
Stakeholder/ Team Member ဆိုတာ ပေရာ့ဂ်က္ထဲ ပါဝင္ပတ္သက္သူ အားလံုးကို ဆိုလိုတာပါ။
ေအာက္ေျခ Modeler ကအစ Client အဆံုးေပါ့။
တေန႔ေတာ့ ငါ့ညီနဲ႔ ေဆြးေႏြးခဲ့တာေလးေတြကို ပို႔စ္တခုအေနနဲ႔ တင္ပါအံုးမယ္။ ဒါမွလည္း တျခားသူေတြရဲ႕ Opinion ေတြပါ သိရမွာ။ အကိုေျပာတာေတြက မွန္ခ်င္မွလည္း မွန္မွာကိုး။

ညီငယ္ :
အျခားေသာသူေတြရဲ႕ Opinion ေတြမ်ားမ်ားရမွညီတို႔ ဒီစနစ္ေဟာင္းကိုေဖာက္ႏိုင္မွာ။
ကၽြန္ေတာ္ကခ်ာတိတ္ပဲရွိေသးတယ္ဆိုေတာ့ဒီစကားမေျပာသင့္မွန္းသိပါတယ္အကို။
တေန႔စက္မႈေတာ္လွန္ေရး ျဖစ္သလို။
BIM ေတာ္လွန္ေရးေတြေပါ့ေနာ္။

ကၽြန္ေတာ္ :
ေတာ္လွန္ေရး ဆိုတာက ေတာ္လွန္ၿပီးရင္ သူ႔အလုပ္က ၿပီးဆံုးသြားတာ။ ဆင့္ကဲျဖစ္စဥ္က်ေတာ့ တစိုက္မတ္မတ္ တိုးတက္ျဖစ္ထြန္းေအာင္ လုပ္ေနရတာေလ။

ညီငယ္ :
ဟုတ္ကဲ့ အကို

ကၽြန္ေတာ္ :
အဲ့ေတာ့ အကို႔သေဘာဆိုရင္ေတာ့ Evolution ကို ပိုၿပီးသေဘာက်တယ္။

ညီငယ္ :
Evolution က အမွန္တကယ္လိုအပ္တယ္ေလ။ေနာက္ ၃ႏွစ္ ေနဘာ Software ထြက္လာမွန္းမွ မသိေသးတာ။
ကိုရဲေဇာ္လင္း ေရးထားတဲ့ Post မွာလိုေပါ့။ IIM Modeling ရေနၿပီမဟုတ္လား အကို။

ကၽြန္ေတာ္ :
အဲ့ဒါေတာ့ အမွန္ပဲ။ လြန္ခဲ့တဲ့ ဆယ္စုႏွစ္ေလာက္က စလို႔ BIM ဆိုတာ ျဖစ္လာေပမယ့္ မ်က္ေမွာက္ေခတ္မွာ VDC က ေခါင္းျပဴဦးေမာ့လာၿပီေလ။ ေနာက္ထပ္ လာမယ့္ဆယ္စုႏွစ္တခုမွာ VDC ထက္ ပိုၿပီး ထက္မ်က္တဲ့၊ အက်ိဳး႐ွိတဲ့ Process ေတြက ေပၚလာအံုးမွာပဲ။

BIM01.01 : ေထြရာေလးပါး BIM စကား၀ိုင္း - အပိုင္း(၁)


Facebook ေပၚမွာ သိကၽြမ္းခင္မင္ခြင့္ရခဲ့တဲ့ ညီငယ္တေယာက္နဲ ့ အလာဘ သလာဘေၿပာၿဖစ္ခဲ့တဲ့ ေထြရာေလးပါး BIM ေတြကိုတၿခား ညီအကိုေမာင္ႏွမ သူငယ္ခ်င္းေတြကိုပါ ပါ၀င္ေဆြးေႏြးေစခ်င္တာနဲ ့ ဆႏၵနဲ ့ ဒီပိုစ္ေလး တင္ၿဖစ္လိုက္ပါတယ္။
ကနဦး ေၿပာလိုတာကေတာ့ ကၽြန္ေတာ္ဟာ BIM ဂရုတေယာက္ မဟုတ္ေသးတဲ့ အညတရ ဘင္မာတေယာက္ ဆိုတာပါပဲ။ ဒီ BIM ခရီးကို 2012 ေလာက္က စတင္ခဲ့ေပမယ့္ ကံတရားရဲ့ မ်က္ႏွာသာ အေပးခံရမွု အားနည္းခဲ့တာရယ္၊ ကိုယ္ကိုယ္တိုင္က ၀ီရိယနည္းတာရယ္ေႀကာင့္ ေရာက္သင့္သေလာက္ ခရီးမတြင္ခဲ့ဘူး လို ့ ဆိုရမွာပါပဲ။
ဘာပဲၿဖစ္ၿဖစ္ အခုလို သိခ်င္တတ္ခ်င္တဲ့ ညီအကိုေတြနဲ ့ဆံုရၿပန္ေတာ့လည္း ကိုယ္သိထား သင္ထားတာေတြအၿပင္ ကိုယ့္ရဲ့ ထင္ၿမင္ယူဆခ်က္ေတြကိုပါ မွ်ေ၀ေနခဲ့မိတယ္။ အမွန္နဲ ့ အမွား ဒြိဟေလာကႀကီးထဲ ကိုယ္ထင္ထား သိထားတာေတြဟာ အမွန္ေတြခ်ည္းပဲ လို ့ မဆိုႏိုင္ပါ။ အဲ့ဒီအတြက္ ေထာက္ၿပေ၀ဖန္ အႀကံၿပဳ ေဆြးေႏြးမွုေတြကလည္း အမွန္တကယ္ပဲ လိုအပ္လာပါတယ္။ ကၽြန္ေတာ့္အတြက္ေရာ ကၽြန္ေတာ့္ကို ေမးၿမန္းေဆြးေႏြးေနတဲ့ ညီငယ္ အတြက္ေရာေပါ့။ ဒါနဲ ့ ဒီပိုစ္ေလးကို တင္ၿဖစ္ခဲ့တယ္ ဆိုပါေတာ့။

ညီငယ္ :
အကို Navisworks က Hard Clash နဲ႔ Soft Clash ကို Check လုပ္ဖို႔ပဲလား။
အျခားဘာလုပ္လို႔ရေသးလဲ အကို။

ကၽြန္ေတာ္ :
Navisworks ရဲ႕ အဓိကရည္ရြယ္ခ်က္ကေတာ့ Clash Detection အတြက္ေပါ့။ Clash ဆိုေတာ့ Hard ေကာ Soft ေကာ အက်ံဳးဝင္တာေပါ့။
အဲ့ဒါအျပင္...
4D timeline ဆြဲလို႔ရတယ္။
Quantification ထုတ္လို႔ရတယ္။
Render လုပ္လို႔ရတယ္။
Walkthru Animation နဲ႔ Object Animation အနဲအက်ဥ္း လုပ္လို႔ရတယ္ ညီ။

ညီငယ္ :
4D Timeline က Footing တခုကို ဘယ္ေလာက္အခ်ိန္နဲ႔ၿပီးမွာလဲ။ ၿပီးရင္ Floor ေတြက တဆင့္ခ်င္းစီလာတာကိုေျပာတာလား အကို။
Phase နဲ႔တူလား အကို။

ကၽြန္ေတာ္ :
ဟုတ္တယ္ညီ
Construction လုပ္ငန္းေတြကို အခ်ိန္နဲ႔တေျပးညီ ဘာေတြကို ဘယ္အခ်ိန္မွာ လုပ္မယ္ ဆိုတဲ့ Schedule ကို Model နဲ႔ ခ်ိတ္ၿပီး Animation ဆန္ဆန္ လုပ္တာ။
MS Project တို႔ Primavera တို႔မွာက Schedule Chart ေတြပဲထြက္ေတာ့ ဒီေလာကထဲက လူေတြေလာက္ပဲ နားလည္ၾကတာ။ ၿပီးေတာ့ လစ္ကြက္ဟာကြက္ေတြက အလြယ္တကူမျမင္ႏိုင္ဘူးေလ။
4D နဲ႔ ျပလိုက္ေတာ့ ေတာ္ရံုလူပ်ိန္းေတာင္ ဘာၿပီးရင္ ဘာလုပ္မယ္ ဆိုတာကို တန္းျမင္ႏိုင္တယ္။ အေရးႀကီးတဲ့ ဆံုးျဖတ္ခ်က္ေတြကို Design Stage မွာတင္ လြယ္လြယ္ကူကူ ဆံုးျဖတ္န္ုင္တယ္။
တို႔စက္ရံုေတြဆို ပိုဆိုးတာေပါ့။ တခ်ိဳ႕ Equipment ေတြက အႀကီးႀကီးေတြ။ သူတို႔ကို Construction ၿပီးမွ ေနရာခ်လို႔ မရဘူး။ Under Construction က Timeline ရဲ႕ Point တခုမွာ ခ်ရတာ။

Phase ရဲ့သေဘာက လုပ္ငန္းႀကီးကို အပိုင္းအလိုက္ခြဲထားတဲ့ သေဘာပဲ။ ဒီအပိုင္းကို ဒီ Period မွာ ၿပီးေအာင္လုပ္မယ္။ ဒီအပိုင္းကိုေတာ့ ေနာက္ Period မွာ လုပ္မယ္ဆိုတဲ့ သေဘာမ်ိဳး ပါတယ္။
4D Timeline က်ေတာ့ အဲ့ဒီ Phase တခုခ်င္းစီရဲ့ ေအာက္မွာရွိေနတဲ့ Parallel အေနနဲ ့ Run ေနတဲ့ လုပ္ငန္းေတြကို ၿဖစ္ေစ၊ တခုၿပီးမွ ေနာက္တခု လုပ္လို ့ရမယ့္ လုပ္ငန္းေတြကိုၿဖစ္ေစ သူ ့ အခ်ိန္ဇယား အတိုင္း အံ၀င္ဂြင္က် ၿဖစ္ေနေစဖို ့အတြက္ တတ္သိနားလည္တဲ့ ပညာရွင္ေတြက Project Schedule ေတြ၊ Construction Sequence ေတြကို ေရးဆြဲႀကတယ္။ ၿပီးေတာ့ လုပ္ငန္းထဲမွာ ပါ၀င္ပတ္သက္ေနတဲ့ Stakeholder ေတြရဲ့ အႀကံၿပဳ ေဆြးေႏြးၿဖည့္စြက္ခ်က္ေတြ အေပၚမွာ အၿပန္အလွန္ေဆြးေႏြးညွိႏွိုင္းၿပီး အၿဖစ္သင့္ဆံုး ရလဒ္ေတြ၊ ဆံုးၿဖတ္ခ်က္ေတြကို ေဖာ္ေဆာင္ႀကရတယ္။ ဒီေနရာမွာ BIM ရဲ့ 4D Timeline က မတူညီတဲ့ အဖြဲ ့အစည္းေတြႀကား၊ မတူညီတဲ့ ထင္ၿမင္ယူဆ အႀကံၿပဳခ်က္ေတြႀကားမွာ ေပါင္းကူးဆက္သြယ္ ကူညီအေၿဖရွာေပးတဲ့ Tool တခုအၿဖစ္ ရပ္တည္ေပးလာႏိုင္တယ္။
4D Timeline ဟာ BIM ရဲ့ Uses ေတြထဲက တခု လို ့ ဆိုရမွာေပါ့ကြာ။

ညီငယ္ :
ခုလိုေၿဖႀကားေပးတာ ေက်းဇူးပါ အကို။
ကဆုန္လျပည့္ဥပုသ္ေန႔မွာက်န္းမာရႊင္လန္းၾကပါေစ။
အကို ဥပုသ္စာင့္ေနတယ္ထင္တယ္။

ကၽြန္ေတာ္ :
ေစာင့္ပါဘူး ညီ။ တရားဘာ၀နာ အားထုတ္ဖို ့က ငယ္ေနေသးသလားလို ့…😜😜

Monday 1 May 2017

DYN05.02 : Dynamo Code မ်ားႏွင့္ ကခုန္ၿခင္း - အပိုင္း(၂)

မဂၤလာပါ။

ၿပီးခဲ့တဲ့ Post မွာတုန္းက Revit ထဲမွာ ဖန္တီးထားတဲ့ Element ေတြရဲ့ Information ေတြကို Dynamo မွာ Extraction လုပ္ပံု၊ ၿပီးေတာ့ MS Excel ဆီ Data Exchange လုပ္ပံုေတြကို တင္ၿပခဲ့ၿပီး ၿဖစ္ပါတယ္။

ဒီ Post မွာေတာ့ Dynamo ကို အသံုးၿပဳၿပီး MS Excel ဆီက Information ေတြကို Revit ရဲ့ Element ေတြနဲ ့ ခ်ိတ္ဆက္ အလုပ္လုပ္ပံုကို တင္ၿပေဆြးေႏြးသြားမွာ ၿဖစ္ပါတယ္။

ပထမ Video မွာေတာ့  အရင္ဆံုး MS Excel ထဲမွာ ဖန္တီးထားတဲ့ Room တခုရဲ့ Information ေတြကို Dynamo မွာ Extract လုပ္ပံုအဆင့္ဆင့္ကို တင္ၿပေဆြးေႏြးထားပါတယ္။ ၿပီးေတာ့မွ Revit ထဲက Room ရဲ့ Parameter ေတြနဲ ့ ခ်ိတ္ဆက္ၿပီး Room Schedule ကို Update လုပ္ပံုကို တင္ၿပေဆြးေႏြးထားပါတယ္။ ဒီ Process ရဲ့ အားနဲခ်က္ကေတာ့ Revit ထဲက Element ေတြရဲ့ Parameter နဲ ့MS Excel ထဲမွာ ဖန္တီးထားတဲ့ Information ေတြအႀကားမွာ မွန္မွန္ကန္ကန္ ခ်ိတ္ဆက္ႏိုင္တဲ့ Link တခု လြတ္ေနတာပါပဲ။ MS Excel ထဲမွာ Information အမ်ိဳးအစားတခုအေပၚ အေၿခခံၿပီး Sorting လုပ္လိုက္တဲ့အခါမွာ Revit ရဲ့ Parameter ေတြဟာ ကေမာက္ကမေတြ ၿဖစ္သြားပါမွာ ၿဖစ္ပါတယ္။

ဒီ Process ကို သံုးမယ္ဆိုရင္ အရင္ဆံုး Information ကို Revit ကေနပဲ စၿပီး (Write to Excel) ထုတ္သင့္ပါတယ္။ အဲ့ဒီလို ထုတ္တဲ့ အခါမွာလည္း Element ID ကိုပါ ထည့္ေပးလိုက္ဖို ့ လိုအပ္ပါမယ္။ အဲဒီ Revit ကေန ထုတ္လိုက္တဲ့ Information ေတြကို MS Excel မွာ ဖြင့္ႀကည့္တဲ့ အခါမွာ Information ေတြ  Element ID ရဲ့ Value အလိုက္ စီေပးထားတာကို ၿမင္ေတြ ့ႀကရမွာပါ။ 

MS Excel ထဲမွာ လိုအပ္ခ်က္ေတြ Fill in လုပ္ၿပီး Revit ဆီ ၿပန္မပို ့ခင္ စစ္ေဆးရမွာက Element ID ေတြကို Smallest to Largest အတိုင္း Sorting ၿပန္လုပ္ေပးဖို ့ပါပဲ။ ၿပီးေတာ့ MS Excel ရဲ့ Row ေတြဟာ Information ေတြ တခုနဲ ့တခုအႀကားမွာ Empty Row ေတြရွိေနလို ့မရပါဘူး။



ဒါေႀကာင့္ပဲ ဒုတိယ  Video ကို ဖန္တီးလိုက္ရပါတယ္။

ဒီ Video မွာေတာ့ Bakery Package ထဲက Search One List Based on Second List and Get Values ဆိုတဲ့ Node ကို ထည့္သြင္း အသံုးၿပဳထားပါတယ္။
 ဒီ Node မွာ Input (၄) ခု ပါ၀င္ေနၿပီး ပထမ တခုၿဖစ္တဲ့ listOfValuesToFind ကေတာ့ Revit Element ေတြထဲက ကိုယ္ Handle လုပ္ခ်င္တဲ့ Parameter ေတြရဲ့ Value ေတြကို ခ်ိတ္ဆက္ဖို ့ပါ။

ဒုတိယတခုၿဖစ္တဲ့ listToSearchForValues ဆိုတာကေတာ့  ပထမ Input Value ေတြနဲ ့ တူညီတဲ့ Information ေတြကိုရွာဖို ့အတြက္ MS Excel ထဲက Revit Handle လုပ္မဲ့ Parameter ေတြနဲ ့အမ်ိဳးတူတဲ့ List ကို ခ်ိတ္ဆက္ဖို ့ပါ။

ေနာက္ဆံုးတခုၿဖစ္တဲ့ listToGetValuesFrom ဆိုတာကေတာ့ ပထမ Input Value ေတြနဲ ့ဒုတိယ Input Value ေတြ တူညီတယ္ ဆိုရင္ Follow up လုပ္ခိုင္းရမယ့္ MS Excel ထဲက Information List တခုကို ခ်ိတ္ဆက္ဖို ့ပါ။

တတိယတခု အတြက္ကေတာ့ String Input အေနနဲ ့ Place Null လို ့ ရိုက္ၿပီး ခ်ိတ္ဆက္ေပးရံုပါပဲ။ အေႀကာင္းကေတာ့ ပထမ Input Value ေတြနဲ ့ တူညီတဲ့ Information ေတြကိုရွာမေတြ ့တဲ့အခါ Error/ Warning မတက္ေအာင္ ကာထားတဲ့ သေဘာပါပဲ။ (ဥပမာ Empty Row ေတြလိုမ်ိဳးေတြေတြ ့တဲ့အခါမ်ိဳးေပါ့။)

ဒီ ဒုတိယ  Video ထဲက Code ကို အသံုးၿပဳမယ္ ဆိုရင္ေတာ့ Excel မွာ Table ေတြကို စိတ္တိုင္းက် လြတ္လပ္စြာ ေရးဆြဲႏိုင္ပါတယ္။ Exchange လုပ္ခ်င္တဲ့ အခါက်မွသာ Revit ရဲ့ Handle လုပ္ခ်င္တဲ့ Parameter ေတြအေပၚ အေၿခၿပဳၿပီး Excel ထဲက Information ေတြကို  Extract လုပ္ႏိုင္ပါေႀကာင္း....


ေအာက္က Link (၂)ခုကေနလည္း ေဒါင္းယူႏိုင္ႀကပါတယ္။
http://www.mediafire.com/file/ynee2vcxq1nd2bp/ExcelVsDynVsRevit001.wmv
http://www.mediafire.com/file/j6fxn611f3j181x/ExcelVsDynVsRevit002.wmv

Sunday 30 April 2017

BIM00.01 - BIM Software ေတြအတြက္ System Requirements

မဂၤလာပါ...

ဒီ Post မွာ အဓိက တင္ၿပခ်င္တဲ့ အေႀကာင္းအရာကေတာ့ BIM ေလာကထဲ က်င္လည္ႀကမယ့္ ညီအကို ေမာင္ႏွမေတြ ေမးေလ့ရွိႀကတဲ့ Common Question ေလးတခုအေႀကာင္းပါပဲ။

ဘယ္လို Laptop/ Desktop မ်ိဳးဟာ BIM သမားေတြအတြက္ အသင့္ေတာ္ဆံုးလဲ....တဲ့

Budget အကန္ ့အသတ္သာ မရွိဘူး ဆိုရင္ေတာ့ Workstation အမ်ိဳးအစားေတြကိုပဲ သံုးစြဲႀကဖို ့ တိုက္တြန္းမိမွာပါပဲ။ ဘာလို ့လဲ ဆိုေတာ့...
Processor အားၿဖင့္ ႀကည့္ရင္လည္း အနိမ့္ဆံုး Quad Core ကစႀကၿပီး အၿမင့္ဆံုး 22 Core ေလာက္အထိ ရွိႀကတာ ဆိုေတာ့ Multi-tasking အတြက္က စိတ္ပူစရာကို မလိုေတာ့တာ။
RAM (Random Access Memory) အားၿဖင့္ ႀကည့္မယ္ ဆိုရင္လည္း အၿမင့္ဆံုး Slot က 16ခုအထိ ရႏိုင္တာ ဆိုေတာ့ တြက္သာ ႀကည့္ေပေတာ့ဗ်ာ။ Market ထဲမွာ အၿမင့္ဆံုး 16GB ပဲရတယ္ထားအံုးေတာ့။ RAM 256GB ရေနၿပီေလ။
Graphic Card အေနနဲ ့ ဆိုရင္လည္း Nvidia Quadra P-series ေတြေတာင္ ထြက္ေနႀကၿပီ။
တခုပဲ...အဲ့ဒီ High-End System ေတြထည့္ၿပီး Run ဖို ့ဆိုရင္ေတာ့ ေတာ္ရံု Cooling System ေတြနဲ ့ေတာ့ ရႏိုင္မယ္ မထင္ဘူး။

တကယ္ေတာ့ Workstation အမ်ိဳးအစားေတြကို လုပ္ငန္းသံုးအေနနဲ ့ထုတ္ထားႀကတာမို ့ ေစ်းကလည္း ေခါင္ခိုက္ေနမွာပါပဲ။ Personal အေနနဲ ့ ဆိုရင္ေတာ့ ROI (Return of Investment) ထည့္သြင္းစဥ္းစားၿပီးမွ သံုးသင့္ မသင့္ကို ဆံုးၿဖတ္သင့္ပါတယ္။

မစားရ ၀ခမန္းေတြ ေရးေနတာနဲ ့ လိုရင္းမေရာက္ဘူး ၿဖစ္ေနတယ္။

BIM Authoring Software ဆိုတာနဲ ့ အမ်ားစု ေၿပးၿမင္မိမွာကေတာ့ Autodesk ရဲ့ Revit ပဲ ၿဖစ္မယ္ထင္ပါတယ္။ တၿခားေသာ BIM Authoring Software ေတြ ရွိေနလင့္ကစား Autodesk ရဲ့ Revit ကေတာ့ လူသိမ်ားစဲ၊ လူအသံုးမ်ားစဲ ဆိုတာ ၿငင္းလို ့ရမယ္ မထင္ပါဘူး။ အခုဆိုရင္ Revit 2018 ကလည္း ထြက္လာၿပီမို ့ သူ ့ကိုယ္အေၿခခံၿပီးပဲ System Requirements ေတြကို တင္ၿပေပးလိုက္ပါတယ္။ System Requirements ကို အမ်ိဳးအစား (၃)မ်ိဳးနဲ ့ ၿမင္ေတြ ့ႏိုင္မွာ ၿဖစ္ပါတယ္။
1) Minimum : Entry-level Configuration
2) Value : Balance Price and Performance
3) Performance : Large, Complex Model

ဒါ့အၿပင္ Revit အတြက္ Autodesk ကေန Recommend လုပ္ထားတဲ့ Graphic Card စာရင္းကိုပါ တင္ၿပေပးထားပါတယ္။ အဲ့ဒီစာရင္းထဲက Graphic Card အမ်ိဳးအစားေတြဟာ Workstation အမ်ိဳးအစား ေတြမွာပဲ ၿမင္ေတြ ့ႏိုင္တာၿဖစ္ပါတယ္။
PC တလံုး ၀ယ္ေတာ့မယ္ ဆိုရင္ အရင္ဆံုး စဥ္းစားရမယ့္ အခ်က္ေတြကေတာ့
၁။ ဘာအတြက္ အသံုးၿပဳဖို ့လဲ
၂။ Budget ဘယ္ေလာက္ သံုးမွာလဲ
၃။ ၀ယ္မယ့္ PC ဘယ္ႏွႏွစ္ေလာက္ အမ်ားဆံုး သံုးမွာလဲ
... စသၿဖင့္ ေမးဖို ့ လိုအပ္ပါတယ္။

ဘာအတြက္ အသံုးၿပဳဖို ့လဲ
ကိုယ္၀ယ္မယ့္  PC ကို ဘာအတြက္ အသံုးၿပဳဖို ့လဲဆိုတာကို အရင္သံုးသပ္ဖို ့လိုပါတယ္။ ေစ်းေလး သက္သာလို ့၊ ဒီဇိုင္းေလး ဆန္းလို ့ ဆိုၿပီး PC တလံုး ၀ယ္ထားမိၿပီးကာမွ AutoCAD ေလး သံုးခ်င္လာတာတို ့၊ 3D Software ေတြသံုးခ်င္လာတာတို ့ၿဖစ္တဲ့အခါ အေတာ္ေလး စိတ္ဒုကၡေရာက္ႀကရပါတယ္။ စက္အသစ္ ထပ္၀ယ္ၿပန္ေတာ့လည္း လက္ရွိစက္က အပိုၿဖစ္သြားမယ္။ ၿပန္ေရာင္းရင္လည္း သံုးခ်ိဳး ႏွစ္ခ်ိဳးရရင္ ကံေကာင္းပဲ။ IT ပစၥည္းေတြက ဘယ္ေတာ့မွ ေစ်းတက္လာတယ္ရယ္လို ့ မရွိဘူးေလ။

Budget ဘယ္ေလာက္ သံုးမွာလဲ
ဒါကလည္း အေရးႀကီးတာပဲ။  Budget ေတြအမ်ားႀကီးသံုး၊ အၿမင့္ဆံုး Spec ေတြ၀ယ္ၿပီး Facebook ေလာက္သံုး၊ Word/ Excel ေလာက္သံုး၊ Movie ေလာက္ပဲ ႀကည့္ေနမယ္ ဆိုရင္လည္း အလကားပဲ။ Budget နဲနဲ နဲ ့ ေပါေခ်ာင္ေကာင္း ၀ယ္ၿပီးကာမွ ဟိုဟာ လုပ္မရ၊ ဒီဟာ သံုးမရ ဆိုၿပန္ရင္လည္း အဆင္မေၿပၿပန္ဘူး။

၀ယ္မယ့္ PC ဘယ္ႏွႏွစ္ေလာက္ အမ်ားဆံုး သံုးမွာလဲ
PC တလံုးဟာ အနဲဆံုး (၃) ႏွစ္ကေန (၅) ႏွစ္ေလာက္အထိေတာ့ အသံုးၿပဳဖို ့မွန္းထားသင့္တယ္။ အဲ့ဒီကာလအတြင္းမွာ အဲ့ဒီ PC ဘာေတြလုပ္မယ္ ဆိုတာကိုလည္း ႀကိဳတင္ၿပီး စဥ္းစားထားသင့္တယ္။ ဒါမွလည္း PC အတြက္ ကိုယ္သံုးလိုက္ရတဲ့ Budget ဟာ အက်ိဳးမဲ့ မၿဖစ္မွာေပါ့။

CAD/BIM ေလာကထဲ က်င္လည္ေနသူတေယာက္အေနနဲ ့ အႀကံၿပဳခ်င္တာကေတာ့
၁။ Laptop နဲ ့ Desktop ဆိုရင္  Desktop ကို ဦးစားေပးစဥ္းစားပါ။ Desktop မွာက Part တခုခ်င္းစီကို Upgrade လုပ္ဖို ့အခြင့္အေရးရွိသလို Spec ခပ္ၿမင့္ၿမင့္ေတြကို ေစ်းသက္သက္သာသာနဲ ့ ရႏိုင္တယ္။ မတတ္သာေတာ့မွ Laptop ကိုေရြးပါ။

၂။ Processor အေနနဲ ့ဆိုရင္ေတာ့ အနဲဆံုး Quad Core ေလာက္က စၿပီး စဥ္းစားေစခ်င္ပါတယ္။ Software ေတြဟာ အသစ္ထြက္တိုင္းထြက္တိုင္း ေတာင္းတဲ့ Spec ေတြဟာ ၿမင့္သထက္ၿမင့္လာတာ သဘာ၀မို ့ပါ။ ၿပီးေတာ့ Multi-tasking အတြက္ကိုပါ ထည့္စဥ္းစားရမွာ မို ့လို ့ပါ။

၃။ RAM အေနနဲ ့ကေတာ့ အနဲဆံုး 16GB ေလာက္က စစဥ္းစားသင့္ပါတယ္။ BIM Software ေတြဟာ Calculation ေတြအမ်ားႀကီး လုပ္ႀကရတာမို ့ RAM မ်ားေလေကာင္းေလပါပဲ။

၄။ Graphic Card အေနနဲ ့ ဆိုရင္ေတာ့ Autodesk က Recommend လုပ္တဲ့ Card အားလံုးဟာ Workstation ေတြအတြက္ခ်ည္းပဲ။ ဒါေပမယ့္ Personal သံုးဖို ့နဲ ့ Market ထဲ သင့္တင့္တဲ့ ေစ်းနဲ ့ရႏိုင္တာကေတာ့ GeForce GTX Series ေတြပဲ။ Graphic Card ကိုေရြးတဲ့ေနရာမွာလည္း ကိုယ္က ဘယ္လို Software ေတြကို အသံုးၿပဳမွာလဲ ဆိုတာနဲ ့ေတာ့ ဆိုင္ေနၿပန္ပါတယ္။
CAD Software ေလာက္၊ BIM Authoring Software ေလာက္ပဲ သံုးဖို ့ရည္ရြယ္ရင္ေတာ့ GeForce GTX Series အနိမ့္စားေတြကို အသံုးၿပဳႏိုင္ပါတယ္။ ဒါေပမယ့္ Lumion လို Graphic အသားေပးတဲ့ Software လို၊ Fuzor လို Graphic အသားေပးတဲ့ Revit Add-in လို သံုးဖို ့ရည္ရြယ္ရင္ေတာ့ အနိမ့္ဆံုး GeForce GTX970 ေလာက္လိုအပ္ပါလိမ့္မယ္။
တကယ္လို ့ VR (Virtual Reality) အတြက္ပါ ထည့္စဥ္းသားမယ္ ဆိုရင္ေတာ့ GeForce GTX1060 က Minimum Requirement ေလာက္ၿဖစ္ေနၿပန္ပါတယ္။ VR ကလည္း Future PC Usage အေနနဲ ့ ထည့္သြင္းစဥ္းစားရမယ့္ အခ်က္တခုၿဖစ္ေနပါတယ္။
(ၿဖစ္ႏိုင္ရင္ေတာ့ GeForce GTX1060 (6GB) ဆိုပိုၿပီး အဆင္ေၿပတာေပါ့။ က်ေနာ့္အေနနဲ ့ Nvidia GeForce ကို အေၿခခံၿပီး ဖတ္မွတ္မိသမွ်ကိုသာ တင္ၿပရၿခင္း ၿဖစ္ပါတယ္။ Nvidia GeForce နဲ ့အၿပိဳင္ AMD RX Series တို ့၊ Intel(R) HD တို ့ လည္း ေစ်းကြက္ထဲမွာ ရွိေနပါေသးတယ္။)

အခ်ဳပ္အားၿဖင့္ေတာ့ PC ၀ယ္ခ်င္တဲ့သူတေယာက္အတြက္ ကိုယ္အသံုးၿပဳခ်င္နဲ ့ Uses နဲ ့ ကိုယ္အသံုးၿပဳသင့္တဲ့ Budget အႀကား အသင့္တင့္ဆံုး Leverage လုပ္ၿပီး အသင့္တင့္ဆံုးေသာ Spec ပါတဲ့ PC တခုကို ေရြးခ်ယ္ရတာပါပဲ။

က်ေနာ့္အေနနဲ ့Laptop တခုကို Budget S$1500 to S$2500 အတြင္းကေန ေရြးရမယ္ ဆိုရင္ေတာ့ HP တို ့ Dell တို ့ထက္စာရင္ Asus တို ့ Lenovo တို ့ MSI တို ့ထဲကပဲ ေရြးခ်ယ္မိလိမ့္မယ္ထင္တယ္။ ဘာလို ့လဲဆိုေတာ့ ကိုယ္သတ္မွတ္ထားတဲ့ Budget အတြင္းကေန Spec ခပ္ၿမင့္ၿမင့္နဲ ့Laptop ရႏိုင္တာ သူတို ့ပဲရွိတယ္။ ၿပီးေတာ့ Laptop ေတြမွာ အပူလႊတ္ထုတ္တဲ့ Exhaust Fan အေပါက္ေတြဟာ Laptop ရဲ့ အေနာက္ဖက္ထြက္တဲ့ အမ်ိဳးအစားေတြကိုပဲ ေရြးၿခယ္သင့္ပါတယ္။ Exhaust Fan အေပါက္ေတြဟာ ေအာက္ထြက္ၿဖစ္ေနရင္ေတာ့ စက္ရဲ့ အပူထုတ္ႏွုန္းဟာ ၿမင့္မားလြယ္ၿပီး Long Hour အသံုးၿပဳဖို ့အတြက္ ခက္ခဲပါလိမ့္မယ္။
ဒီေရးသားခ်က္ေတြ အားလံုးဟာ က်ေနာ့္ရဲ့ ကိုယ္ေတြ ့၊ အေပါင္းအသင္းေတြရဲ့ အေတြ ့အႀကံဳေတြကေန ေကာက္ႏွုတ္ထားတာမို ့အမွန္ခ်ည္းပဲရယ္လို ့ေတာ့ မယူဆေစခ်င္ပါဘူး။ PC ၀ယ္မယ့္ သူတေယာက္၊ ၿပီးေတာ့ BIM ေလာကသားတေယာက္ ၿဖစ္မယ္ဆိုရင္ေတာ့ ဒီ Post ဟာ အစိတ္အပိုင္းတခုအေနနဲ ့အေထာက္အကူၿပဳႏိုင္လိမ့္မယ္လို ့ေတာ့ ေမွ်ာ္လင့္မိပါတယ္။

Sunday 9 April 2017

DYN05.01 : Dynamo Code မ်ားႏွင့္ ကခုန္ၿခင္း - အပိုင္း(၁)

မဂၤလာပါ ပရိတ္သတ္ႀကီးေရ...

ဒီ Post ကေနစတင္ၿပီး Dynamo Code ေတြကို Autodesk Revit 2016 နဲ ့တြဲဖက္ၿပီး အသံုးၿပဳပံုေတြကို က်ေနာ္နဲ ့အတူ ေလ့လာသြားႀကရမွာ ၿဖစ္ပါတယ္။ ဘာေႀကာင့္ Autodesk Revit 2016 ကို အသံုးၿပဳရသလဲ ဆိုေတာ့ Dynamo 1.0.0 နဲ ့ အထက္ ေတြဟာ Autodesk Revit 2016 မွာပဲ အဆင္ေၿပေၿပ Run ႏိုင္တာေႀကာင့္ပါပဲ။

ဒါ့အၿပင္ Dynamo ထဲမွာ ထပ္ဆင့္ ထည့္သြင္းအသံုးၿပဳႀကရတဲ့ Developer ေတြဖန္တီးေပးထားႀကတဲ့ အဆင့္ၿမင့္ လြယ္ကူတဲ့ Code Package ေတြဟာဆိုရင္လည္း Dynamo 1.0.0 နဲ ့ သူ ့ထက္ ၿမင့္တဲ့ version ေတြမွာသာ အလုပ္လုပ္ေလ့ရွိတဲ့ သေဘာေတြကလည္း  Autodesk Revit 2016 ေလာက္ကို အသံုးၿပဳဖို ့ တိုက္တြန္းေနၿပန္ပါတယ္။ အခုေလာေလာဆယ္ (Apr 2017 အထိ) Dynamo 1.2.1 ဟာ Update အၿဖစ္ဆံုး version ၿဖစ္ၿပီး အနိမ့္ဆံုး Autodesk Revit 2016 နဲ ့မွ အဆင္ေၿပမွာ ၿဖစ္ပါတယ္။

ဒီ Post ကေနစလို ့ Autodesk Revit 2016 နဲ ့အတူ Dynamo 1.2.1 ကို တြဲဖက္အသံုးၿပဳၿပီး တင္ၿပေဆြးေႏြးသြားဖို ့ စီစဥ္ထားပါတယ္။

Dynamo ရဲ့ Latest Version ေတြကို http://dynamobim.org/download/ ေအာက္ကေန တိုက္ရိုက္ ရယူႏိုင္ပါတယ္။

 Dynamo ရဲ့ User Interface နဲ ့အတူ Select Faces, Select Edges နဲ Select Model Elements အသံုးၿပဳပံုေတြကို RevitVsDynamo_001 မွာ ေဆြးေႏြးတင္ၿပထားပါတယ္။
http://www.mediafire.com/file/lq5w3ju8iikfubm/RevitVsDynamo_001.wmv


Category အလိုက္ Revit မွာ ဖန္တီးထားတဲ့ Element ေတြရဲ့ Information ေတြ Extract လုပ္ပံု၊ List  လုပ္ပံု ေတြကို RevitVsDynamo_002 မွာ ေဆြးေႏြးတင္ၿပထားပါတယ္။
http://www.mediafire.com/file/mvpwbtbywup1r42/RevitVsDynamo_002.wmv

 List  လုပ္ထားတဲ့ Information ေတြ MS Excel ဆီ Exchange လုပ္ပံု Sorting လုပ္ပံု ေတြကို RevitVsDynamo_003 မွာ ေဆြးေႏြးတင္ၿပထားပါတယ္။
http://www.mediafire.com/file/5ox71q61pxxhd7e/RevitVsDynamo_003.wmv

အထက္ပါ ေလ့က်င့္ခန္းေတြၿပဳလုပ္ဖို ့ အဓိကလိုအပ္ခ်က္ကေတာ့
  • Autodesk Revit 2016
  • Dynamo 1.2.1
  • Clockwork ( Additional Package) ... တို ့ပဲၿဖစ္ပါတယ္။
လာမယ့္  Post က်ရင္ေတာ့ Information ေတြကို Revit <=> Dynamo <=> MS Excel အႀကား အၿပန္အလွန္ Exchange လုပ္ပံုေတြကို တင္ၿပေဆြးေႏြးသြားဖို ့ စီစဥ္ထားပါတယ္။

Wednesday 22 March 2017

DYN04.11 : အေၿခခံ Geometry တည္ေဆာက္ၿခင္း - အပိုင္း(၁၁)

မဂၤလာပါ။

ဒီတခါေတာ့ List ေတြရဲ့ အသံုးၿပဳပံုေတြကို အက်ဥ္းခ်ံဳးၿပီး တင္ၿပေဆြးေႏြးသြားဖို ့စီစဥ္ထားပါတယ္။

List ဆိုတာ Information ေတြကို သက္ဆိုင္ရာအစုအဖြဲ ့အလိုက္ အစီအစဥ္က်နေအာင္ စီစဥ္ေပးတဲ့ Node လို ့ ဆိုႏိုင္ပါတယ္။ Dynamo မွာ List ဆိုတဲ့ Node ေတြကို Create အားၿဖင့္ေတာ့ (၃) ခုသာေတြ ့ရမွာၿဖစ္ၿပီး၊ Action အားၿဖင့္အေၿမာက္အၿမား ၿမင္ေတြ ့ရမွာၿဖစ္ပါတယ္။ Query အားၿဖင့္ေတာ့ (၁) ခုတည္းကိုသာ ၿမင္ေတြ ့ႏိုင္ပါတယ္။ Create အေနနဲ ့သံုးလို ့ရမယ့္ List ေတြကို ေရွ  ့က Post ေတြမွာလည္း အသံုးၿပဳၿပခဲ့ၿပီးပါၿပီ။
List.Create မွာ Input အေနနဲ ့ List အစုအဖြဲ ့ေတြကို တခုထက္အက ကိုယ္ႀကိဳက္သေလာက္ ဖန္တီးႏိုင္ပါတယ္။



အထက္ေဖာ္ၿပပါ ပံုကို ႀကည့္မယ္ ဆိုရင္ Construction Material စာရင္းတခုကို ေတြ ့ၿမင္ႏိုင္မွာၿဖစ္ပါတယ္။ အဲ့ဒီ အစုအဖြဲ ့တခုစီ ၿဖစ္ေနတဲ့ Information သူ ့အစုနဲ ့သူ စာရင္းၿပဳစုႏိုင္ဖို ့အတြက္ List.Create ကို အသံုးၿပဳႀကရပါမယ္။ List ေတြကို (0) ကေန စတင္ေရတြက္ရတာကိုလည္း သတိၿပဳမိဖို ့လိုအပ္ပါတယ္။

အခုဆိုရင္ေတာ့ ပထမအဆင့္ အေနနဲ ့ List ေတြကို သူ ့အစုနဲ ့သူ စာရင္းၿပဳစုၿပီးပါၿပီ။ သူ စာရင္းၿပဳစုပံုက Information ရဲ့ Source အလိုက္ ၿဖစ္ေနတာမို ့Information ေတြဟာ သူ ့List တခုစီနဲ ့သူ သီးသီးၿခားၿခားႀကီး ၿဖစ္ေနပါတယ္။ တကယ္တမ္းၿဖစ္ခ်င္တာက
  • 1, Cement, 10, bag
  • 2, Sand, 200, cuft
  • 3, Gravel, 400, cuft
  • 4, Rebar, 550, kg
  • 5, Formwork, 350, sqft
အဲဒီလို ၿဖစ္ဖို ့ရာ List ရဲ့ Action ေအာက္က List.Transpose ကို အသံုးၿပဳရပါမယ္။
လက္ရွိရထားတဲ့ List ကိုသာ Excel ကို Export လုပ္မယ္ ဆိုရင္ ေအာက္ေဖာ္ၿပပါပံုအတိုင္း ၿမင္ေတြ ့ ႀကရမွာပါ။
ဒီအေၿခအေနမွာ သူတို ့အတြက္ Header အေနနဲ ့ ထည့္ေပးဖို ့ လိုအပ္လာမယ္ ဆိုရင္ေတာ့ List ရဲ့ Action ေအာက္က List.AddItemToFront ကို အသံုးၿပဳရပါမယ္။
ဒါမွလည္း Excel မွာ ေအာက္ေဖာ္ၿပပါပံုအတိုင္း စနစ္တက် စာရင္းၿပဳစုႏိုင္မွာ ၿဖစ္ပါတယ္။
တကယ္လို ့ လက္ရွိ List ထဲကမွ Rebar နဲ ့ပတ္သက္တဲ့ Information ဖယ္ရွားပစ္ခ်င္တယ္ ဆိုရင္ေတာ့ List ရဲ့ Action ေအာက္က List.RemoveItemAtIndex ကို အသံုးၿပဳရပါမယ္။ သူ ့မွာ Input အေနနဲ ့ List, Indices ဆိုၿပီး ပါ၀င္ေနပါတယ္။ ကိုယ္ဖယ္ရွားခ်င္တဲ့  List ရဲ့ Index number ကို Indices နဲ ့ ခ်ိတ္ဆက္ေပးလိုက္ ရံုပါပဲ။
List ရဲ့ Action ေအာက္က တၿခားေသာ အသံုး၀င္တဲ့ Node ေတြကိုလည္း ကိုယ့္ဖာသာကိုယ္ ဆက္လက္ ေလ့လာႀကပါ...လို ့တိုက္တြန္းရင္း အေၿခခံ Geometry တည္ေဆာက္ၿခင္းဆိုတဲ့ ေဆြးေႏြးခန္းကို ဒီေနရာမွာ ခဏနားပါရေစ။
(ေရွ  ့ လာမယ့္ Post ေတြက်ေတာ့မွပဲ အလ်င္းသင့္ရင္ သင့္သလို ထူးၿခားတဲ့ List ရဲ့ Node ေတြ တင္ၿပေဆြးေႏြးသြားေပးပါ့မယ္။)

လာမယ့္  Post ေတြက စလို ့ Revit နဲ ့ တြဲဖက္အသံုးၿပဳမယ့္ Dynamo ရဲ့ Code ေတြအေႀကာင္းကို ဆက္လက္တင္ၿပ ေဆြးေႏြးသြားဖို ့ ရည္မွန္းထားပါတယ္။

Sunday 19 March 2017

DYN04.10 : အေၿခခံ Geometry တည္ေဆာက္ၿခင္း - အပိုင္း(၁၀)

မဂၤလာပါ အေပါင္းအသင္းတို ့ေရ...

ဒီ Post မွာေတာ့ အေၿခခံ 3D Solid ေတြကိုဖန္တီးႀကတဲ့ ေနရာမွာ အသံုးၿပဳေလ့ရွိႀကတဲ့ Extrude, Sweep, Revolve,...စတဲ့ နည္းလမ္းေတြနဲ ့ အသံုးၿပဳ တင္ၿပေဆြးေႏြးသြားဖို ့ရွိပါတယ္။

Library ေအာက္က Geometry > Solid ဆီကို သြားတဲ့အခါ ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း Create အေနနဲ ့ Node (၈)ခု၊ Action အေနနဲ ့ Node (၉)ခု၊ Query အေနနဲ ့ Node (၂)ခု ကို ေတြ ့ၿမင္ႀကရမွာပါ။
ေဖာ္ၿပပါ Node ေတြထဲကမွ Solid.ByLoft(crossSections) ေလးနဲ ့ 3D Solid တခု ဖန္တီးႀကရေအာင္။

သူ ့မွာ input အေနနဲ ့က crossSections ဆိုတဲ့ တခုသာ ပါ၀င္ေနတာကို သတိထားမိႀကမွာပါ။ သူ ့ရဲ့ လိုအပ္ခ်က္ကေတာ့ Closed Curve (၂)ခုပါပဲ။ အဲ့ဒီအတြက္ Circle တခုနဲ ့ Ellipse တခုကို အရင္ဖန္တီးႀကတာေပါ့။
(အထက္ေဖာ္ၿပပါ ပံုကေတာ့ Circle တခုနဲ ့ Ellipse တခုကို ဖန္တီးတဲ့ေနရာမွာ သူတို ့ရဲ့ မူလ Node ေရာ Code Block ကိုပါ အသံုးၿပဳၿပေပးထားတာပါ။ အသံုးၿပဳသူအေနနဲ ့က ႏွစ္သက္ရာကို လြတ္လပ္စြာ အသံုးၿပဳႏိုင္ပါတယ္။ မူလ Node ေတြကိုပဲ သံုးခ်င္ရင္ေတာ့ သက္ဆိုင္ရာ input ေတြကိုပါ ၿဖည့္စြက္ေပးဖို ့ လိုအပ္ပါလိမ့္မယ္။)
က်ေနာ့္အေနနဲ ့ Code Block ေတြကိုပဲ အသံုးၿပဳၿပီး Run လိုက္တဲ့အခါ အထက္ေဖာ္ၿပပါ ပံုအတိုင္း Circle တခုနဲ ့ Ellipse တခုကို ဖန္တီးထားတာကို ၿမင္ေတြ ့ရမွာပါ။

ဒီေနရာမွာ အခက္အခဲတခု ႀကံဳေနရတာက Solid.ByLoft(crossSections) ရဲ့ input က တခုတည္းရွိေနၿပီး တကယ္ input လုပ္ရမွာက Circle နဲ ့ Ellipse ဆိုတဲ့ input (၂)ခု ၿဖစ္ေနတာပါပဲ။

အဲ့ဒီအခက္အခဲကို ေၿပလည္ေစဖို ့အတြက္ Dynamo က List.Create ဆိုတဲ့ Node ကို စီစဥ္ေပးထားပါတယ္။ List ဆိုတာ သက္ဆိုင္ရာ Element ေတြရဲ့ Information ေတြကို အစီအရီ ေနရာခ်ေပးတဲ့ အလုပ္ကို လုပ္ေဆာင္ေပးပါတယ္။ Dynamo မွာ Code ေတြကိုေရးႀကတဲ့အခါ မသိမၿဖစ္တဲ့ အစိတ္အပိုင္း လို ့လည္း ဆိုႏိုင္ပါတယ္။

Library ေအာက္ကေန Core > List > List.Create (or) Search Box > List.Create ကိုသံုးၿပီး List.Create ဆိုတဲ့ Node ကိုရယူပါမယ္။ ၿပီးရင္ေတာ့ ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း 3D Solid တခုကို ၿဖစ္ေပၚေစမယ့္ Code တခုကို ဖန္တီးပါ့မယ္။
ဒီတခါေတာ့ Solid.ByLoft(crossSections, guideCurve) ကို အသံုးၿပဳႀကည့္ပါမယ္။ သူ ့မွာ guideCurve ဆိုတဲ့ input တခု ပိုလာတာေႀကာင့္ Closed Curve (၂)ခု အၿပင္ Path တခုကိုပါ  ဖန္တီးေပးဖို ့လိုအပ္ လာပါတယ္။
ဒီ Code အရင္ဆံုး guideCurve အတြက္ Nurbs.ByPoints တခုကို ဖန္တီးပါမယ္။ အဲဒီအတြက္ လိုအပ္ေနတာက Point ေတြၿဖစ္တာေႀကာင့္ Code Block သံုးၿပီး Point (၃)ခုကို အရင္ ဖန္တီးပါ့မယ္။ ၿပီးရင္ေတာ့ ေအာက္က ပံုအတိုင္း guideCurve တခုဖန္တီးပါ့မယ္။

ဒုတိယ အဆင့္အေနနဲ ့ crossSections အတြက္ Closed Curve (၂)ခုကို ဖန္တီးရပါ့မယ္။ ဒီေနရာမွာ Closed Curve (၁)ခု ကို guideCurve ရဲ့ အစ Point မွာ ထားၿပီး ေနာက္ Closed Curve (၁)ခု ကို guideCurve ရဲ့ အဆံုး Point မွာ ထားခ်င္ပါတယ္။ ဒါတင္မကပဲ Closed Curve (၂)ခုဟာ guideCurve နဲ ့ Perpendicular လည္းက်ေနဖို ့ လိုအပ္ပါမယ္။
အဲ့ဒီအတြက္ Library ေအာက္ကေန Geometry > Curve (Action) > PlaneAtParameter ကို အသံုးၿပဳပါ့မယ္။ သူ ့မွာ input အေနနဲ ့ curve, param တို ့ပါ၀င္ေနပါမယ္။
curve အတြက္ကေတာ့ အထက္ေဖာ္ၿပပါ ပံုအတိုင္း ခ်ိတ္ဆက္ေပးလိုက္ရံုပါပဲ။ param အတြက္က်ေတာ့ {0,1}; လို ့ရိုက္ထည့္ေပးရပါမယ္။ ဆိုလိုတာက Plane တခုကို အစမွာ ဖန္တီးၿပီး ေနာက္ Plane တခုကိုေတာ့ အဆံုးမွာ ဖန္တီးမယ္ ဆိုတဲ့ သေဘာပါပဲ။
(တကယ္လို ့ guideCurve ရဲ့ 1/4 မွာ Plane တခု၊ 3/4 မွာ Plane တခု ထပ္ထည့္ခ်င္တယ္ဆိုရင္ေတာ့ {0,0.25,0.75,1}; လို ့ ရိုက္ထည့္ေပးလိုက္ရံုပါပဲ။)
အခုဆိုရင္ Plane (၂)ခု ရၿပီမို ့ Plane တခု မွာ Closed Curve တခုစီ ဖန္တီးဖို ့ လိုအပ္လာပါၿပီ။
ဆိုေတာ့ကာ...Library ေအာက္ကေန
- Geometry > Circle > ByPlaneRadius
- Geometry > Ellipse > ByPlaneRadii ... နဲ ့Circle တခု Ellipse တခုကို ဖန္တီးပါမယ္။
အခုအတိုင္း ဆိုရင္ေတာ့ Circle တခု နဲ ့ Ellipse တခုဟာ Plane (၂)ခုစလံုး အေပၚမွာ ဖန္တီးၿပီးေနတာကို ေတြ ့ၿမင္ႀကရမွာပါ။ လိုခ်င္တာက Plane တခုမွာ Closed Curve တမ်ိဳးစီသာ သီးၿခားစီ ဖန္တီးခ်င္တာပါ။ ဒါေႀကာင့္ပဲ List.RemoveItemIdex ဆိုတဲ့ Node ကိုအသံုးၿပဳၿပီး ကိုယ္မလိုခ်င္တဲ့ List ကို ဖယ္ရွားမွာ ၿဖစ္ပါတယ္။
ဒီေနရာမွာ List ေတြစီစဥ္ပံုကို အနည္းငယ္ တင္ၿပေဆြးေႏြးခ်င္ပါတယ္။
အခုလို Library ကေန Search Box > Watch လို ့ရိုက္ထည့္ၿပီး ရလာတဲ့ Watch (Node) ကို ခ်ိတ္ဆက္ၿပီး Run တဲ့အခါ အထက္ေဖာ္ၿပပါပံုအတိုင္း List စီစဥ္ပံုကို Watch မွာေတြ ့ၿမင္ႏိုင္ပါမယ္။ List ေတြကို စီတဲ့အခါ (0) ကေန စၿပီး ေရတြက္ေလ့ရွိတာကို သတိထားမိဖို ့လိုပါမယ္။ ဒါမွ ကိုယ္ဖယ္ရွားခ်င္တဲ့ List ကို အတိအက် ေရြးခ်ယ္ႏိုင္မွာ ၿဖစ္ပါတယ္။
ကဲ... List.RemoveItemIdex ကိုစၿပီး အသံုးၿပဳပါေတာ့မယ္။
အေပၚက ေဖာ္ၿပထားတဲ့ ပံုကို ေလ့လာရင္း List.RemoveItemIdex ရဲ့သေဘာကို နားလည္ႏိုင္မယ္လို ့ ေမွ်ာ္လင့္ပါတယ္။
အခုဆိုရင္ Plane တခုစီ ခြဲထားခဲ့ၿပီမို ့ Closed Curve ေတြကို ကိုယ္ႏွစ္သက္ရာ Plane ေပၚမွာ ဖန္တီးႏိုင္ႀကပါၿပီ။
ကဲ... အခုဆိုရင္ Closed Curve (၂) ခု နဲ ့ guideCurve (၁)ခုဟာ အဆင္သင့္ ၿဖစ္ေနၿပီမို ့က်ေနာ္တို ့လိုခ်င္တဲ့ Solid.ByLoft(crossSections, guideCurve) နဲ ့အတူ 3D Solid တခုကို ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း ဖန္တီးႏိုင္ပါၿပီ။
အေၿခအေနက ေမွ်ာ္လင့္ထားသလို ၿဖစ္မလာခဲ့ဘဲ Closed Curve (၂) ခုႀကား ဆက္သြယ္မွုတခု လစ္ဟေနၿပန္ပါတယ္။ အဲ့ဒီအတြက္ PolyCurve.ByJoinedCurve ဆိုတဲ့ Node ကိုသံုးၿပီး Closed Curve (၂)ခု ကိုဆက္စပ္ေပးလိုက္တဲ့ အခါက်ေတာ့မွပဲ လိုခ်င္တဲ့ 3D Solid တခုကို ေအာက္ေဖာ္ၿပပါ ပံုအတိုင္း ဖန္တီးႏိုင္ပါေတာ့တယ္။
ဒီ Post ဟာ အေတာ္ေလး ရွည္သလို လိုအပ္ခ်က္ေတြနဲ ့ အသံုးၿပဳရတဲ့ Node ေတြကလည္း အေၿခခံကို ေလ့လာေနသူအတြက္ နဲနဲေတာ့ စိတ္ရွုပ္ေထြးေစမွာ အမွန္ပါပဲ။
ဒါေပမယ့္ Programming ရဲ့သေဘာကိုက ကိုယ္လိုခ်င္တဲ့ ရလဒ္တခုကေန အေၿခတည္လိို ့ ထပ္ဆင့္လိုအပ္ခ်က္ေတြကို ၿဖည့္စြက္ရင္း Code ေတြေရးသားႀကရတာပါပဲ။

က်န္ေနေသးတဲ့ Extrude နဲ ့ Revolve အသံုးေတြကိုလည္း ကိုယ့္ဖာသာ ႀကိဳးစားၿပီး ဖန္တီးႀကည့္ႀကဖို ့ တိုက္တြန္းလိုက္ပါရေစ။

လာမယ့္ Post က်ရင္ေတာ့ List ေတြ အလုပ္လုပ္ပံုေတြကို အက်ဥ္းခ်ံဳးၿပီး တင္ၿပေဆြးေႏြးသြားဖို ့ စီစဥ္ထားပါတယ္။