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 ...
随机推荐
- idea-plugin
codehelper.generator https://github.com/zhengjunbase/codehelper.generator?id=5f5b0005-11fb-48e4-bdb7 ...
- 为你详细解读HTTP请求头的具体含意
当我们打开一个网页时,浏览器要向网站服务器发送一个HTTP请求头,然后网站服务器根据HTTP请求头的内容生成当次请求的内容发送给浏览器.你明白HTTP请求头的具体含意吗?下面一条条的为你详细解读,先看 ...
- ajax最基础入门
1.介绍 AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重 ...
- .NetCore 使用AutoMapper
添加引用 AutoMapper AutoMapper.Extensions.Microsoft.DependencyInjection 注册服务 services.AddAutoMapper(); 配 ...
- The last access date is not changed even after reading the file on Windows 7
https://superuser.com/questions/251263/the-last-access-date-is-not-changed-even-after-reading-the-fi ...
- JS 解析JSON实现导序
var chartData = [ { "online": '2013-10-23', "new": 0.00, "login": 0.00 ...
- webstorm减少内存占用
首先,按照我说的设置之后要重启才行. 在项目里找到不需要监听的文件夹右键:Mark Directory As => Cancel Exclusion 然后重启,嘿嘿,成功了!
- Zookeeper Canary
ZooKeeper Canary我理解用于测试ZK节点是否正常的心跳服务,这是从ClouderaManager中粘下来的: 这是 ZooKeeper 服务级运行状况测试,用于检查基本客户端操作是否正常 ...
- Redis高可用之哨兵模式Sentinel配置与启动(五)
0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...
- code vs 1094 FBI树 2004年NOIP全国联赛普及组
题目描述 Description 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串. FBI树是一种二叉树[1],它的结点类型 ...