问题标签 [revit-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 你能在 c# 程序中抑制 Revit 中的“重复标记”提示吗?
我有一个设置“标记”参数值的程序,每个“相同”的梁或柱都是唯一的。这通常会导致多个梁具有相同的“标记”参数,并且 Revit 会显示奇怪的“警告 - 可以忽略......元素具有重复的“标记”值”(奇怪,因为它不能真正被忽略,因为它总是显示)。
有谁知道如何在程序执行期间关闭此警告?我可能会收集其他元素类型(例如连接、加劲肋甚至基础)并分配“标记”参数,并且最好避免该警告出现 4 或 5 次。
python-3.x - 在 Python 中创建项目 ID Revit API 的集合
因此,我尝试使用输入字符串列表在使用 Revit API 的视图中隔离它们。我已经做到了这一点,但是我在尝试创建一个集合的地方遇到了困难,该集合在视图中获取所有元素并删除从输入 ID 创建的元素。我这样做是为了得到一组除我想要隔离的元素之外的所有元素。
我将不胜感激帮助解决此错误。我得到了“预期的 ICollection [ElementId],已设置”。我猜问题出在排除过滤器上,我需要在其中创建要排除的 ID 集合,但我不知道如何操作。先感谢您。提前感谢您的帮助!
c# - 用于 ID_PROCESS_DROP 的 Revit API AddInCommandBinding
我正在尝试将家庭的拖放绑定到项目中并禁用它。
我的代码基于 Revit 2014 SDK Sample DisableCommand
我的代码具有 .CanHaveBinding 测试,并且我有一个显示成功或失败的对话框。当我运行该命令时,它显示成功,但我仍然能够拖放家庭。有任何想法吗?
c# - 在 Revit 中创建新的子类别线型
我创建了收集 Revit 中现有“线型”列表的代码。
这将获取线条样式列表,但是当我尝试时: Category New_Line_Style = Line_Category.NewSubCategory.... Visual Studio 告诉我没有 NewSubCategory 的定义
谁能告诉我如何创建一个新的“线条”子类别,或者我在上面的代码中做错了什么?
注意:我发现了主要问题。我试图将子类别添加到我的变量 Line_Category (它本身就是一个类别,应该是一个父类别)。我还尝试将子类别添加到 All_Categories(它已被转换为列表而不是 CategoryNameMap)。
当我添加一个未强制转换的变量时,NewSubCategory 变得可用。但是,现在我无法看到如何设置与我的新样式关联的线条模式——我在网上找到的唯一示例建议使用 New_Line_Style.LinePatternId,但这不在我的新子类别的可用选项列表中。有没有办法设置创建新子类别时使用的默认模式?
c# - Autodesk Revit Architecture 2014 .NET API C# 在链接中查找实例空间
我有以下设置: 文件 A 是我的建筑模型,包括墙壁、房间、家具......文件 B 是我的机电文件,包括闪电装置、插座......链接文件。
我目前正在 Revit 中创建一个插件,它会生成给定房间内的元素列表。现在,为 HOST 文件(文件 A)中的元素生成此列表并不难,只需迭代所有元素,检查它是否为 anInstance
并获取.Room
that 的属性Instance
。
但是,对于链接文档(文件 B)中的实例,该.Room
属性始终返回 null。
我希望如果有人已经偶然发现了这个问题的解决方案。现在我看到的唯一解决方案是绑定链接的文档,以便将其转换为组。但是,1:我看不到通过 API 绑定链接的可能性,以及 2:转换为组会丢弃链接文档的所有优点。
c# - How can I run built-in Revit commands from C#
I am wanting to know if there is a methodology to feed calculated values to a built-in Revit command from inside a C# program, and then possibly (based on results, such as whether this makes an element too short or too long for a known "maximum span" of a particular beam) continue with my C# program and change the beam size). I am told you can invoke the Revit built-in command after execution of your c# external command, but you cannot then return to the c# program
As another example, I want to select an element to trim/extend to, and have the code figure out which "Joist" beams to extend to this element. My program would do extended filtering (such as "Reference Level", or "Workset", or "Comments", or "Mark" parameters (etc.)) and then run the built in function, providing the element to extend to and then each of my beams.
I've tried internet searches, as well as the Revit SDK samples, and nothing obviously used this (but there are a lot of csproj's to look through).
Can anyone verify that you cannot go back and forth between the C# program and the Revit built-in command?
c# - 获取 Revit 参考平面或网格的几何信息是否有秘诀?
我正在编写代码以使用来自许多不同 Revit 类别的元素来找到两个端点以用作虚拟“修剪/延伸”平面。我有这个为细节线和结构框架工作......
但是,当我对网格和参考平面使用类似方法时,Revit 会响应错误(通常是“对象引用未设置为对象的实例”)。我已经探索过“Snoop”,但如何获取列出的值似乎并不明显,这些值位于“Plane”等选项卡内。有谁知道我如何访问类似的信息(例如网格或参考平面上的任何两个点)?目前,我正在绕过提取的点,并使用....
.....但是直接找到可用点会更好。
revit - CopyElements 因 ViewSheet 失败
我试图将一些 ViewSheet 元素从一个文档复制到另一个文档,但我总是得到一个:“复制一个或多个元素失败。”
它与 ViewDrafting 和 ViewSchedule 一起工作正常 - 已经检查了 SDK 上的 DuplicateViews 示例,并且此代码完全基于此。
这是失败的行:
我想知道是否有办法减轻这些 CopyElements 错误,看看我是否遗漏了什么。
c# - Revit C# API 在族内重命名或添加参数
我修改了许多 Revit 梁和柱族,以添加一个参数,用于关联一系列模型元素以进行调度。现在我的老板要求我更改该参数的名称(根据他最初建议的名称)。
请注意,此参数是实例参数,不是共享参数。
现在我想以编程方式做两件事——首先,我想在该参数使用新名称时将其重命名。其次,如果尚未在这些系列中定义该参数(新名称),我想将该参数(新名称)添加到其他梁/柱系列。
我在网上探索了几种方法,例如:
这将返回项目中可用的共享参数列表。
我也探索了 FamilyManager,但没有很好的记录。我试过了:
doc.FamilyManager.RenameParameter(FamilyParameter ***** , "Label Group") 但 FamilyManager 选项没有很好的记录(我什至不确定列出的“FamilyParameter”是否与“.rfa”中定义的参数匹配文件,或完全是另一件事)。我尝试将与 ElementName.Parameters 关联的参数作为 FamilyParameter *******,但 Visual Studio 说类型错误,当我尝试添加“作为家庭参数”时,它说“无法将参数隐式转换为 FamilyParameter”。
谁能给我一些关于如何为我的项目中已经存在的家庭添加或重命名参数的指针?
c# - 在 IExternalApplication.OnStartup 之后将命令动态添加到 Revit 功能区?
IExternalApplication.OnStartup
是否可以在执行到 Revit 的功能区面板后动态添加命令?
我在 TheBuildingCoder 上看到了这篇文章... http://thebuildingcoder.typepad.com/blog/2010/03/adding-noncommands-to-the-revit-ribbon.html
..那里的第一个“PS”似乎暗示这是不可能的,但那是在2010年。我想知道是否有任何改变?
我自己一直无法弄清楚。尝试仅执行AddPushButton()
我编写的代码会导致:
An unhandled exception of type System.Runtime.InteropServices.SEHException' occurred in RevitAPIUI.dll
当放置在IExternalApplication.OnStartup
块内时它工作正常,这似乎意味着我需要执行代码以某种事务模式或类似方式添加到功能区面板......或者,这是不可能的:(
任何帮助将不胜感激,谢谢!