问题标签 [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# - Revit C# API 覆盖视图表面图案中的图形
我正在尝试将选项分配给 Revit OverrideGraphicsSettings:
这有效,除了以下两个问题:
- 如果我已经将表面图案从“按材质”覆盖到实体填充,上面的代码将禁用此覆盖,将其返回到按材质。
- 带有 SetProjectionFillPatternId 的行被禁用,因为不清楚如何为实体填充获取有效的 FillPatternId。
我寻找答案的尝试包括收集所有定义的材料并遍历它们以找到分配的表面图案,但我找不到合适的 FillPatternId。有没有其他人处理过这个问题?
c# - 在 Revit 2014 中翻转扫描
我已经Sweep
使用加载的配置文件成功创建了一个。现在我需要沿着路径翻转它。我试过这个说法:
但是,执行之后,IsFlipped
总是false
. 我做错了什么?
c# - 在 Revit 2014 中插入面托管嵌套族实例时忽略 Z 坐标
我正在尝试在通用专业设备系列中插入一个包含空隙挤出的面托管系列。场景如下:
在“父”族中,放置了一个矩形挤压件,Z = 100 mm,高度 = 40mm;挤压是通过编程方式创建的
我有一个带有简单空心圆柱体的 .rfa。这个 rfa 是一个
Generic model
家庭,我已将 "Cut with voids
" 设置为 true我想在父族中插入这个 void 族的一个实例,以刺穿挤压。
我正在使用的代码如下:
问题是圆柱体总是放置在 Z=0 中。如有必要,我可以发送孔族和结果项目。
c# - 在 Revit 2014 中选取线的点时绘制线
我试图弄清楚是否有办法以编程方式允许用户在 Revit 2014 中绘制一条线或调用模型线命令(使用 line 选项,而不是矩形、圆形等)。我需要用户调用我的命令,此命令显示一个具有“绘制路径”选项的表单,如果用户单击该选项,则表单应该隐藏/关闭并且用户应该能够直接绘制模型线项目内部。当用户结束画线时,表单应该重新显示,并且应该有对画线的引用。
我整天都在寻找解决方案但一无所获,我还搜索了如何使用标准 Revit 命令(例如模型线),但唯一的方法似乎是调用PostCommand
将命令添加到队列中的方法,因此我的命令终止后,该命令将被午餐。我还搜索了如何绘制一条只有起点的线并将终点定位在鼠标下方,但似乎该MouseMove
事件在 Revit 文档中不可用。
真的没有办法要求用户画线吗??
c# - 如何将元素集合转换为 Revit 中的“当前选择”?
我正在尝试创建一个与 Revit“过滤器”类似的“智能过滤器”,但以其他方式(例如族类型、工作集、级别,甚至“标记”)对元素进行分组。创建隔离这些参数的集合很简单,但是我似乎无法退出我的程序,将 document.selection 修改为仅包含我留下“选中”的元素。
我的程序能够操作剩余的“选中”元素,例如“隐藏在视图中”、“半色调”或“删除”——但是对结果选择执行的可能操作列表太长,无法使用它们所有内容都包含在我的对话框表单中——我想要一个选项来简单地选择一个显示“设置选择”的单选按钮,并让程序退出选择中的 THOSE 元素。
我努力了:
这些返回错误“不在对象的实例中”。
完成 Revit 的“过滤器”后,结果是修改后的选择。有没有办法在 C# 插件中做同样的事情?
c# - Revit API - 提示用户创建垂直列
我正在为 Revit 2014 编写一个插件。它的一个功能是由用户放置一个垂直列。PromptForFamilyInstancePlacement
Revit API 允许用户使用我正在使用的方法放置族实例,如下所示:
此代码Modify | Place structural column
在 Revit 应用程序中启用工具。它可以按需要工作,但不允许用户在垂直列和倾斜列之间切换。此选项设置为在运行上面的代码之前设置的任何内容。
我尝试在运行之前设置符号参数PromptForFamilyInstancePlacement
:
但get_Parameter()
以上回报null
。
在提示用户放置列之前,是否有将列类型设置为垂直列的方法?还有一种方法可以预设柱高吗?
c# - 我有一个使用 GetAnalytical 的程序经过测试,但突然失败
(请参阅下面的评论以获取答案)我有一个经过严格测试(我认为)的程序,它使用:
这曾经工作得很好,但现在在一个项目中使用它(与以前使用的相同系列的梁),当它尝试执行“Curvy.GetEndPoint(0)”时它失败了。
我得到的错误是“Revit 遇到 System.NullReferenceException:对象引用未设置为任何对象的实例。”
当然,这很奇怪,因为 Element Source_Beam 肯定是一个梁,它知道如何从中获取分析模型,并且编译器很乐意允许“model.GetCurve()”。
请注意,我在尝试修补错误第一次失败后添加了“as AnalyticalModel”,因为我在网上看到了一个添加该代码的示例——无论是否进行强制转换,它都会失败。正如我所提到的,该程序已在使用完全相同的梁族的测试项目中使用。
有谁知道我的现实世界项目中是否有一些设置禁用了 GetAnalyticalModel 的功能,或者可能是一种更好的方法来简单地获取光束的定义起点/终点?
c# - Autodesk Revit Architecture 2014 .NET API C# 在链接中查找房间边界元素
我在这里有 Revit 2014。我知道链接文档中的墙壁可以标记为房间边界。是的,效果很好。但是,从 API 中,我无法从这些链接文档中找到哪些墙壁是我的房间的房间边界。我可以找到哪些链接文档用作我房间的边界,但不能找到这些链接文档中的哪些墙壁被使用。有没有办法找到这个?
亲切的问候。
c# - Autodesk Revit Architecture 2014 .NET API C# 在链接中查找 FamilyInstance 的主机
当宿主放置在链接文档中时,familyInstance 的宿主属性会返回 RevitLinkInstance。我有办法获取真正的元素(或其 ID)而不是 RevitLinkInstance 吗?
我希望 stableREpresentation 可以给我更多信息,但不幸的是,它没有。
这将给出"ac669fa6-4686-4f47-b1d0-5d7de6a40550-000a6a4a:0:RVTLINK:234297:0:218"
234297 是引用元素的 ID,在这种情况下,仍然是 RevitLinkInstance。
memory - 反序列化 Revit API
这是我第一次接触序列化...事实上我正在通过 C# 开发 Autodesk Revit。
客观的:
我需要将数据记录到 HDD 上的新文件中,以便可以通过 Revit 从另一台计算机打开该文件。
程序:
- 处理所有必需的数据。来自 Main 类。
- 实例化这些数据并将其传递给 Serializable 类。
- 保存以归档来自主类的数据。
- 释放流并将可序列化类设置为空。
- 反序列化。
- 根据获取的数据在 revit 上做一些事情。
问题 - 程序完美运行,没有错误,一切正常。- 再次按下按钮以重新运行在反序列化时失败的程序,并显示此错误代码
[A]Cons_Coor.ThrDviewData 无法转换为 [B]Cons_Coor.ThrDviewData。类型 A 源自位置 'C:\Users\mostafa\AppData\Local\Temp\RevitAddins\Cons_Coor-Executing-20140820_224454_4113 的上下文 'LoadNeither' 中的 'Cons_Coor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' \Cons_Coor.dll'。类型 B 源自位置 'C:\Users\mostafa\AppData\Local\Temp\RevitAddins\Cons_Coor-Executing-20140820_230011_0316 的上下文 'LoadNeither' 中的 'Cons_Coor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' \Cons_Coor.dll'。在 Cons_Coor.dll 中发生了“System.NullReferenceException”类型的第一次机会异常
主类:
可序列化类
所以有什么提示吗?