【问题标题】:Creating Civil 3D Alignment in .Net throws "Alignment ID is invalid" error在 .Net 中创建 Civil 3D 对齐会引发“对齐 ID 无效”错误
【发布时间】:2018-01-23 01:28:38
【问题描述】:

我正在为 Civil 3D 开发一个 IFC(工业基础类)导入/导出插件,我将在本月晚些时候作为开源发布)。导出功能已经完全正常。但是,我仍然不太了解如何使用 .NET 在 Civil 3D 中创建对象。我的加载项是用 C# 编写的。

我尝试了以下,这是一个官方的 Autodesk 示例:

// Uses an existing Alignment Style named "Basic" and Label Set Style named "All Labels" (for example, from
// the _AutoCAD Civil 3D (Imperial) NCS.dwt template.  This call will fail if the named styles
// don't exist. 
// Uses layer 0, and no site (ObjectId.Null)
ObjectId testAlignmentID = Alignment.Create(doc, "New Alignment", ObjectId.Null, "0", "Basic", "All Labels");

来源:https://knowledge.autodesk.com/support/autocad-civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2017/ENU/Civil3D-DevGuide/files/GUID-F620DF41-7DF3-450F-8C2A-A92DEB1F9E9E-htm.html

但是,每当我尝试运行我的代码时,我都会收到以下错误消息:“无效的对齐 ID。”。我的代码如下所示:

var civilDatabase = Application.DocumentManager.MdiActiveDocument.Database;
var civilDocument = CivilApplication.ActiveDocument;
using (Transaction civilTransactionManager =
        civilDatabase.TransactionManager.StartTransaction())
{
   ObjectId civilAlignment = Alignment.Create(civilDocument, "MyName", "" , "0", "Basic", "All Labels");

我还尝试用 nullObjectID.Null 替换为对齐提供站点的 "",两者都不起作用并用 ObjectID.Null 替换它甚至会阻止我编译。

有人知道这个错误是从哪里来的吗?

【问题讨论】:

    标签: c# .net autodesk ifc


    【解决方案1】:

    查看Alignment methods 的文档,更具体地说是following 重载:

    public static ObjectId Create(
        CivilDocument document,
        string alignmentName,
        string siteName,
        string layerName,
        string styleName,
        string labelSetName
    )
    

    上面写着:

    System.ArgumentException

    绘图、图层、样式、标签集或站点的名称无效。路线的名称已存在。

    所以看起来有些名字是不正确的。对于更健壮的方法,您可以列出样式并从那里获取名称或 objectId。对于无站点对齐,您可以将string.empty 作为siteName 参数传递。

    【讨论】:

      【解决方案2】:

      感谢您的回答奥古斯托!我也这么认为,因为错误确实指向了那个方向。

      不过,Autodesk 的 Jeff 能够帮助我并提供了一个可行的解决方案。显然,这是我主要代码或我处理事情的方式的一个更大问题的一部分。 使用以下帖子中提供的 Jeff 的解决方案,我得到了一切工作:

      https://forums.autodesk.com/t5/autocad-civil-3d-customization/creating-alignment-throws-quot-alignment-id-is-invalid-quot/m-p/7302387/highlight/false#M13831

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-04
        • 2013-08-17
        • 1970-01-01
        • 2021-01-13
        • 1970-01-01
        • 2019-05-18
        • 1970-01-01
        • 2011-03-15
        相关资源
        最近更新 更多