Revit2018复现《AUTODESK REVIT二次开发基础教程》代码06

using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using Autodesk.Revit.Attributes;
using System.Linq;
using System.Collections.Generic;

namespace LearnTime
{
    //必备写法
    [Transaction(TransactionMode.Manual)]
    [Journaling(JournalingMode.NoCommandData)]
    [Regeneration(RegenerationOption.Manual)]
    //[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)]
    public class _06_select : IExternalCommand
    {
        public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,
            ref string message, ElementSet elements)
        {

            try
            {
                //在执行该插件之前,先选择一些元素。本例中选择了四面墙,一条模型线,一条网格线,一个房间,一个房间标签。

                //取到当前文档。
                UIDocument uidoc = revit.Application.ActiveUIDocument;
                Document doc = uidoc.Document;
                //取到当前文档的选择集。
                Selection selection = uidoc.Selection;
                //获取选择项的ID
                //List<ElementId> collection = selection.GetElementIds().ToList();
                //获取所有选择项(Element),从ElementId转成Element
                
                List<Element> collection = selection.GetElementIds().Select(x => doc.GetElement(x) as Element).ToList();
                //Elements collection = selection.Elements;

                if (0 == collection.Count)
                {
                    // 如果在执行该例子之前没有选择任何元素,则会弹出提示.
                    TaskDialog.Show("Revit", "你没有选任何元素.");
                }
                else
                {
                    String info = "所选元素类型为: ";
                    foreach (Element elem in collection)
                    {
                        info += "\n\t" + elem.GetType().ToString();
                    }

                    TaskDialog.Show("Revit", info);
                }
            }
            catch (Exception e)
            {
                message = e.Message;
                return Result.Failed;
            }

            return Result.Succeeded;
        }
    }
}

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值