![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Revit二次开发
智商偏低
这个作者很懒,什么都没留下…
展开
-
通过注册表获取Revit的安装目录
/// <summary> /// 获取某个版本安装路径 /// </summary> /// <param name="Version"></param> /// <returns></returns> public static string GetIntallPathInfo(string Version) { ...原创 2021-04-06 10:19:09 · 1028 阅读 · 1 评论 -
向Revit发送虚拟按键
有时候我们需要能够发送虚拟按键到Revit中,调用命令也好触发外部命令窗体也好,总之知道怎么发送虚拟按键还是有点必要的了,当然离不开WIndowsAPI了——上代码这里我们声明两个函数一个是设置窗体焦点,一个是发送虚拟按键![DllImport("user32.dll")]internal static extern bool SetForegroundWindow(IntPtr hWnd);[DllImport("user32.dll")]第一个值为虚拟键值,第二个参数为扫描不设置为0,第三.原创 2021-03-29 18:46:21 · 132 阅读 · 0 评论 -
Revit添加新的判断条件,是否存在模型, 是否重复布置
int num1 = new FilteredElementCollector(doc, doc.ActiveView.Id).OfClass(typeof(Group)).ToList().Count; if (num1 == 0) { MessageBox.Show("当前视图中无模型,请先放置模型"); return Result.Cancelled; }...原创 2021-03-28 14:21:06 · 229 阅读 · 0 评论 -
Revit二次开发获取当前激活视图的所有图元
//获取楼层平面视图 var aView = views.ToList().Find(s => (s as Autodesk.Revit.DB.View).ViewType == ViewType.FloorPlan) as Autodesk.Revit.DB.View; uiDoc.ActiveView = aView; //获取所有已打开视图 IList<U...原创 2021-03-24 08:39:36 · 1457 阅读 · 0 评论 -
Revit二次开发删除模型线
private void DeleteModelCurve(Document doc) { using (Transaction tr = new Transaction(doc, "删除模型线")) { tr.Start(); //过滤所有的模型线 List<ElementId> listCurveId = new List<El.原创 2021-03-22 09:35:27 · 826 阅读 · 0 评论 -
Revit二次开发:修改视图范围
想要修改平面视图中的视图范围,API为我们提供了PlanViewRange类。ViewPlan activeView=doc.ActiveView;//获取当前的活动视图PlanViewRange pr=activeView.GetViewRange();//获取当前视图的视图范围pr.SetOffset(PlanViewPlane.TopClipPlane,0);//顶部pr.SetOffset(PlanViewPlane.CutPlane,0);//剖切面pr.SetOffset(Pla原创 2021-03-11 16:45:20 · 639 阅读 · 0 评论 -
Revit二次开发注册面板
public class TileMain : IExternalApplication{ //FLB 创建房间楼层的面板 private static DockablePaneId fengFunctionId = new DockablePaneId(new Guid("469F0A8B-12E6-4148-BA0E-C4E251C7B1A7")); public static MainWin mw; public static Dockab.原创 2021-03-09 14:02:16 · 326 阅读 · 0 评论 -
Revit 二次开发隐藏所有图元
//获取当前文档的所有元素 UIDocument uiDoc = app.ActiveUIDocument; Document doc = uiDoc.Document;//过滤所有视图 IList<Element> views = new FilteredElementCollector(doc).OfClass(typeof(Autodesk.Revit.DB.View)).ToElements(); //获取楼层平面视图 var aView = views.ToList(..原创 2021-03-09 09:27:20 · 606 阅读 · 0 评论 -
Revit二次开发入门
原创 2021-03-08 21:52:43 · 174 阅读 · 0 评论 -
Revit引用WPF界面
https://blog.csdn.net/birdfly2015/article/details/87883233原创 2021-03-05 21:50:03 · 361 阅读 · 0 评论 -
Revit二次开发(一)
添加配置文件<?xml version="1.0" encoding="utf-8"?><RevitAddIns> <AddIn Type="Application"> <Name>Ribbon</Name> <Assembly>D:\FLB\WindowsTest\WindowsTest\WindowsTest\bin\Debug\WindowsTest.dll</Assembly> &原创 2021-03-05 20:43:16 · 545 阅读 · 0 评论 -
Revit二次开发将WPF面板Owner设置为Revit窗体
在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,TopMost的窗口没有随着Revit最小化,而是孤零零的显示在屏幕上并且遮挡了 其他窗口。其实只需要将Revit的窗体设置为弹出窗体的Ower就可以了,这样也不需要设置topmost。代码亲测可以使用。//实例WPF窗体WindowsIcon win=new WindowsIcon();...原创 2021-03-04 17:49:13 · 544 阅读 · 1 评论