Revit Family API 创建参考平面
使用API来编辑族时,使用doc.FamilyCreate.NewReferencePlane();创建参考平面。
//Revit Family API 创建参考平面
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class cmdCreateReferencePlane : IExternalCommand
{
//添加垂直参考平面(Family API),通过平面上两点与向量。
void AddReferencePlane_VerticalOffset(Document doc, View view)
{
XYZ pt1 = new XYZ(-0.5, -2.0, 0.0);
XYZ pt2 = new XYZ(-0.5, 2.0, 0.0);
XYZ vec = XYZ.BasisZ;
ReferencePlane refPlane = doc.FamilyCreate.NewReferencePlane(pt1, pt2, vec, view);
refPlane.Name = "OffsetV";
}
//添加水平参考平面(Family API),通过平面上两点与向量。
void AddReferencePlane_HorizontalOffset(Document doc, View view)
{
XYZ pt1 = new XYZ(2.0, -0.5, 0.0);
XYZ pt2 = new XYZ(-2.0, -0.5, 0.0);
XYZ vec = XYZ.BasisZ;
ReferencePlane refPlane = doc.FamilyCreate.NewReferencePlane(pt1, pt2, vec, view);
refPlane.Name = "OffsetH";
}
//使用三个点来确定参考平面
void AddReferencePlane_VerticalOffset2(Document doc)
{
XYZ pt1 = new XYZ(-0.5, -2.0, 0.0);
XYZ pt2 = new XYZ(-0.5, 2.0, 0.0);
XYZ pt3 = new XYZ(-0.5, -1.0, 1.0);
View view = findElement(doc, typeof(ViewPlan), "Lower Ref. Level") as View;
if (view != null)
{
ReferencePlane refPlane = doc.FamilyCreate.NewReferencePlane2(pt1, pt2, pt3, view);
refPlane.Name = "OffsetV";
}
}
public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
{
UIApplication app = commandData.Application;
Document doc = app.ActiveUIDocument.Document;
Selection sel = app.ActiveUIDocument.Selection; Transaction ts = new Transaction(doc, "CreateReferencePlane");
ts.Start();
//垂直参考平面
AddReferencePlane_VerticalOffset(doc, doc.ActiveView);
//AddReferencePlane_VerticalOffset2(doc);
//水平参考平面
AddReferencePlane_HorizontalOffset(doc, doc.ActiveView); ts.Commit(); return Result.Succeeded;
}
//通过类型与名称找Element
Element findElement(Document _rvtDoc, Type targetType, string targetName)
{
// get the elements of the given type
//
FilteredElementCollector collector = new FilteredElementCollector(_rvtDoc);
collector.WherePasses(new ElementClassFilter(targetType)); // parse the collection for the given name
// using LINQ query here.
//
var targetElems = from element in collector where element.Name.Equals(targetName) select element;
List<Element> elems = targetElems.ToList<Element>(); if (elems.Count > )
{ // we should have only one with the given name.
return elems[];
} // cannot find it.
return null;
}
}
from:http://greatverve.cnblogs.com/p/NewReferencePlane.html
Revit Family API 创建参考平面的更多相关文章
- Revit通过API创建共享参数
Revit共享参数是通过创建一个.txt类型的文件来保存相关信息,一旦与项目保存完毕之后,共享参数也就变成了项目参数(项目参数无法通过API创建),项目参数是保存在Revit项目里面的,所以此时这个. ...
- Revit Family API 添加对齐
没测试成功,留待以后研究. [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] ; ; i < nV ...
- Revit Family API 添加几何实体
先创建一个封闭曲线createProfileLShape();再创建实体,这里需要手工画一个参考平面; ; i < nVerts; ++i) { Line l ...
- 使用Azure REST API创建虚拟机
Hollis Yao, Shihao Rong 使用REST API创建虚拟机之前,首先要确保Azure订阅中已经建好了"云服务"和"存储账号".如果没有的话 ...
- 使用hbase的api创建表时出现的异常
/usr/lib/jvm/java-7-openjdk-amd64/bin/java -Didea.launcher.port=7538 -Didea.launcher.bin.path=/usr/l ...
- (译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0)
(译)iPhone: 用公开API创建带小数点的数字键盘 (OS 3.0, OS 4.0) 更新:ios4.1现在已经将这个做到SDK了.你可以设置键盘类型为UIKeyboardTypeDecimal ...
- JavaEE Tutorials (11) - 使用Criteria API创建查询
11.1Criteria和Metamodel API概述16811.2使用Metamodel API为实体类建模170 11.2.1使用元模型类17011.3使用Criteria API和Metamo ...
- 使用Win32 API创建不规则形状&带透明色的窗口
前一阵突然想起了9月份电面某公司实习时的二面题,大概就是说怎么用Win32 API实现一个透明的窗口,估计当时我的脑残答案肯定让面试官哭笑不得吧.所以本人决定好好研究下这个问题.经过一下午的摸索,基本 ...
- Revit 2015 API 的全部变化和新功能
这里从SDK的文章中摘录出全部的API变化.主要是希望用户用搜索引擎时能找到相关信息: Major changes and renovations to the Revit API APIchange ...
随机推荐
- C# 压缩文件 的创建
using System;using System.IO.Compression; using System.Collections.Generic;using System.Linq;using S ...
- javascript 模拟按键点击提交
上代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> & ...
- WPF 中定时器的使用
DispatcherTimer timer; private void Window_Loaded(object sender, RoutedEventArgs e) { timer = new Di ...
- 【坐在马桶上看算法】算法4:队列——解密QQ号
新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则. ...
- apache显示目录文件列表
在apache服务器下访问一个目录,如果没有index.html/index.php,则会报错. 为了访问文件夹: 1. 在 /var/www/html 目录下新建 /d/ mkdir d 2. t ...
- 在Scrapy项目【内外】使用scrapy shell命令抓取 某网站首页的初步情况
Windows 10家庭中文版,Python 3.6.3,Scrapy 1.5.0, 时隔一月,再次玩Scrapy项目,希望这次可以玩的更进一步. 本文展示使用在 Scrapy项目内.项目外scrap ...
- 【转】手把手教你 Mockito 的使用
原文链接:https://segmentfault.com/a/1190000006746409 什么是 Mockito Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Moc ...
- Ext.util.Format.date 时间格式的设置与转换
Ext.util.Format.date 如下这段简单的代码: var d = new Date(value.time); var s = Ext.util.Format.date(d, 'Y-m- ...
- supervisor安装部署和使用实例
Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit,monit和supervisord的一个比较大的差异是supervisord管理的进程必须由superviso ...
- JavaScript中变量的相互引用
http://www.jb51.net/article/23387.htm