zoukankan      html  css  js  c++  java
  • Civil 3D中各种ObjectID集合中的对象具体是什么类型?

    在Civil 3D程序设计中,

    经常会返回一些ObjectIdCollection,

    这些ObjectId对应的对象具体是什么类型呢?

    在需要打开对象进行操作,

    不知道具体类型,

    代码可能就写不下去,

    using (Transaction tr = doc.TransactionManager.StartTransaction())
    {
        var labelSet = id.GetObject(OpenMode.ForWrite) as AlignmentLabelSetStyle;
        if (labelSet != null)
        {
    

     比如这里的AlignmentLabelSetStyle,

    这个问题可以使用GetType()方法来解决。

    我写了几行测试代码,

    有需要的朋友可以研究一下:

    [CommandMethod("Test20200513")]
    public void Test20200513()
    {
        Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.CurrentDocument;
        Editor ed = doc.Editor;
        var psr = doc.Editor.GetSelection();
        if (psr.Status == PromptStatus.OK)
        {
            var ss = psr.Value;
            using (Transaction tr = doc.TransactionManager.StartTransaction())
            {
                foreach (SelectedObject so in ss)
                {
                    var ent = so.ObjectId.GetObject(OpenMode.ForRead);
                    var t = ent.GetType();
                    ed.WriteMessage("
    Ent.Type	{0}", t.FullName);
                }
                tr.Commit();
            }
        }
    }
    

    测试结果类似如下:

    命令: TEST20200513
    
    选择对象: 指定对角点: 找到 5 个
    
    选择对象:
    Ent.Type  Autodesk.Civil.DatabaseServices.Alignment
    Ent.Type  Autodesk.Civil.DatabaseServices.FeatureLine
    Ent.Type  Autodesk.AutoCAD.DatabaseServices.Line
    Ent.Type  Autodesk.AutoCAD.DatabaseServices.Circle
    Ent.Type  Autodesk.AutoCAD.DatabaseServices.Polyline

    有了这个结果,

    我就可以继续写代码了。

  • 相关阅读:
    Apache2的安装
    JVM(9) 程序编译及代码优化
    Java基础(43)Queue队列
    Java基础(42)AbstractSet类
    OptimalSolution(10)--日常
    OptimalSolution(9)--其他问题(1)
    OptimalSolution(9)--其他问题(2)
    OptimalSolution(8)--位运算
    OptimalSolution(7)--大数据和空间限制
    golang教程汇总
  • 原文地址:https://www.cnblogs.com/myzw/p/12880353.html
Copyright © 2011-2022 走看看