【Revit二次开发】创建一个拉伸实体(正方体)+创建一个自定义族类型
写在前面
这个例子是在族文件是测试的(打开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二次开发】创建一个拉伸实体(正方体)+创建一个自定义族类型相关推荐
- Revit二次开发之职业精神篇
今天在某网站看到蛋总的免费资源被某些人拿来抄袭后改头换面,并以高价出售,感觉特别来气:作为蛋总免费分享资源的受益者,突然感慨万千,以这篇文章来表达一些自己的看法,希望作为Revit二次开发的爱好者在学 ...
- Revit二次开发——三角面创建
Revit二次开发--三角面创建 文章目录 Revit二次开发--三角面创建 前言 一.三角面是什么? 二.三角网 三.使用步骤 1.引入库 2.开启事务 3.创建 总结 前言 三角面是创建实体的基础 ...
- Revit二次开发——Ribbon菜单的创建以及各种不同的button(按钮)的代码总结
目录 一.创建普通的一个panel里面三个32px*32px的pushbutton,剩下两个写法一样 二.创建三个层叠按钮 层叠按钮图标需为16px*16px 层叠按钮最多为一列放三个,这个也要创建个 ...
- 【Revit 二次开发 】创建带箭头的文字注释(字体设置+引线箭头设置)
此篇文章仅是自己的开发经验分享,不具备官方参考价值,如有不足,欢迎批评指正 开发目的: 创建一个带箭头的文字注释 字体为新宋体,大小2.5mm,宽度系数0.7,箭头为30度实心箭头 like this ...
- Revit 二次开发 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项
写了几个WPF界面,在addinmangager时没有发现问题,当编到一个addin文件中打包时,报错 未能加载文件或程序集"Microsoft.Xaml.Behaviors, Public ...
- revit二次开发--异形柱翻模
最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...
- Revit二次开发——图元(元素)编辑
HelloRevitApp 元素(图元) 图元属性 获取图元 编辑 移动 旋转 镜像 复制 删除 组合 阵列 元素(图元) 元素的几个重要的属性包括: Category(类别),Location(位 ...
- Revit二次开发——扩展存储
Revit二次开发--扩展存储 在revitAPI中,提供了Extensible Storage framework,可以使开发者将需要存储的数据存到Revit的rvt文件中, 扩展的数据始终跟 ...
- Revit二次开发之绘制钢筋
第一次在博客园上写东西,也不知道该写些什么,我想就写点最近项目到遇到的问题吧. 最近在做一个小项目,具体需求大概是在一个revit模型中的对应的楼板位置绘制钢筋. 由于刚接触Revit二次开发,之前也 ...
- Revit二次开发从入门到精通学习之路, (含Revit二次开发教程下载)
Revit二次开发从入门到精通学习之路 Autodesk Joe Ye叶雄进 2. 18 2014 yexiongjin@hotmail.com Revit在国内的应用越来越广泛, Revit ...
最新文章
- g-gdb调试core文件
- oracle经常使用函数(1)
- matlab定积分上界求解,定积分问题的数值求解及Matlab实现.pdf
- js关闭窗口无提示,不支持FF
- Backend cache is always enabled
- 编程语言基础 c语言同步教案,C语言程序设计基实验教案.doc
- iar stm32_STM32延时函数的四种方法
- python epub.js_如何利用Python打包HTML页面为epub?
- jQuery UI.Layout
- 运动会管理系统java
- Android基于在线地图的轨迹跟踪服务
- “数字孪生”语境下的城市:拼图模式与航向之争
- unity屏幕适配以及坐标点适配
- vba 邮件body html,Excel VBA中的Outlook电子邮件和签名 - .Body vs .HTMLbody
- 使用线程安全型双向链表实现简单 LRU Cache 模拟
- git最佳实践之feature和hotfix分支
- ubuntu 有key登入sshd Failed publickey for xxx from xx port Xxx ssh2
- 微软测试基于云的剪贴板App,可跨平台同步
- 华科教授因学生住宿问题投诉后勤处:被学校处分,取消两年评优资格
- 杰克马,请问有钱就是好人吗?