OwnerFamily即族模板。
获取类别的方法:
Document.Settings.Categories.get_Item(BuiltInCategory.OST_Columns);

//判断是不是柱族模板
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class cmdCheckFamily : IExternalCommand
{
    bool ValidateDocument(Document rvtDoc)
    {
        if (!rvtDoc.IsFamilyDocument)//判断是不是族文档
        {
            TaskDialog.Show("Family API", "This command works only in the family editor.");
            return false;
        }
        Family ownerFamily = rvtDoc.OwnerFamily;
        if (ownerFamily == null)//判断是否使用了族模板
        {
            TaskDialog.Show("Family API", "This document does not have Owner Family.");
            return false;
        }
        //取得族类别的方法
        Category catColumn = rvtDoc.Settings.Categories.get_Item(BuiltInCategory.OST_Columns);
        if (!ownerFamily.FamilyCategory.Id.Equals(catColumn.Id))
        {
            TaskDialog.Show("Family API", "The category of this document does not match the context of this commands. Please open Metric Column.rft");
            return false;
        }
        return true;
    }
    public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
    {
        UIApplication app = commandData.Application;
        Document doc = app.ActiveUIDocument.Document;
        Selection sel = app.ActiveUIDocument.Selection;         ValidateDocument(doc);         return Result.Succeeded;
    }
}

url:http://www.cnblogs.com/greatverve/p/ValidateDocument.html

Revit API判断是不是柱族模板的更多相关文章

  1. Revit API 判断一个构件在某个视图中的可见性

    查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现 ...

  2. Revit API判断直线相交关系移动风管

    start )             );         )) )) );         XYZ xyz12 = lCurve1.Curve.get_EndPoint();         XY ...

  3. Revit API 加载族并生成实例图元

    在Revit API中加载族可以使用Doc.LoadFamily方法,传入要加载的族文件路径名,但是这种方式有一种缺点,就是如果族文件在当前工程中没有加载的话则返回成功,如果已经加载过,则返回失败,也 ...

  4. 【Revit API】梁构件支座检查算法

    一.前言         应该是第二次写关于Revit API的博文了.虽然在BIM企业中工作,从事桌面BIM软件开发,但是我是不怎么喜欢写Revit API相关的代码.平时更多的是在写界面展示,架构 ...

  5. Revit API 操作共享参数和项目参数

    1.获取共享参数 private string GetSharInfo(Autodesk.Revit.ApplicationServices.Application revitApp) { Strin ...

  6. Revit API射线法读取空间中相交的元素

    Revit API提供根据射线来寻找经过的元素.方法是固定模式,没什么好说.关键代码:doc.FindReferencesWithContextByDirection(ptStart, (ptEnd  ...

  7. VB API判断数组为空

    1. 'API判断数组为空或没有初始化 Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saA ...

  8. Revit API取得系统族普通族几何信息的方法

    系统族,可以直接转化为对应的类(Wall,Duct)然后取得几何信息,普通族需要转化为FamilyInstance ))         {           TaskDialog.Show()   ...

  9. Revit api 创建族并加载到当前项目

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

随机推荐

  1. 什么是BS,BS和CS的区别有哪些

    BS和CS的区别以及优缺点 C/S又称Client/Server或客户/服务器模式.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix或 ...

  2. 使用phpstorm+wamp实现php代码实时调试审计

    转载自:https://www.bugbank.cn/q/article/5853afaffc0bf4f010ee6ac3.html php调试有N多好用的工具,最近研究到phpstorm配合wamp ...

  3. RESET MASTER和RESET SLAVE使用场景和说明【转】

    [前言]在配置主从的时候经常会用到这两个语句,刚开始的时候还不清楚这两个语句的使用特性和使用场景. 经过测试整理了以下文档,希望能对大家有所帮助: [一]RESET MASTER参数 功能说明:删除所 ...

  4. .NET下获取应用程序目录的一些方法

    今天在Console Application下搞了一个小功能,期间需要获取当前应用程序的根目录,试了很多方式,都不能直接获取到,没有像Server.MapPath()这类的方法来方便地使用. 下面列举 ...

  5. 三、vue脚手架工具vue-cli的使用

    1.vue-cli构建 vue-cli工具构建:https://blog.csdn.net/u013182762/article/details/53021374 npm的镜像替换成淘宝 2.项目运行 ...

  6. ubuntu16。04LST配置nfs实现服务器和客户端共享文件

    NFS(network file system)网络文件系统可以实现不同主机与操作系统之间通过网络进行资源共享,此时一台PC充当服务器,若干台PC充当那客户端,具体如何配置请跟随我的步骤来做 1 下载 ...

  7. 关于oracle分组排序取值的问题

    按照 某字段分组 某字段排序 然后取出该分组中排第1条数据(每组只取一条) SELECT* FROM( SELECT a.*,row_number() over(partition by ORI_FE ...

  8. nGrinder的安装与使用

    背景 性能压测工具之前使用的是jmeter,这次说的是nGrinder,先直接搬运两者之间的比较 比较点 JMeter nGrinder 结果 实现语言 Java Java = License Apa ...

  9. ruby语言学习笔记2

    ruby学习笔记2  (摘自<ruby程序设计语言教程(中文版)>.pdf,全书25页) 1.同一个问题ruby有多个解决方案,途径 ruby之父:松本行弘(Matz),1993年创立 r ...

  10. 注解实现json序列化的时候自动进行数据脱敏

    https://blog.csdn.net/liufei198613/article/details/79009015