仅OfCategory()过滤的元素包含系统FamilySymbolOfClass(typeof(FamilyInstance))过滤出来文档中族实例. ;         ;         ;             ;         }         TaskDialog.Show("count", iSymbol + "," + iFi);         ts.Commit();         return Result.Succeeded;    …
管道只能通过PipeType过滤出来类型属性,只能是系统族的类型属性.管道实例过滤不能用族符号和族实例,要用Pipe using System; using System.Collections.Generic; using System.Linq; using System.Text; using WinForm = System.Windows.Forms; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Re…
>ADN: DEVR3894  >ADN service level: Professional  >产品:Revit MEP 2012  >版本:2012  >语言:中文  >操作系统:window7 64bit  >联系电话:137xxxx1960 >问题标题:关于修改元素参数的问题? >问题内容:  上次提问,关于遍历链接文档创建空间的问题. 最终解决办法是:在链接文档的时候选择“原点到原点” 失败的原因就是坐标系没有对正. 这次的问题如下: 我…
Revit API提供根据射线来寻找经过的元素.方法是固定模式,没什么好说.关键代码:doc.FindReferencesWithContextByDirection(ptStart, (ptEnd - ptStart), view3d) );         XYZ ptEnd = curve.get_EndPoint();         , , 0.01);//向量偏移的方法,这里向下偏移.         ptStart = ptStart - offset;         ptEnd…
查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现几乎所有的视图都会返回true,这个结果并不是我们想要的. public void ishide() { Element elem = Document.GetElement()); FilteredElementCollector fec = new FilteredElementCollecto…
在Revit API中加载族可以使用Doc.LoadFamily方法,传入要加载的族文件路径名,但是这种方式有一种缺点,就是如果族文件在当前工程中没有加载的话则返回成功,如果已经加载过,则返回失败,也就是拿不到FamilySymbol实例,而根据族生成实例图元又需要这个FamilySymbol.网上看到有些帖子说可以传入IFamilyLoadOptions实例就可以,但是笔者多次尝试,该方法均没有成功,始终返回失败,无奈放弃这种方法,改为在当前工程中查找该族是否加载过,如果加载则直接返回Fami…
一.前言         应该是第二次写关于Revit API的博文了.虽然在BIM企业中工作,从事桌面BIM软件开发,但是我是不怎么喜欢写Revit API相关的代码.平时更多的是在写界面展示,架构维护,授权验证这块.为什么不喜欢Revit API呢?其实Autodesk封装的这套API是不错的(我在之后的工作中用起来挺舒服的),可能还是人比较懒吧,老查英文的API手册有点烦,而且这手册界面让我想起了上学时帮导师写ObjectARX的痛苦经历... 吐槽完之后,开始上干货.为什么需要去判断梁构…
1.获取共享参数 private string GetSharInfo(Autodesk.Revit.ApplicationServices.Application revitApp) { StringBuilder str = new StringBuilder(); DefinitionFile definitionFile = revitApp.OpenSharedParameterFile(); DefinitionGroups groups = definitionFile.Group…
话不多说,做个笔记 FamilyInstance instance; var typeid = instance.GetTypeId(); var symbol = RevitDoc.GetElement(typeid) as FamilySymbol; var familyName = symbol.FamilyName; var defaultFamilySymbolID = family.GetFamilySymbolIds().ToList()[familySymbolIndex];va…
//过滤选择,加上过滤条件,没有看出来差别. [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class cmd : IExternalCommand {     public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)     {         U…
感觉这个函数不错.通过这种方式寻找元素经常需要用到. )         {  ];         }         // cannot find it.         return null;     }     public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)     {         UIApplication app = commandD…
public IList<Element> findElementsByCategory(Autodesk.Revit.UI.UIApplication aApp, Document aDoc, BuiltInCategory ACategory) { FilteredElementCollector collector = new FilteredElementCollector(aDoc).OfCategory( ACategory).WhereElementIsNotElementTyp…
start [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class cmd : IExternalCommand {     public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)     {         UIDocument uiDoc = c…
几何实体的创建方法之一:构成封闭底面,指定拉伸方向与拉伸高度.GeometryCreationUtilities ;         , pt.Y - dBoxLength / , pt.Z);         XYZ pt2 = , pt.Y - dBoxLength / , pt.Z);         XYZ pt3 = , pt.Y + dBoxLength / , pt.Z);         XYZ pt4 = , pt.Y + dBoxLength / , pt.Z);      …
;         ;         ;         ;         }         ;         }         ;         }         TaskDialog.Show("duct", ductAll + "," + ductIs + "," + ductIsNot);         return Result.Succeeded;     } } url:http://greatverve.cnblo…
start , , )) < , , -)) < , dHeight = ;             ConnectorSetIterator csi = fi.MEPModel.ConnectorManager.Connectors.ForwardIterator();             )                         {                             ) < ;             ;             IList<…
系统族可以通过内参遍历,遍历出来是个FamilySymbol喷头属于系统族,但不能通过NewDuct();类似这样的方法布置.必须使用 NewFamilyInstance() );                 p *= 0.3333333333333333;                 break;             }             return p;         }     } } url:http://greatverve.cnblogs.com/p/api-S…
1. Door在Revit里面的element类型是FamilyInstance. 2. Door在Revit里面的category类型是OST_Doors. 3. 想要过滤特定类型的element需要ElementClassFilter. 4. 想要过滤特定类型的category需要ElementCategoryFilter. 5. 想要让两种类型的filter同时起作用需要LogicalAndFilter. 6. 找到文档(Document)里的element需要FilteredElemen…
OwnerFamily即族模板.获取类别的方法:Document.Settings.Categories.get_Item(BuiltInCategory.OST_Columns); //判断是不是柱族模板 [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class cmdCheckFamily : IExternalCommand {     bool ValidateDocumen…
DOM扩展 对DOM的两个主要扩展是SelectorsAPI(选择符API)和HTML5 SelectorsAPI(选择符API)是由W3C发起制定的一个标准,致力于浏览器原生支持CSS查询,SelectorsAPILevel 1的核心是两个方法:querySelector()和querySelectorAll(),可以通过Document及Element类型的实例调用他们. querySelector()方法接受一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回nul…
[Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class cmd20120604 : IExternalCommand {     public Result Execute(ExternalCommandData cmdData, ref string messages, ElementSet elements)     {         UIDocument ui…
英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don’t Need jQuery!提倡我们使用原生的JavaScript,所以收集整理了jQuery语法对应的DOM API : 原作者参数的原因可以看这里:http://blog.garstasio.com/you-dont-need-jquery/why-not/ ,个人同意他的观点,简单的页面或应…
Webdriver提供了8种元素定位方法:id.name.class name.tag name.link text.partial link text.xpath.css selector 一.以上8种元素定位,Webdriver提供两套写法 1. 用By定位元素:通过By来声明定位的方法,需引入By模块 find_element(By.ID,"kw") find_element(By.NAME,"wd") 2. 直接定位 find_element_by_id(&…
start ;             )                 {                     eId = item;                 }             }             tag = doc.get_Element(eId) as IndependentTag;         }         catch (Exception)         {             ts.Dispose();             retu…
Revit内置了一些命令,直接调用Revit操作方式. 可以去API文档查询PostableCommand枚举,还是很多的. 话不多说,直接上代码 var commandId = RevitCommandId.LookupPostableCommandId(PostableCommand.LineStyles); if (app.CanPostCommand(commandId)) { app.PostCommand(commandId); }…
在Revit中有一个相机功能可以以相机视角产生一个视图.一开始我在Revit2016的API文档中找关键词Camera,但是没什么收获. 其实这个相机功能的真正核心是创建透视视图:View3D.CreatePerspective(Document, ElementId) 简单的代码示例如下: var uiDocument = commandData.Application.ActiveUIDocument;var doc = uiDocument.Document;IEnumerable<Vie…
start ] ;);                 if (xyzStart.X > pb.Max.X || xyzStart.Y < pb.Max.Y)                     bWhile = false;                 else                     listXYZ.Add(xyzStart);             }             //批量布置             List<ACreat.FamilyIns…
系统族,可以直接转化为对应的类(Wall,Duct)然后取得几何信息,普通族需要转化为FamilyInstance ))         {           TaskDialog.Show()               FindBottomFace(solid2);           }         }       }     }     )         {           TaskDialog.Show()       {         FindBottomFaces(s…
与取得元素变量的内参名称类别有个BuiltInParameter //取得内参名称 [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class cmdGetBuiltInParam : IExternalCommand {     public Result Execute(ExternalCommandData cmdData, ref string msg, Elem…
//放置卫浴装置 [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class cmdSetPlumb : IExternalCommand {     public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)     {         UIDocumen…