数据库中的块表类型,块表中存放着块表记录,我们常见的模型空间就是块表中名为*Model_Space 的块表记录
[ object, uuid(E4F220B9-A9DD-42AF-B47C-49E13737A590), dual, nonextensible, helpstring("IMxDrawBlockTable interface"), pointer_default(unique) ]
interface IMxDrawBlockTable : IMxDrawSymbolTable;MxDrawBlockTable.idl
例如: C# 判断当前数据库中,是有指定的块表记录.
MxDrawDatabase data = (MxDrawDatabase)axMxDrawX1.GetDatabase();
if (data.GetBlockTable().Has("BlkName"))
{
// 已经插入.
}
例如: C# 得到所有图块名
MxDrawDatabase databae = (MxDrawDatabase)axMxDrawX1.GetDatabase();
MxDrawBlockTable blkTab = databae.GetBlockTable();
MxDrawBlockTableIterator iter = blkTab.NewIterator();
for (; !iter.Done(); iter.Step())
{
MxDrawBlockTableRecord blkRec = iter.GetRecord();
MessageBox.Show(blkRec.Name);
}
例如: C# 模型空间下所有实体
MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();
MxDrawBlockTableRecord blkRec = database.GetBlockTable().GetAt("*Model_Space");
MxDrawBlockTableRecordIterator iter = blkRec.NewIterator();
if (iter == null)
return;
int iNum = 0;
// 循环得到所有实体
for (; !iter.Done(); iter.Step(true, false))
{
// 得到遍历器当前的实体
iNum++;
}
MessageBox.Show(iNum.ToString());