问题标签 [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.

0 投票
2 回答
1417 浏览

c# - 设置 ViewSheetSetting.InSession.Views 属性

有没有人处理过设置InSession.Views属性?我遇到的问题是,当我在打开文档后立即设置以下属性时,它不起作用(即视图大小仍然为 0,即使viewSet有 4 个项目)。

但是在使用中的打印对话框修改会话中视图/工作表集revit之后,我可以分配给它。

有谁知道为什么?

0 投票
1 回答
762 浏览

c# - 同步或重新加载后更改的 Revit API 2013 文档看不到新添加或更改的元素

我在两台不同机器上使用中央文件模型和两个本地文件时遇到问题。当我在一台机器上添加一个元素,进行同步然后在另一台机器上重新加载时,API 看不到这个带有 DocumentChanged 事件的新添加元素。

这是代码:

在此代码之后,我立即执行以下操作:

问题是,对于已删除的元素,它可以完美地工作(在重新加载之后),但对于修改和添加的元素,它什么也不做。

在本地文件中添加或修改元素时,该代码可以完美运行,但这不是我所需要的。我需要处理将这些更改同步到中央文件的其他用户修改和添加的元素。

有谁知道我做错了什么,或者也许有其他方法可以做到这一点?

0 投票
1 回答
520 浏览

revit - 检查 Revit 是否已准备好关闭

首先,我为任何拼写错误等道歉。英语不是我的第一语言 :)

我已经为 Revit 编写了一个插件,现在正在为插件进行自动更新。我已经对更新进行了排序,但我偶然发现了一个小问题。

我正在检查 Revit 启动时的更新(当 Revit 创建插件应用程序时)

如果有可用更新,我会向用户显示一条消息,询问他/她是否想要更新。如果是,我想为他们关闭 Revit 并开始更新。

问题是此时 Revit 还没有完成自身加载,如果我以编程方式关闭它,它会抛出一个错误,因为它还没有准备好再关闭 5 秒。

可以解决我的机器上的问题,但不一定会解决用户的问题,所以我需要一种方法来检查 Revit 是否准备好关闭(处于允许关闭的状态)。

所以问题是:有没有办法检查 Revit 是否可以关闭?有没有人遇到过这样的问题并解决了?

(我知道当用户关闭 Revit 时我可以检查更新,但这并不理想......

有任何想法吗?

0 投票
2 回答
1957 浏览

c# - 如何创建位置线与外部区域边界重合的墙?

我正在区域边界线上创建一堵墙,但找不到如何使用定位线“完成面:外部”放置它的方法。

我正在从区域边界获取几何数据:

然后根据它创建一条线来建造一堵墙:

这段代码给了我一堵墙,其中心放置了位置线和区域边界。有什么方法可以创建位置线与外部区域边界重合的墙?

这是 Revit 的屏幕截图

先感谢您!

0 投票
1 回答
1051 浏览

c# - Revit API:如何为墙壁和 Material Keynote 创建 Element Keynote?

我正在尝试为墙壁创建 Element Keynote 并为其材料创建 Material Keynote(为了使它像这个图像一样,我完全被它所困扰。

我试图创建一个标签,它在这篇博客文章中的显示方式:http: //thebuildingcoder.typepad.com/blog/2010/06/set-tag-type.html但我无法将主题标签更改为OST_KeynoteTags和将其与墙壁或材料相关联:

但 Revit 不允许我这样做:

或者也许我走错了路……

0 投票
1 回答
869 浏览

c# - Revit 2013:我在哪里可以获得 T 形墙连接?

我正在尝试从 Revit 中的给定墙获取所有连接,但我在网络上找到的所有资源都不起作用。

LocationCurve.get_ElementsAtJoin(n)唯一返回一些,正如文档指出的那样:

获取连接到此元素位置末尾的所有元素

我也尝试了ElementIntersectsSolidFilterSDK 显示的,但它返回 0 个交叉点。

墙连接

0 投票
3 回答
680 浏览

c# - Revit 2012 API:无法为 Revit 插件中的按钮添加多个命令

我在 Revit 插件中有一个按钮。当我单击它时,我想调用两个不同的命令(自定义命令)。那可能吗?

我使用 Revit 2012 Architecture API,我的平台是 C# .NET

0 投票
1 回答
3883 浏览

c# - 在另一个线程上创建 WPF 进度窗口

我正在通过一个名为 Revit 的建筑建模软件的 API 创建一个自定义加载项命令。我的命令可能需要一些时间才能完成,所以我想在它工作时向用户显示一个带有进度条的窗口。

通常,如果我要创建这样的进度窗口,它将位于主 UI 线程上,而实际完成的工作将发生在辅助工作线程上。但是,Revit 要求对 API 的任何访问都必须通过调用自定义命令的线程进行。所以我必须在第二个线程上创建我的进度条。

我发现这篇关于在单独的线程中启动 WPF 窗口的博客文章,并基于它来解决我的解决方案。这是我的自定义命令类。

这是我的 ProgressWindow 类上的 UpdateProgress() 方法

我的第一个问题通常是我这样做对吗?它似乎有效,但我对多线程编程了解得足够多,知道仅仅因为它今天有效,并不意味着它明天就会有效。

其次,我想在我的进度窗口中添加一个取消按钮,以便能够取消该过程。做这个的最好方式是什么?我知道最终我会得到一个由工作线程定期检查的“cancelRequested”布尔标志,但是如何从进度窗口线程设置它?

0 投票
1 回答
2165 浏览

c# - 创建选定对象 Revit Api 的实例

我是 Revit Api Programming 的新手。我想制作一个程序,用户可以选择他绘制的任何对象,然后他会重复该对象。问题是我不知道如何识别对象以获取其参数以及重复它的要点..任何指导方针好吗?提前致谢。

0 投票
1 回答
1266 浏览

c# - ElementTransformUtils.CopyElement Revit 2012 中的翻译向量

我正在尝试制作用户在 Revit Api 2012 c# 中输入的选定对象的实例,我发现 ElementTransformUtils.CopyElement 的第三个输入是平移向量而不是新位置,所以我试图从元素中选择固定点选择然后从中减去新的地点位置并将结果作为平移向量。问题是:我使用pickobject.globalPoint从所选对象中获取点,每次我运行代码时都会更改所以问题:每次选择用户输入的元素时如何获取相同的点?提前致谢