• Civil 3d 由道路创建要素线


    集合嵌套的层级比较多,

    不熟悉API的话很难找到创建要素线的方法,
    测试代码贴到这里,

    方便有需要写类似代码的配有借鉴。

    如何创建无场地内的要素线需要进一步研究。

    除了创建要素线外,

    还可以创建路线、纵断面,

    有兴趣的朋友们可以自己研究一下。

    以下代码在civil 3d 2022下测试。

    public void C_cflTest()
    {
        Document acDoc = Application.DocumentManager.MdiActiveDocument;
        Database acCurDb = acDoc.Database;
        Editor ed = acDoc.Editor;
        PromptEntityResult per = ed.GetEntity("\n拾取道路");
        if (per.Status != PromptStatus.OK) return;
        using (Transaction tr = acDoc.TransactionManager.StartTransaction())
        {
            var cor = per.ObjectId.GetObject(OpenMode.ForRead) as Corridor;
            foreach (Baseline bl in cor.Baselines)
            {
                var flcms = bl.MainBaselineFeatureLines.FeatureLineCollectionMap;
    
                foreach (FeatureLineCollection fls in flcms)
                {
                    foreach (CorridorFeatureLine cfl in fls)
                    {
                        // 由特定代码的要素线创建“自动道路要素线”
                        if (cfl.CodeName.Contains("Ditch_Bottom"))
                        {
                            try
                            {
                                // 要提前创建一个场地,不然这里会出错,
                                // 怎么输入“无”场地尚未找到解决方法
                                cfl.ExportAsGradingFeatureLine(civilDoc.GetSiteIds()[0], true);
                            }
                            catch (System.Exception ex)
                            {
                                ed.WriteMessage(ex.Message);
                            }
    
                        }
                    }
                }
            }
            tr.Commit();
        }
    }
  • 相关阅读:
    手机自动化
    记录
    Linux 死机了怎么办
    前端源码
    LNMP环境
    PHP学习之路(一)
    py
    蜘蛛问题
    mongodb
    【HTML/XML 2】XML基础知识点总结
  • 原文地址:https://www.cnblogs.com/myzw/p/16045669.html
Copyright © 2020-2023  润新知