วันศุกร์ที่ 28 สิงหาคม พ.ศ. 2558

การเปิด Element ใน Revit 2016 Api เปลี่ยนแปลง จาก 2014

ใน Revit2016 Api มีการเปลี่ยน การ access ไปยัง Element โดยจะไม่มีการให้การ Access ไปยัง Element ใด โดยตรง เช่น จาก Document จะเรียก Level ก็จะไม่ได้ แต่จะได้ Level element id แทน และ การ Pick Object ก็จะได้ Element Id จากเดิม สามารถเรียก Element ได้โดยตรง
โดย API เดิม ยกเลิก โดยสมบูรณ์ ใน 2016  ข้อดีคือ เขียนโปรแกรมเป็นระบบเดียวกันทั้งหมด
การ ปิด Element จึงต้องเปิดจาก Element Id

     Reference pickedObj = commandData.Application.ActiveUIDocument.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element, "Please select an element to move.");


     using (Transaction trans = new Transaction(doc, "ERead"))
            {
                // เริ่ม transaction
                trans.Start();
               // open entity
                Element ent = doc.GetElement(pickedObj.ElementId);
        // code here        
              
                trans.Commit(); // Ok
            }

กรณีที่เป็น Level  หรือ อื่นๆ จะใช้ Cast  (as  xxx) เพื่อเปลี่ยนเป็น Class Object ที่ต้องการ



 Level emlv =  doc.GetElement(e1.LevelId) as Level;


ไม่มีความคิดเห็น:

แสดงความคิดเห็น