ในการเปลี่ยนค่า และ การแสดงผล ตามค่าที่ต้องการ เช่นหน้าต่าง ประตู
แต่เดิม ในการวางหน้าต่าง ประตู จะใช้ Block ตามชื่อของ หน้าต่าง เช่น หน้าต่าง 70cm ก็จะใช้
Block WIN70 ก็จะรู้ว่ามีการวาง หน้าต่าง 70 cm กี่บาน จากการนับ Block แต่ตอนนี้ จะใช้ Block
เดียวที่เป็น Dynamic block และปรับค่าความกว้างของBlock แทน เมื่อนับ Block จะได้ Block เดียวกัน
หมด ไม่ต่างกัน จึงมี โจทย์ ว่าต้องการอ่านค่า ของ Dynamic Block ได้อย่างไร
ใน C# จะต้องใช้ Class DynamicBlockReferencePropertyCollection จัดเก็บเป็น Array ของ ตัวแปร Parameter ที่อยู่ใน Dynamic Block ตามโปรแกรมตัวอย่างนี้ จะเป็นการอ่าน ชื่อค่าแปร และ ค่าตัวแปร ออกมาใน Array ทั้ง 2 คือ paramName และ paraOut (ค่า) โดย Block ที่ส่งเข้าไปคือ br เมื่อเอา paraOut ไปใช้อย่าลืม .ToString() เพื่อเปลี่ยนเป็นตัวหนังสือก่อน
public static int getDynBlockProperties(ref ArrayList paraName,ref ArrayList paraOut, BlockReference br)
{
// Only continue is we have a valid dynamic block
int count = 0;
if (br != null && br.IsDynamicBlock)
{
// Get the dynamic block's property collection
DynamicBlockReferencePropertyCollection pc =
br.DynamicBlockReferencePropertyCollection;
// Loop through, getting the info for each property
foreach (DynamicBlockReferenceProperty prop in pc)
{
// Start with the property name, type and description
count++;
paraName.Add(prop.PropertyName);
paraOut.Add(prop.Value);
}
}
return count;
}