写在前面

这个例子是在族文件是测试的(打开Revit,选择新建族,选择公制常规模型,如下图一)。创建好以后是空白的,如下图二

图一

图二

实现例子前有几个疑问:

拉伸实体是什么?创建拉伸实体的方法是什么?

创建自定义族类型的方法是什么?方法是什么?

问题解答:

拉伸实体是什么?创建拉伸实体的方法是什么?

答:各种百度也没有个所以然,询问同事以后得到一个通俗的解释,说创建族的时候,你给定一个正方形,就可以做一个正方体出来,同理,给一个圆,就能做一个圆柱出来,拉伸实体的意思大概根据平面图形,拉伸呈现给你一个加了厚度的立体图形吧。

创建拉伸实体的方法 doc.FamilyCreate.NewExtrusion(),要求参数如下:

创建自定义族类型的方法是什么?方法是什么?

答:使用FamilyMananger中的NewType来实现族类型的添加,在创建完成后,Revit会把新创建的族类型设置为当前族类型。

创建族类型的方法:doc.FamilyManager.NewType("我创建的类");,代码中的例子,参数就是一个名字,string类型的。

代码:

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;namespace BasicCreation
{[TransactionAttribute(TransactionMode.Manual)][RegenerationAttribute(RegenerationOption.Manual)]public class Class1 : IExternalCommand{public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){UIDocument uidoc = commandData.Application.ActiveUIDocument;Document doc = uidoc.Document;Transaction trans = new Transaction(doc,"LS");trans.Start();Curve c1 = Line.CreateBound(new XYZ(0,0,0),new XYZ(0,10,0));Curve c2 = Line.CreateBound(new XYZ(0,10,0), new XYZ(10,10,0));Curve c3 = Line.CreateBound(new XYZ(10,10,0), new XYZ(10,0,0));Curve c4 = Line.CreateBound(new XYZ(10,0,0), new XYZ(0,0,0));CurveArray curveArray = new CurveArray();curveArray.Append(c1);curveArray.Append(c2);curveArray.Append(c3);curveArray.Append(c4);CurveArrArray curveArr = new CurveArrArray();curveArr.Append(curveArray);//doc.FamilyCreate.NewExtrusion(true,curveArr,SketchPlane.Create(doc,new Plane(new XYZ(0,0,1),XYZ.Zero)),10);doc.FamilyCreate.NewExtrusion(true, curveArr, SketchPlane.Create(doc, Plane.CreateByNormalAndOrigin(new XYZ(0,0,1),XYZ.Zero)), 10);doc.FamilyManager.NewType("我创建的类");trans.Commit();return Result.Succeeded;}}
}

效果:

【Revit二次开发】创建一个拉伸实体(正方体)+创建一个自定义族类型相关推荐

  1. Revit二次开发之职业精神篇

    今天在某网站看到蛋总的免费资源被某些人拿来抄袭后改头换面,并以高价出售,感觉特别来气:作为蛋总免费分享资源的受益者,突然感慨万千,以这篇文章来表达一些自己的看法,希望作为Revit二次开发的爱好者在学 ...

  2. Revit二次开发——三角面创建

    Revit二次开发--三角面创建 文章目录 Revit二次开发--三角面创建 前言 一.三角面是什么? 二.三角网 三.使用步骤 1.引入库 2.开启事务 3.创建 总结 前言 三角面是创建实体的基础 ...

  3. Revit二次开发——Ribbon菜单的创建以及各种不同的button(按钮)的代码总结

    目录 一.创建普通的一个panel里面三个32px*32px的pushbutton,剩下两个写法一样 二.创建三个层叠按钮 层叠按钮图标需为16px*16px 层叠按钮最多为一列放三个,这个也要创建个 ...

  4. 【Revit 二次开发 】创建带箭头的文字注释(字体设置+引线箭头设置)

    此篇文章仅是自己的开发经验分享,不具备官方参考价值,如有不足,欢迎批评指正 开发目的: 创建一个带箭头的文字注释 字体为新宋体,大小2.5mm,宽度系数0.7,箭头为30度实心箭头 like this ...

  5. Revit 二次开发 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项

    写了几个WPF界面,在addinmangager时没有发现问题,当编到一个addin文件中打包时,报错 未能加载文件或程序集"Microsoft.Xaml.Behaviors, Public ...

  6. revit二次开发--异形柱翻模

    最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...

  7. Revit二次开发——图元(元素)编辑

    HelloRevitApp 元素(图元) 图元属性 获取图元 编辑 移动 旋转 镜像 复制 删除 组合 阵列 元素(图元) 元素的几个重要的属性包括: Category(类别),Location(位 ...

  8. Revit二次开发——扩展存储

    Revit二次开发--扩展存储 ​  在revitAPI中,提供了Extensible Storage framework,可以使开发者将需要存储的数据存到Revit的rvt文件中, 扩展的数据始终跟 ...

  9. Revit二次开发之绘制钢筋

    第一次在博客园上写东西,也不知道该写些什么,我想就写点最近项目到遇到的问题吧. 最近在做一个小项目,具体需求大概是在一个revit模型中的对应的楼板位置绘制钢筋. 由于刚接触Revit二次开发,之前也 ...

  10. Revit二次开发从入门到精通学习之路, (含Revit二次开发教程下载)

    Revit二次开发从入门到精通学习之路 Autodesk Joe Ye叶雄进 2. 18 2014    yexiongjin@hotmail.com Revit在国内的应用越来越广泛, Revit ...

最新文章

  1. g-gdb调试core文件
  2. oracle经常使用函数(1)
  3. matlab定积分上界求解,定积分问题的数值求解及Matlab实现.pdf
  4. js关闭窗口无提示,不支持FF
  5. Backend cache is always enabled
  6. 编程语言基础 c语言同步教案,C语言程序设计基实验教案.doc
  7. iar stm32_STM32延时函数的四种方法
  8. python epub.js_如何利用Python打包HTML页面为epub?
  9. jQuery UI.Layout
  10. 运动会管理系统java
  11. Android基于在线地图的轨迹跟踪服务
  12. “数字孪生”语境下的城市:拼图模式与航向之争
  13. unity屏幕适配以及坐标点适配
  14. vba 邮件body html,Excel VBA中的Outlook电子邮件和签名 - .Body vs .HTMLbody
  15. 使用线程安全型双向链表实现简单 LRU Cache 模拟
  16. git最佳实践之feature和hotfix分支
  17. ubuntu 有key登入sshd Failed publickey for xxx from xx port Xxx ssh2
  18. 微软测试基于云的剪贴板App,可跨平台同步
  19. 华科教授因学生住宿问题投诉后勤处:被学校处分,取消两年评优资格
  20. 杰克马,请问有钱就是好人吗?

热门文章

  1. Kinect1.8+Processing2.2 开发
  2. 【假设检验】MATLAB实现K-S检验
  3. linux系统数据库类型,linux系统下调度数据库类型资源库中的kettle job
  4. Fluke ADPT连接器给福禄克万用表插上翅膀----直流电压测量
  5. 2016年9月13-9月18日
  6. RGBA-ABGR-RGB666
  7. 零散的JavaScript知识
  8. Linux征途——多路转接模型
  9. Windows 任务管理器 PF使用率 总数 核心内存 物理内存
  10. 学院计算机和英语b没过能不能毕业,英语B级没过能拿到毕业证吗?