Autocad .NET 获取选定块的属性

问题描述 投票:0回答:1

我是 autocad 脚本的新手,正在尝试创建一个允许用户选择块并显示块的相关属性的应用程序。我现在找到了替代解决方案,但想尝试了解为什么我的初始方法不起作用。

我最初尝试做的是根据用户输入创建一个选择集,获取 objectid 并尝试根据此信息创建一个 blocktablerecord。但是每次我尝试它都返回 Null。

这是我使用的代码:

public void getattrib()
    {
        Database acCurDb;
        acCurDb = Application.DocumentManager.MdiActiveDocument.Database;
        Document acDoc = Application.DocumentManager.MdiActiveDocument;

        using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
        {
            // Open the Block table for read
            BlockTable acBlkTbl;
            acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;
            
            PromptSelectionResult acSSPrompt = acDoc.Editor.GetSelection();
            if (acSSPrompt.Status == PromptStatus.OK)
            {
                SelectionSet acSSet = acSSPrompt.Value;
                ObjectId anothertest = acSSet[0].ObjectId;
                BlockTableRecord br = acTrans.GetObject(anothertest, OpenMode.ForRead) as BlockTableRecord;
c# autocad autocad-plugin
1个回答
0
投票

如果你选择方块,它是

BlockReference
而不是
BlockTableRecord
BlockTableRecord
是块定义。 如果你想要
BlockTableRecord
,你可以阅读它的
ObjectId
作为所选
BlockTableRecord
的属性
BlockReference

© www.soinside.com 2019 - 2024. All rights reserved.