首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从C#运行内置的Revit命令

如何从C#运行内置的Revit命令
EN

Stack Overflow用户
提问于 2014-06-28 01:04:49
回答 3查看 3.4K关注 0票数 1

我想知道是否有一种方法可以将计算值从C#程序中输入到内置的Revit命令中,然后可能(根据结果,例如这是否会使图元对于特定梁的已知“最大跨度”而言太短或太长),继续我的C#程序并修改梁尺寸)。有人告诉我,您可以在执行c#外部命令后调用Revit内置命令,但之后就无法返回到c#程序

作为另一个示例,我希望选择一个要修剪/延伸的元素,并让代码确定要将哪个"Joist“梁延伸到该元素。我的程序将执行扩展过滤(例如"Reference Level“、"Workset”、"Comments“或"Mark”参数(等))然后运行内置函数,提供要延伸到的元素,然后是我的每个梁。

我已经尝试了互联网搜索,以及Revit SDK示例,显然没有使用它(但有很多csproj要查看)。

是否有人可以确认您不能在C#程序和Revit内置命令之间来回切换?

EN

回答 3

Stack Overflow用户

发布于 2014-06-28 02:38:43

可以使用UIApplication.PostCommand()方法以编程方式调用内置的Revit命令。有关更多信息,请参阅documentationbuilding coder。但是,在API上下文结束之前,它不会执行。

但是,我不认为您能够将参数提供给命令,除非是某种Win32攻击。您可能需要在Revit API中重新创建内置命令的功能。

不幸的是,我不认为我们可以在这里做(command "_line“pnt1 pnt2)类型的事情。

票数 3
EN

Stack Overflow用户

发布于 2015-10-01 13:03:22

也许可以从SDK示例"MoveLinear“开始。它显示了如何修改线性图元(包括梁)的端点。

示例代码的主要部分是

代码语言:javascript
复制
                Autodesk.Revit.DB.Line line;
                //get start point via "get_EndPoint(0)"
                Autodesk.Revit.DB.XYZ newStart = new XYZ(
                    lineLoc.Curve.GetEndPoint(0).X + 100,
                    lineLoc.Curve.GetEndPoint(0).Y,
                    lineLoc.Curve.GetEndPoint(0).Z);
                //get end point via "get_EndPoint(1)"
                Autodesk.Revit.DB.XYZ newEnd = new XYZ(
                    lineLoc.Curve.GetEndPoint(1).X,
                    lineLoc.Curve.GetEndPoint(1).Y + 100,
                    lineLoc.Curve.GetEndPoint(1).Z);
                //get a new line and use it to move current element 
                //with property "Autodesk.Revit.DB.LocationCurve.Curve"
                line = Line.CreateBound(newStart, newEnd);
                lineLoc.Curve = line;

它将第一个点的X和第二个点的Y移动100英尺。

票数 1
EN

Stack Overflow用户

发布于 2020-12-03 00:42:37

您可以尝试:

代码语言:javascript
复制
 RevitCommandId commandId = RevitCommandId.LookupPostableCommandId(PostableCommand.PlaceAComponent);
 commandData.Application.PostCommand(commandId);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24457237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档