我如何在IronPython中访问.NET API对象的重写属性?
我正在使用ironpython为插件API创建一个shell,以自动修订Architectut 2010,以加快学习API的速度. API提供的类是Autodesk.Revit.Elements.Room,源自Autodesk.Revit.Element. . 我真的很想阅读Room.Name,但这是我的Room覆盖Element s Name属性的Room so: public override string Name { set; } 这当然隐藏了getter ... 给定一个类型Room的对象,我如何访问基类Getter? 我尝试了 room.base.Name ,但似乎.net衍生的类没有基本属性. 解决方案 这似乎是确切指定要调用哪个接口/类的方法: 给定一个Autodesk.Revit.Elements.Room对象room,可以使用 调用其基类中的"名称"属性 Autodesk.Revit.Element.Name
2 2024-01-07
编程技术问答社区
Revit。在链接的模型中设置类型参数
我们的修订加载项使用户可以浏览并设置类型参数,包括链接模型中的参数.它在2011年及以更早的Revit中运作良好,但是在2012年和2013年的Revit,我们无法再设置这些.在链接文档上构建交易时,我会得到:" autodesk.revit.exceptions.arguementException:文档是链接文件.事务只能在主文档(项目或家庭)中使用. 好,所以我们不能在链接模型上使用交易.因此,我尝试在没有交易的情况下设置参数,但是后来我得到了一个例外,说我们无法修改事务之外的模型. 无法在链接模型上创建交易,也无法修改交易之外的模型 - 那么,如何在2012/2013 Revit中修改链接模型?它在2011年使用相同的代码正常运行.在网上进行了相当多的搜索,包括建筑编码器博客,但没有提及这种破裂的变化或如何解决它.谁能伸出手? 我们的代码很简单 - 我们在模型中获取一个参数,启动事务并尝试设置参数值.同样,同一代码在2011年Revit中没有错误的情况下工作.
8 2024-01-06
编程技术问答社区
我可以让默认的AppDomain使用某些程序集的影子副本吗?
简短的解释我为什么要这样做: 我正忙于编写一个为Autodesk Revit Architecture 2010的插件.测试我的插件代码非常麻烦,因为我必须重新启动每个调试会话,手动加载一个revit项目,单击"附加"选项卡,然后开始启动我的插件.这只是花费太长. 我编写了第二个插件,该插件载有Ironpython解释器.这样,我可以使用Revit提供的API来玩耍.但是最终,必须在C#中重写代码并进行调试. 简单,我想:只需从Ironpython脚本加载插件DLL即可进行操作.这确实有效,但是一旦加载,我就无法在Visual Studio中重新编译,因为DLL现在已加载在AppDomain中. 简单,我想(在Stackoverflow的帮助下):只需将DLL加载到新的AppDomain中即可. las,Revitapi对象不能被整理到另一个AppDomain,因为它们不会扩展MarshalByRefObject. 我想我可能会带着影子副本. ASP.NET
0 2024-01-03
编程技术问答社区
System.BadImageFormatException 试图用不正确的格式加载一个程序
我正在为基于公共.NET API的另一个程序编写插件.通常,这些插件是通过创建引用API组件的类库DLL来制作的.然后,通过从API组件中的基本命令类继承来创建命令类.然后,将应用程序设置为引用插件DLL文件,然后在用户请求时还负责实际启动自定义命令类. 但是,现在我试图通过System.CodeDOM自动化一些代码生成,并希望创建一个简单的控制台应用程序,该应用程序会自动生成基于API组装中的类型的新类型类型. 但是,当我尝试运行应用程序时,我会得到以下例外. system.badimageFormateXception是 未经手的消息:无法加载文件 或大会的修订版, 版本= 2011.0.0.0,文化=中性, publicKeyToken = null'或其中之一 依赖性.尝试了 加载程序不正确 格式. 通常,我需要将插件组件的目标框架设置为3.5.但是,现在我发现,如果将控制台应用程序的目标框架设置为2.0,上面的错误就会消失.但是,我的控制台应用程序已经引
12 2024-01-02
编程技术问答社区
如何将MaterialDesignXamlToolkit纳入WPF类库?
我正在尝试在我的WPF类库中使用Materialldesignxamltoolkit(.NET Framework).我正在关注他们的官方快速启动tutorial ">没有app.xaml,我必须进行一些调整.看来,某个步骤是错误的,但我不知道哪一个. 1)我使用nuget安装了Materialldesignxamltoolkit. 2)我使用以下代码创建了ResourceDictionary:(我指定了密钥,因为如果没有,则存在错误)
8 2023-12-13
编程技术问答社区
Revit API WinForms-将组合框的值传回给命令
我正在尝试将值(元素ID)从winform传递回命令.CS文件,但我会遇到错误: System.NullReferenceException: Object reference not set to an instance of an object. at BatchSheetMaker.Command.Execute(ExternalCommandData commandData, String& message, ElementSet elements) 我在此处关注YouTube教程,这似乎很容易且直截了当,但是传递回命令.CS是另一层复杂性. 我有命令.CS代码包裹在一个try/catch块中,这只是告诉我有nullReferenceException,但是它不会告诉我它发生在哪一行.我环顾四周但是Hav找不到有关如何进行调试显示错误行的任何提示.如果有人有其他指针,那将是有帮助的. form1.cs public partial class
2 2023-12-10
编程技术问答社区
从WinForm中挑选元素的Revit
在单击按钮而不关闭表单的情况下,我正在尝试选择一个对象. 问题是当我单击"按钮我无法与Revit进行交互"时. 这是呼叫表格并通过所有者将修订的主要代码. IWin32Window revit_window = new JtWindowHandle(ComponentManager.ApplicationWindow); Process process = Process.GetCurrentProcess(); IntPtr h = process.MainWindowHandle; form.ShowDialog(revit_window); public class JtWindowHandle : IWin32Window { IntPtr _hwnd; public JtWindowHandle(IntPtr h) { Debug.Assert(IntPtr.Zero != h, "expected non-null w
4 2023-12-10
编程技术问答社区
Revit Python挑选对象/选择对象
我是编码的新手,所以这可能很明显. 当我运行此代码时,为什么我会收到错误的"名称'name'objecttype'未定义: picked = uidoc.Selection.PickObject(ObjectType.Element) 我正在使用Revit Python Shell(Ironpython) 解决方案 您应该导入ObjectType到当前范围: >>> from Autodesk.Revit.UI.Selection import ObjectType >>> picked = uidoc.Selection.PickObject(ObjectType.Element) 我刚刚在Revitpythonshell中尝试了一下,并注意到它不起作用,因为外壳仍在前景中.因此,此技术将适用于您添加到功能区的脚本,但不是直接来自外壳的脚本……我不确定如何解决此问题.抱歉. 编辑:使用这样的函数来完成技巧: def pickobject()
68 2023-06-25
编程技术问答社区
Revit到Pdf的转换
我正在尝试使用带有空闲事件处理程序的Revit API在Revit 2017中自动化PDF打印过程.我正在使用opendocumentfile方法打开修订文档,而在任何地方都不使用ActiveUIdocument.此过程正在生成无效的操作异常.我不确定为什么会提供异常,或者是否允许使用Revit API.请帮忙.谢谢. 期刊输出: ' 1:
106 2023-05-22
编程技术问答社区
运行时未找到引用的库
我有一个带有两个项目(使用C#)的VS解决方案,该项目是Revit中运行的主要项目,以及一个主要项目参考的类库(称其为儿童dll ...我正在尝试重构一些代码将其分解为易于重复使用的库).当我运行主项目时,我会发现一个未找到的文件,通过将子DLL放入我部署主DLL的同一位置来修复以找到它. . 但是,这极大地使我对一群通常不考虑诸如DLL之类的事情的建筑师(包括我)这样的建筑师进行了非常复杂的部署策略.有没有一种方法可以静态地链接孩子dll,以便没有更多的文件要分发? 解决方案 我使用称为"汇集剂量的助手"类来解决我的项目中的汇编.它包含在我在GitHub上提供的开源样本Revit应用程序中. 它是在应用程序类的构造函数(实现IexternalApplication)中初始化的. 将应搜索程序集的任何目录传递到汇编固定器构造函数. gasemblyResolver来源: https:////////////////////////////////////////
12 2023-02-21
编程技术问答社区
Revit API-C#-如何在视口上设置视图标题
我正在尝试设置一个视图标题,以使用Revit API出现在Revit项目中,但是我不知道如何访问它. 我能够将视口放置在表格上,并将视图标题家族加载到项目中,但我无法将已加载的视图标题分配给视口.有人对此有任何运气吗? 这是我想做的事情的一些照片: 1)将视图放在纸板上.没问题 2)编辑视图和更改视图标题使用"视图标题w effer" 3)将显示扩展线变为"是" 4)使它看起来像这样. 这是我一直在寻找的一些资源: 01/tracge-viewport-type.html ************************************************************************************************ 我以为我使它完美无缺,但我没有. 我第一次单击按钮时,除了未设置"标题"参数之外,其他所有操作都起作用.它仍然显示. 第二次单击按钮在创建视口时向我发送了内部定义错误.
30 2023-02-21
编程技术问答社区
Revit Addin中的AppDomain.CurrentDomain.UnhandledException
我想在我自己的Revit addin中使用崩溃记者,但是从未调用AppDomain.CurrentDomain.UnhandledException.似乎修订本身管理了未经挑剔的期望,并显示了自己的崩溃对话.在将大acrectin cathes之前,我该怎么做才能捕获所有未经治疗的例外? 我已经尝试了以下代码行,但它不起作用:它永远不会进入处理程序方法: public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; } private void CurrentDomain_UnhandledException(object sender, Unh
20 2023-02-21
编程技术问答社区
Revit API: 如何为墙体创建元素基调和材料基调?
我正在尝试为其材料创建元素和材料主题演讲(使其像在此图像中 Bit我完全坚持下去. 我尝试创建一个在此博客文章中显示的标签: http://thebuildingcoder.typepad.com/blog/2010/06/set-tag-type.html ,但我无法将Keynote标签更改为OST_KeynoteTags,并将其与墙壁或墙壁联系起来材料: FamilySymbol keynoteTagType = GetFirstFamilySymbol(doc, BuiltInCategory.OST_KeynoteTags); IndependentTag newTag = doc.Create.NewTag(view, wall, true, tagMode, tagorn, wallMid); ,但是revit不允许我这样做: newTag.ChangeTypeId(keynoteTagType.Id); ,或者也许我在错误的路径... 解决方
24 2023-02-17
编程技术问答社区
如何在revit中找到坡道的起点/终点,也许要用草图?
我有一堆坡道,我想知道(如果有多个开始/终点,我想知道它们如何连接). 我目前将其视为 List ret = new List(); FilteredElementCollector collector = new FilteredElementCollector(doc); ICollection ramps = collector.OfCategory(BuiltInCategory.OST_Ramps).ToElements(); foreach (var ramp in ramps) { //what goes here? } 这些坡道包含以下属性: Type Comments Ramp Max Slope (1/x) Category URL Design Option Type Name Ramp Material Function Manufacturer Fami
8 2023-02-14
编程技术问答社区
通过命令行打开Revit BIM360模型
是否有任何人通过命令行成功打开了云模型?我可以通过传递文件路径打开非云模型,但我不确定如何打开非本地的东西. 解决方案 Revit 2020 API推出了打开BIM360,CF中托管的云模型的可能性. 打开/在 Revit 2020 API 中的新功能. 这个新功能的另一个方面是由 IOpenFromCloudCallback和DefaultOpenFromCloudCallback类. 您可以在自己的加载项中使用新功能实现 ApplicationInitialized事件通过通过命令行或其他方式通过信息来打开云模型,例如,读取指定云模型路径的输入文件以打开. 其他解决方案 我发现如果我通过bim 360项目的本地缓存路径,Revit将其视为我打开BIM 360项目本身: # powershell & "C:\Program Files\Autodesk\Revit 2020\Revit.exe" ^ "C:\Users\User\AppDat
96 2023-01-19
编程技术问答社区
Forge浏览器加载具有共享坐标的多个Revit模型
当加载通过共享坐标对齐的Revit模型时,模型在Forge Viewer中没有与Globalloffset设置对齐. 带有PlacementTransform选项的LoadModel似乎是可行的,但是在加载模型后,不可用共享坐标数据,通过viewer.model.getDocumentNode().getAecModelData().refPointTransformation 最早我有模型数据位于onloadmodelsuccess内,为时已晚,无法进入负载选项,并且需要转换几何形状. var modelOptions = { sharedPropertyDbPath: doc.getPropertyDbPath(), globalOffset: offset, placementTranform: ???, isAEC: true }; viewer.loadModel(svfUrl, modelOptions, onLoadModelSucces
142 2023-01-19
编程技术问答社区
标记Revit中的区域对象
我已经尝试通过 Forge API Revit 文件的区域对象>.使用此链接GET /modelderivative/v2/designdata/{urn}/metadata/{guid of sheet}/properties 区域信息不存在,即使我在表格中添加了区域. 我的目标是在2d/纸张(3d提交)中标记区域.我该怎么做? 该区域,我的意思是这样>> 标记在2d 解决方案 区域对象看起来像Revit Room或Revit Zoom.如果在查看器上可点击您的缩放或空间,则可以通过API 获取属性.以下是一些步骤,我曾经归档你想要的东西,如果有一些你错过的话,你可以比较. 检查房间/区域元素在您的Revit表中有效.房间/区域应由墙壁或Room Separation/Area Boundary封闭. 确保包含房间/区域的纸张包含在Revit Publish Setting的集合中 上传井配置的RVT以伪造翻译. 在翻译完成后,通过Forge
从Forge api获取房间/区域信息
我需要通过 Forge ,使用来自 Revit Model的链接对象的层次结构进行空间/区域对象.现在我现在正在使用这个项目作为一个起点.不幸的是,房间信息丢失了.据我所知,它在翻译过程中被删除.有一些解决方法这个,但它似乎没有为我们的案例工作.是否有任何直接的方法可以从 Forge 中从 RVT 中检索房间信息? 解决方案 虽然没有直接通过Forge Translator获取房间信息,但仍有一些解决方法归档: 打开Revit项目只能通过NavisWorks,并上传到翻译进行伪造,使用此结果作为查看器应用程序的辅助模型. 提取室信息.通过Revit API和对象关系,并使用Forge Viewer的外部映射特征来重建元素和房间之间的部分关系,如果房间几何信息.不是必需的. 希望这种帮助. 其他解决方案 遗憾的是,目前没有通过Forge翻译公开.我们有一个更改请求等待它,因为几个开发人员一直在提出此功能.它将在未来提供,但目前最好的解决方法是您指出的链接.关于
18 2023-01-19
编程技术问答社区
如何将Navisworks(*.nwd)文件渲染到IOS上?
我想将Navisworks 3D导航模型导出到我的iPhone设备,是否有任何API可用于实现这一目标.我想创建自己的应用程序来读取模型进入iOS - 类似于iOS的Navisworks自由查看器. 我在互联网上搜索了很多,但找不到任何有用的东西. 解决方案 为iOS没有Navisworks查看器,但是有一个WebGL查看器可以嵌入移动应用程序(或Web或桌面). https://360.autodesk.com/viewer 在 http://developer.autodesk.com ios示例在 https://github.com/developer -autodesk/workflow-ios-view.and.data.api
1852 2022-07-17
编程技术问答社区