2. revitAPI基础-----类别category

在revitAPI中,Element及其子类都拥有一个category属性用于表示类别,整体调用方式为document.settings.Categories,也可以用BuiltInCategory找出指定的类别

从模型中取到想要的类别:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.ApplicationServices;
namespace category
{
    [Autodesk.Revit.Attributes.Transaction(TransactionMode.Manual)]
    public class Class1 : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            //throw new NotImplementedException();
            try
            {
                UIDocument uidoc = commandData.Application.ActiveUIDocument;
                Document document = uidoc.Document;
                Categories categories = document.Settings.Categories;//得到了全部的类别
                Category category = categories.get_Item(BuiltInCategory.OST_Columns);//得到了柱子类别
                TaskDialog.Show("提示","图中共有"+categories.Size+"种类别");
               
               
                return Result.Succeeded;
            }
            catch (Exception)
            {
                return Result.Failed;
            }
        }
    }
}

同时对于element实例,category是其一个属性,因此可以通过element获取其category属性

原文地址:https://www.cnblogs.com/3118460692wwx/p/12243088.html

时间: 2024-12-16 20:02:37

2. revitAPI基础-----类别category的相关文章

iOS类别(Category)

iOS类别(Category)与扩展(Extension) 苹果的官方文档 Category在iOS开发中使用非常频繁.尤其是在为系统类进行拓展的时候,我们可以不用继承系统类,直接给系统类添加方法,最大程度的体现了Objective-C的动态语言特性. #import @interface NSObject (Category) - (void)myMethod; @end 这是一个最简单的Category,作用于NSObject类,给NSObject添加了一个方法. 使用Category需要注

Objective-C日记-之类别Category

类别Category 1,概述 为现有类添加新的方法,这些新方法的Objective-C的术语为“类别”. 2,用法 a,声明类别 @interface NSString(NumberConvenience) -(Number *)lengthAsNumber; @end//NumberConvenience 这里类别的名称就叫NumberConvenience,新的类方法为lengthAsNumber. b,实现类别 @implementation NSString(NumberConveni

类别(Category)与扩展(Extensions)

一.类别(Category) 类别(Category)是一种可以为现有的类(包括类簇:NSString...,甚至源码无法获得的类)添加新方法的方式无需从现有的类继承子类.类别添加的新方法可以被子类继承. 注:继承(inheritance)无法为一个类簇创建子类.类别不能添加实例变量. 1. 创建类别 1.1 声明类别 类别的声明和类的声明格式相似: @interface ClassName(CategoryName) //method declarations @end//CategoryNa

Objective-C中的协议(Protocol)和类别(Category)

1.什么是协议? 2.协议与类别的声明和使用 1.什么是协议? 在Objective-C中,不支持多继承,即不允许一个类有多个父类,但是OC提供了类似的实现方法,也就是协议.协议有点类似于Java里的接口,不同点就是在协议里,可以提供可选的方法,不要求全部继承. 协议包括正式协议和非正式协议. 正式协议:其声明一个方法列表,协议的实现者需要实现声明的方法,可以使用@required和@optional关键字指定方法必须实现或可选实现,默认为必须实现.子类会继承其父类采用的协议,一个协议本身也可以

类别(category)

类别(category) 类别:类别是一种为现有的类添加新方法的方式.使用类别你可以为任何类添加新的方法,包括那些没有源代码的类. 通常会以"类名称+类别名称"的风格命名.这并不是硬性的规定,但却是一个好习惯.例如:NSString+NumberAsNSNumber. 类别的声明 #import <Foundation/Foundation.h> @interface NSString (NumberConvenience) -(NSNumber *) lenthAsNum

iOS类别Category与扩展Extension

本文主要是详解iOS类别(Category)与扩展(Extension,匿名类别),请登陆疯狂软件教育官网.Category在iOS开发中使用非常频繁.尤其是在为系统类进行拓展的时候,我们可以不用继承系统类,直接给系统类添加方法,最大程度的体现了Objective-C的动态语言特性. [objc] view plaincopy在CODE上查看代码片派生到我的代码片 #import @interface NSObject (Category) - (void)myMethod; @end 这是一个

分类(类别/Category)与 类扩展(Extension)

一.分类(类别/Category) 1.适用范围 当你已经封装好了一个类(也可能是系统类.第三方库),不想在改动这个类了,可是随着程序功能的增加需要在类中增加一个方法,这时我们不必修改主类,只需要给你原来的类增加一个分类. 将一个大型的类拆分成不同的分类,在不同分类中实现类别声明的方法,这样可以将一个类的实现写到多个.m文件中,方便管理和协同开发. 分类中的方法可以只声明,不实现,所以在协议不支持可选方法的时候(协议现在已经支持可选方法),通常把分类作为非正式协议使用. 2.语法格式 文件中的语

Objective-C基础6 : 类别category

1.为什么要有类别?在现有类的基础上做扩展,可以采用继承和组合两种方法来实现,但是OC为什么还要有类别这种方式呢? 想想这样一个应用场景,要创建一个字典,key是字符串,value是字符串的长度.一般的做法是: NSMutableDictionary *dict = [NSMutableDictionary dictionary]; NSString* str = @"hello"; NSNumber* num1 = [NSNumber numberWithUnsignedInt:[s

1225Delegate 代理委托 +类别Category

1.协议  代理模式 两个对象之间如何传递数据 同一时间只完成一件事情 一般把协议写在代理中 接受的类型用id并且服从协议(@property(nonatomic ,assign)id<agentDelegate>delegate 一定要确保对象实现了方法 2.Category 类别 1.什么是类别 在已有类的基础之上无需子类化,直接给类添加一些方法 a.继承与类别的区别 继承不仅可以添加一些方法,还可以添加一些属性 类别只能添加方法 b.在使用的时候继承必须创建一个对象再去调用方法,使用类别