การอ่านค่า จะต้องแยก กัน
การอ่านค่า ของ Element หรือ Object
// เริ่ม transaction
trans.Start();
// open entity
Element ent = CachedDoc.GetElement(elementId);
foreach (Parameter param in ent.Parameters)
{
sParam += param.Definition.Name + "=" + param.AsString() + ",";
}
trans.Commit(); // Ok
สำหรับการอ่านค่า Parameter ของ Family (type) ต้อง อ่าน Type มาจาก Element
ent.GetTypeId()
// เริ่ม transaction
trans.Start();
// open entity
Element ent = CachedDoc.GetElement(elementId);
Element eltype = CachedDoc.GetElement(ent.GetTypeId());
foreach (Parameter param in eltype.Parameters)
{
string valueStr = param.AsString() ;
sParam += param.Definition.Name + "=" + valueStr + "\n";
}
trans.Commit(); // Ok
สำหรับใช้ Linq จะเหลือบรรทัดเดียว
Element e = doc.GetElement( r );
Parameter par1 = e.Parameters.Cast<Parameter>().Where(o => o.Definition.Name == "PE_CODE").First();
ในกรณีของ Family type Parameter ก็คือ Type
Element eltype = doc.GetElement(el.GetTypeId());
IList<Parameter> pparam = eltype.GetParameters("abcd”); // ใช้ Search ตามชื่อ
// ถ้ามีตัวเดียว ใช้ pparam[0];
foreach (Parameter param in eltype.Parameters)
{ // ดูทุกตัว
..
}