Try this:
It gets the information of a single block selected by user (code is not complete!).
.
.
.
PromptSelectionOptions prSelectionOptions = new PromptSelectionOptions();
prSelectionOptions.SingleOnly = true;
prSelectionOptions.SelectEverythingInAperture = true;
PromptSelectionResult prSelectionResult = ed.GetSelection(prSelectionOptions);
.
.
.
if (trans.GetObject(prSelectionResult.Value[0].ObjectId, OpenMode.ForRead).GetType() == typeof(BlockReference))
{
BlockReference br = (BlockReference)trans.GetObject(prSelectionResult.Value[0].ObjectId, OpenMode.ForRead);
if (br.IsDynamicBlock)
{
DynamicBlockReferencePropertyCollection dynBrProColl = br.DynamicBlockReferencePropertyCollection;
foreach (DynamicBlockReferenceProperty dynBrPro in dynBrProColl)
{
ed.WriteMessage(dynBrPro.PropertyName + " ");
ed.WriteMessage(dynBrPro.Value.ToString());
ed.WriteMessage("\n");
}
}
else
{
ed.WriteMessage("The block is not dynamic");
}
}
.
.
.