ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Civil 3d 获取横断面填挖面积

2022-06-22 08:01:23  阅读:164  来源: 互联网

标签:return Civil ed tr peo 填挖 doc slg 3d


很久以前的测试代码,

昨天QQ群中有群友询问类似的问题,

这代码放自己硬盘中也产生不了什么价值,

不如分享到这里!

有类似需求的朋友可以参考一下。

// Put your command code here
Document doc = Application.DocumentManager.MdiActiveDocument;
Editor ed;
if (doc == null) return;
ed = doc.Editor;
PromptEntityOptions peo = new PromptEntityOptions("\n选择路线");
peo.SetRejectMessage("\n选择的对象必须为路线");
peo.AddAllowedClass(typeof(Alignment), true);
PromptEntityResult per = ed.GetEntity(peo);
if (per.Status != PromptStatus.OK) return;

using (Transaction tr = doc.TransactionManager.StartTransaction())
{
    Alignment alignment = per.ObjectId.GetObject(OpenMode.ForRead) as Alignment;

    try
    {
        ObjectId sampleLineGroupId = alignment.GetSampleLineGroupIds()[0];

        SampleLineGroup slg = sampleLineGroupId.GetObject(OpenMode.ForRead) as SampleLineGroup;
        var mls = slg.MaterialLists;
        foreach(QTOMaterialList ml in mls)
        {
            string name = ml.Name;
            foreach(QTOMaterial m in ml)
            {
                string name1 = m.Name;
                var t = m.QuantityType;
            }
        }
        string[] names = slg.GetQTOMappingNames();
        if (names.Length < 1)
        {
            tr.Abort();
            return;
        }
        //https://forums.autodesk.com/t5/civil-3d-customization/i-want-to-get-each-material-volume-data-not-the-total-volume/td-p/8918744?profile.language=zh-CN
        QuantityTakeoffResult qtoResult = slg.GetTotalVolumeResultDataForMaterialList(slg.GetMappingGuid(names[0]));
        QTOSectionalResult qtoSectionalResult = qtoResult.GetResultsAlongSampleLines()[1];
        QTOAreaResult qtoAreaResult = qtoSectionalResult.AreaResult;
        double cutarea = qtoAreaResult.CutArea;
        double fillarea = qtoAreaResult.FillArea;
        ed.WriteMessage("\n挖方面积为{0:0.00},填方面积为{1:0.00}", cutarea, fillarea);
    }
    catch (System.Exception ex)
    {
        ed.WriteMessage(ex.Message);
    }

    tr.Commit();
}

 

标签:return,Civil,ed,tr,peo,填挖,doc,slg,3d
来源: https://www.cnblogs.com/myzw/p/16399108.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有