欢迎来到我的博客
Civil 3D开发与应用,欢迎加入QQ群:484124761
AutoCAD开发,欢迎加入QQ群:193522571

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();
    }
}
复制代码

 

posted @   david96007  阅读(417)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示