问题标签 [revit]
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.
.net - 如何在 IronPython 中访问 .NET API 对象的覆盖属性?
我正在使用 IronPython 为 Autodesk Revit Architecture 2010 的插件 API 创建一个外壳,以加快学习他们的 API。
API 提供的类之一是Autodesk.Revit.Elements.Room
从Autodesk.Revit.Element
.
我真的很想阅读Room.Name
,但这就是繁荣!在我身上,就像这样Room
覆盖了Element
sName
属性:
这当然隐藏了吸气剂......
给定一个类型的对象,Room
我如何访问基类 getter?
我试过了
但似乎 .NET 派生类没有基本属性。
.net - 我可以让默认 AppDomain 使用某些程序集的卷影副本吗?
我为什么要这样做的简短解释:
我正忙于为 Autodesk Revit Architecture 2010 编写插件。测试我的插件代码非常麻烦,因为我必须为每个调试会话重新启动 Autodesk,手动加载 Revit 项目,单击加载项选项卡,然后启动我的插件。这只是花费了太长时间。
我编写了第二个插件来托管 IronPython 解释器。这样,我可以使用 Revit 提供的 API。但最终,必须用 C# 重写代码并进行调试。
很简单,我想:只需从 IronPython 脚本加载插件 DLL 并运行它。这确实有效,但是一旦加载,我就无法在 Visual Studio 中重新编译,因为 DLL 现在已加载到 Revits AppDomain 中。
很简单,我想(在 StackOverflow 的帮助下):只需在新的 AppDomain 中加载 DLL。唉,RevitAPI 对象无法编组到另一个 AppDomain,因为它们不扩展MarshalByRefObject
.
我想我可能会对影子副本有所了解。ASP.NET 似乎正在这样做。但是阅读 MSDN 上的文档,似乎我只能在创建AppDomain 时指定这一点。
我可以为当前(默认)AppDomain 更改此设置吗?我可以强制它使用来自特定目录的 DLL 的影子副本吗?
api - 如何在 Autodesk Revit Architecture 2010 中使用类型绑定设置共享参数的值?
我有一个共享参数UValue绑定到 Autodesk Revit Architecture 2010 中的Wall
类型TypeBinding
。
我可以通过以下方式轻松访问参数:
这个参数的值可以看一下
但是当我这样做时
我得到一个错误:
InvalidOperationException:由于对象的当前状态,操作无效。
检查时,参数ReadOnly
属性设置为false
。
c# - Autodesk Revit MEP 2010 .NET API C# 房间到门的关系
在 C# 中使用 VS 2008 和 Autodesk Revit MEP 2010 我试图找出门是否连接到房间:
这种方法不起作用,因为 的返回值elementDoor.get_Parameter(BuiltInParameter.FROM_ROOM_ID)
总是null
。
我在Building Coder 博客上读到
内置参数不是 API 的官方支持部分。将来,我们预计它将被正确公开为属性的数据所取代。
这种说法是真的吗?谁能指出一种有效的方法来获得门和房间之间的关系?
windows - 如何让某人进入测试?
好的。我们的产品有效。Beta 测试人员实际上正在完成他们的工作。下一次迭代的时间。但如何保证质量?我们需要一个测试员!
我如何让刚从街上开始测试的人?我不知道如何自己做(我是开发人员,而不是测试人员)!
我们是一个小团队:
- 2 位架构师(如在建筑领域,而不是软件领域,他们是这里的领域专家)弄清楚要建造什么
- 我建造它
- 和一个新人在我们推出版本之前做一些测试
我们没有人知道如何专业地做到这一点。到目前为止,我们有:
- 一堆跨越我们想要测试的配置的虚拟机
- 各种版本的windows
- 德语和英语,我们的客户可能会使用这两种语言
- 我们正在编写的主机软件(Autodesk Revit Architecture 2010,我们正在构建一个用于能量计算的插件)
- 描述我做过的一些测试的文本文档(安装了 xyz 版本,做了这个,做了那个等)
- 一个错误跟踪系统,测试人员可以添加他发现的所有错误
我希望我们需要一个测试脚本。但是怎么做?谁?什么?什么时候?
c# - 使用 Revit Api 放置库零件
我正在使用 Revit API 导入族符号。下面的代码虽然可以将族加载到 Revit 中,但您必须手动将其从族树中拖动或使用相关的族工具插入。
我如何让它达到询问用户他们想要放置它的位置的程度?(类似于在编辑族时单击“加载到项目”),因此他们不必从族树中拖动它。
c# - C#需要等待COM事件触发才能继续执行而不控制事件
我读过其他一些看起来相似的问题,但我仍然很困惑,而且似乎没有一个答案对我有用,所以我决定再问一个问题。请多多包涵,我不是很精通线程和什么。
我正在制作的应用程序是 Revit Structure 的第 3 方插件。它们的工作方式是我拥有一个类库,其中包含一个实现接口的类,当它被称为我的应用程序运行时。
我的工具是一个打印工具,它旨在自动打印到 PDF。我正在尝试将我的代码移至使用 PdfCreator 打印 PDF(Revit 中的打印方式是您设置打印机并在 API 中调用“打印”方法,因此除了通过打印机)。
PDFCreator 有一个很棒的 COM 接口,允许您设置它的设置,以及订阅在每个文档打印后触发的事件。我多次调用 hte print 方法,所以我想等到一切都完成,然后在我的代码中做一些事情。
我的逻辑是这样的:
- 用户选择要打印的东西
- 点击打印按钮(在我的 WPF 窗口上)
- 我的代码然后设置 PDF 创建者设置,并注册以收听事件
- 我调用 Print() api 方法,然后需要一些时间来打印每个项目
- 然后,我希望在打印完所有内容后收到警报,并对文档进行一些“后期处理”。
- 后期处理包括重命名/移动 PDF 等等
我的问题是,当我调用 print 方法时,我的代码不会等待 PDFcreator 事件,它只是继续并退出,这意味着后处理永远不会被触发。
我需要做的是以某种方式等待事件,而不会阻塞。
在阅读了其他一些问题后,我尝试了这个:
- AutoResetEvent,并使用 WaitOne,直到事件处理程序调用 Set()。这只是卡在 WaitOne 上并且从未继续。
- Application.DoEvents 直到事件处理程序设置了某个类变量。
- 我尝试创建一个新线程来注册活动,但这似乎没有帮助
如何让事件在新线程上触发,然后提醒当前线程继续?或者我怎样才能让代码等待事件触发?
如果您需要更多信息,请告诉我,很乐意提供。
revit - 在 Revit 中如何以编程方式进行干扰检测?
更准确地说,我如何确定一个实体是否与另一个元素相交?我查看了 Revit API,找不到任何相关信息。
visual-studio-2008 - 如何在 Visual Studio 2008 中创建 Revit 插件 Windows 安装程序
手动安装 Revit 2011 插件的过程:
- 将加载项 DLL 放在所需位置,例如C:Program Files\RevitAddin\RvtAddin.dll
- 创建 .addin xml 文件,其中包含有关加载项的信息(位置、完整的类名等)。此“.addin”文件必须放在以下位置之一:
- 对于 Windows 7:C:\ProgramData\Autodesk\Revit\Addins\2011\
- 对于 Windows XP:C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2011\
我可以使用 Visual Studio 2008 安装项目轻松完成第一步。对于第二步,我可能需要使用自定义操作来创建 xml .addin 文件。我不知道如何将信息(输出位置)从安装程序传递到自定义操作。
c# - 如何在 Revit 中获取所有参数选择?
有一个元素的参数有 5 个选项(组合框的样式)。我知道如何获取当前选定的选项,但有没有办法检索其他 4 个选项?