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

No comments:

Post a Comment