文档章节

RevitAPI创建族并载入到工程文档中

H
 HIT__lk
发布于 2017/04/20 15:08
字数 321
阅读 32
收藏 0

四个注意点:

1、在族文档中创建拉伸时,需要开启事务,开启事务时使用的文档必须是族文档

2、在族文档中创建草图工作平面时,使用的文档必须是族文档

3、将族文档导入工程文档时,不能开启事务,否则会抛出异常

4、LoadFamily方法的调用者是族文档,参数是目标工程文档

    class CmdTest : AbstractExternalCommand
    {
        protected override Result RunImpl(Autodesk.Revit.UI.ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements)
        {
            String filePath = @"d:\Documents\liukang\桌面\Family Templates\Chinese\公制常规模型.rft";

            //创建族文档
            Document familyDoc = app.NewFamilyDocument(filePath);

            //开启事务时,使用的文档,必须是族文档
            Transaction familyTrans = new Transaction(familyDoc, "family");
            familyTrans.Commit();

            CurveArrArray curveArrArr = app.Create.NewCurveArrArray();

            CurveArray curveArr = app.Create.NewCurveArray();

            Curve curve1 = Line.CreateBound(new XYZ(0, 0, 0), new XYZ(1, 0, 0));
            Curve curve2 = Line.CreateBound(new XYZ(1, 0, 0), new XYZ(1, 1, 0));
            Curve curve3 = Line.CreateBound(new XYZ(1, 1, 0), new XYZ(0, 0, 0));

            curveArr.Append(curve1);
            curveArr.Append(curve2);
            curveArr.Append(curve3);
            curveArrArr.Append(curveArr);

            //创建平面
            Plane plane = app.Create.NewPlane(new XYZ(0, 0, 1), new XYZ(0, 0, 0));
            //创建草图平面,文档必须是族文档
            SketchPlane sp = SketchPlane.Create(familyDoc, plane);

            //创建拉伸
            familyDoc.FamilyCreate.NewExtrusion(true, curveArrArr, sp, 10);

            familyTrans.Commit();

            //LoadFamily方法的调用者是族文档,参数是目标工程文档
            Family family = familyDoc.LoadFamily(doc);

            return Result.Succeeded;
        }
    }

参考链接:http://blog.csdn.net/joexiongjin/article/details/7636666

© 著作权归作者所有

H
粉丝 0
博文 3
码字总数 1014
作品 0
广州
私信 提问
C# Revit二次开发基础-核心课程

第1章 C# Revit二次开发概述 【直播】1)课程体系介绍(7月1日 20:30-21:30) 免费试学 【直播】2)配置开发环境(7月4日 20:30-21:30) 15 第15章 课程总结 【直播】44) C#、BIM、Revit二次开发...

liujiangtaocsu
2018/05/12
0
0
Revit里外部参照DWG文件的四种方法、区别及注意事项

虽然BIM已经是一个很热的概念,但是多数的项目成果还是通过AutoCad交付,很多情况下,我们仍然需要将DWG文件导入到Revit里面进行设计配合。 将DWG文件导入到Revit里面分两种情况,每种情况分...

Speedeagle
2017/05/11
0
0
Revit二次开发-根据视图阶段(Phase)创建房间

最近开发业务中,有一个自动创建房间的功能,很自然的想到了Document.NewRooms2方法。但是当前功能的特殊之处在于,Revit项目视图是分阶段(Phase)的,不同阶段的房间是互相独立的。 官方API中...

杉木2019
02/14
0
0
不打开文件,读取Rvt文件中的信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JoeXiongjin/article/details/31437159 叶老师,我想问一下能否基于revit API 2014,直接在开发时传递给程序要...

叶雄进-橄榄山
2014/06/16
0
0
maven聚合工程的创建和聚合工程的打包

第一步:创建父工程millery-manage,如图: 右击空白处,new创建新maven工程: 这里跳过默认的骨架,使用自动义的骨架 这里父工程必须使用pom打包方式 第二步:创建子工程 右击父工程,创建m...

科技小能手
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失

在Spring Cloud中我们用Hystrix来实现断路器,Zuul中默认是用信号量(Hystrix默认是线程)来进行隔离的,我们可以通过配置使用线程方式隔离。 在使用线程隔离的时候,有个问题是必须要解决的...

xiaomin0322
35分钟前
1
0
使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

本文首发于:Jenkins 中文社区 本文要点: 设计一条 Spring Boot 最基本的流水线:包括构建、制品上传、部署。 使用 Docker 容器运行构建逻辑。 自动化整个实验环境:包括 Jenkins 的配置,J...

Jenkins中文社区
40分钟前
1
0
springcloud配置中心和消息总线,学习,记录其中的问题

改造配置中心的客户端,接入消息总线 1.增加pom文件的引用 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20......

夜中孤影
52分钟前
3
0
gzip压缩

tar -zcvf gz包路径 被压缩的路径 tar -zcvf /home/xxx/test.tar.gz hello gz包的路径可以是 完整的也可以相对 , 被压缩的路径 不要全路径 不然压缩包里也会有全路径...

shzwork
59分钟前
3
0
rancher-1

部署rancher 官方快速部署 https://www.cnrancher.com/quick-start/ 部署命令 mkdir /data/rancher -p# 建立存放rancher数据的目录sudo docker run -d --restart=unless-stopped -v /dat......

以谁为师
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部