利用Civil 3D API更改曲面的样式
如果你需要更改曲面的样式,比如更改等高线的颜色等等,在Civil 3D中,你可以通过在toolspace中选中曲面,然后点右键选择“Edit surface style…”然后切换到“Display” tab 来更改,:
下面的通过代码的方式使用API来实现同样的效果:
[CommandMethod("MyGroup", "SurfaceStyleExample",
"SurfaceStyleExample", CommandFlags.Modal)]
public void MyCommand() // This method can have any name
{
Document doc = Application.DocumentManager.MdiActiveDocument;
if (doc != null)
{
Editor ed = Application.DocumentManager
.MdiActiveDocument.Editor; // select a tin surface PromptEntityOptions peo = new PromptEntityOptions(
"\nSelect a tin surface: ");
peo.SetRejectMessage("\nOnly Tin surface is accepted");
peo.AddAllowedClass(typeof(TinSurface), true);
PromptEntityResult per = ed.GetEntity(peo);
if (per.Status != PromptStatus.OK) return; CivilDocument civilDoc = CivilApplication.ActiveDocument; using (Transaction trans = doc.TransactionManager
.StartTransaction())
{
TinSurface surface = trans.GetObject(per.ObjectId,
OpenMode.ForRead) as TinSurface; //exclude invalid points, 附赠功能,排除异常点 surface.BuildOptions.ExecludeMaximumElevation = true;
surface.BuildOptions.MaximumElevation = 5000;
surface.BuildOptions.ExecludeMinimumElevation = true;
surface.BuildOptions.MinimumElevation = 200; //set the Maximum Triangle Length,设置三角形最大边长 surface.BuildOptions.MaximumTriangleLength = 200; //change the style, 下面开始更改样式了
ObjectId styleId;
if (civilDoc.Styles.SurfaceStyles.Contains("Standard"))
{
styleId = civilDoc.Styles.SurfaceStyles["Standard"];
}
else
{
// create a new style called 'example style':
styleId = civilDoc.Styles.SurfaceStyles
.Add("example style"); }
// modify the style SurfaceStyle surfaceStyle = styleId.GetObject(
OpenMode.ForWrite) as SurfaceStyle; //countours smoothing surfaceStyle.ContourStyle.SmoothContours = true;
surfaceStyle.ContourStyle.SmoothingType
= ContourSmoothingType.AddVertices;
surfaceStyle.ContourStyle.SmoothingFactor = 10; surfaceStyle.ContourStyle.MajorContourColorScheme
= ColorSchemeType.Rainbow; //Major contour, red surfaceStyle.GetDisplayStylePlan(
SurfaceDisplayStyleType.MajorContour).Color
= Autodesk.AutoCAD.Colors.Color.FromRgb(255, 0, 0); //Major contour, layer 0 surfaceStyle.GetDisplayStylePlan(
SurfaceDisplayStyleType.MajorContour).Layer = "0"; //Mainor contour, gree surfaceStyle.GetDisplayStylePlan(
SurfaceDisplayStyleType.MinorContour).Color
= Autodesk.AutoCAD.Colors.Color.FromRgb(0, 255, 0); //Mainor contour, layer 0, 如果你要放在其他图层,要确保该图层存在 surfaceStyle.GetDisplayStylePlan(
SurfaceDisplayStyleType.MajorContour).Layer = "0"; // display major contours: surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.MajorContour).Visible = true;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.MinorContour).Visible = true; // turn off display of other items:
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.UserContours).Visible = false;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.Directions).Visible = false;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.Elevations).Visible = false;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.Slopes).Visible = false;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.SlopeArrows).Visible = false;
surfaceStyle.GetDisplayStylePlan(SurfaceDisplayStyleType
.Watersheds).Visible = false; //TODO: do the same for all model display settings as well
// // assign the style to the first surface in the document:
surface.StyleId = styleId; // commit the transaction trans.Commit(); //rebuild the surface
surface.Rebuild();
} } }
改之前的样子:
运行之后,等高线的颜色已经改变了.
Hope this helps.
利用Civil 3D API更改曲面的样式的更多相关文章
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- 学习 Civil 3D二次开发从哪儿开始?
1.1 从哪儿开始 对于多数的工程设计人员,不完全具备上节所述的各种条件.对于Civil 3D的应用可能比较熟悉:但对于计算机语言,只限于上学时所学的一点基础知识,步入工作岗位后与计算机语言基本无缘: ...
- Civil 3D CustomDraw .NET混合项目设置
样例文件中的CustomDraw项目使用的是COM API,但COM API不完整,某些时候需要使用.NET API,此时需要将C++项目设置成"公共语言运行时支持(/clr)"但 ...
- Civil 3d设置横断面图样式
一位网友提出这样一个问题: 在使用SectionView.StyleName属性时, 会抛出异常:need to override property StyleName. 我测试的结果一样, 同时测试 ...
- AutoCAD/Civil 3D 学习笔记
Civil学习笔记 1.环境配置 1.添加引用: Civil二次开发需要5个基本的AutoCAD的dll引用-acdbmgd.dll, acmgd.dll, accoremgd.dll, AecBas ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
- Libgdx New 3D API 教程之 -- Libgdx中使用Materials
This blog is a chinese version of xoppa's Libgdx new 3D api tutorial. For English version, please re ...
- 如何将经纬度利用Google Map API显示C# VS2005 Sample Code
原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...
- Civil 3D 2017本地化中VBA程序移植到2018版中
中国本地化包简直就是一块鸡肋, 但对于某些朋友来说还真离不了: 可惜中国本地化包的推出一直滞后, 在最新版软件出来后1年多, 本地化还不一定能够出来, 即使出来了, 也只能是购买了速博服务的用户才能得 ...
随机推荐
- javascript运动系列第二篇——变速运动
× 目录 [1]准备工作 [2]加速运动 [3]重力运动[4]减速运动[5]缓冲运动[6]加减速运动[7]往复运动[8]变速函数 前面的话 前面介绍过匀速运动的实现及注意事项,本文在匀速运动的基础上, ...
- Attach Volume 操作(Part I) - 每天5分钟玩转 OpenStack(53)
上一节我们创建了 volume,本节讨论如何将 volume attach 到 Instance,今天是第一部分. Volume 的最主要用途是作为虚拟硬盘提供给 instance 使用.Volume ...
- 安装Ubuntu时分区选择
最近购买来一台二手笔记本.型号是:Dell Latitude D520.回来之后就装上来Ubuntu12.04,开始是安装的UbuntuKylin 13.04.不知道是机器配置不行,还是本身系统有点卡 ...
- 应用程序框架实战十三:DDD分层架构之我见
前面介绍了应用程序框架的一个重要组成部分——公共操作类,并提供了一个数据类型转换公共操作类作为示例进行演示.下面准备介绍应用程序框架的另一个重要组成部分,即体系架构支持.你不一定要使用DDD这样的架构 ...
- 清除页面广告?身为前端,自己做一款简易的chrome扩展吧
大家肯定有这样的经历,浏览网页的时候,左右两端广告,诸如“屠龙宝刀,点击就送”,以及最近火的不行的林子聪37传奇霸业什么“霸业面具,霸业吊坠”的魔性广告总是充斥我们的眼球. 当然有现成的扩展程序或者插 ...
- 通过监控线程状态来保证socket服务器的稳定运行
云平台中使用的socket服务器是我们自己定义一套通信协议,并通过C#实现的一个socket服务. 该服务目前是和web服务一起运行在IIS容器中,通过启动一个永不退出的新线程来监听端口. 在开发的初 ...
- 窥探Swift编程之在Playground上尽情的玩耍
自从苹果公司发布Swift的时候,Xcode上又多了一样新的东西---"Playground".Playground就像操场一样,可以供我们在代码的世界里尽情的玩耍,在本篇博客中就 ...
- Objective-C中的单例模式
单例模式算是设计模式中比较简单的一种吧,设计模式不是只针对某种编程语言,在C++, Java, PHP等其他OOP语言也有设计模式,笔者初接触设计模式是通过<漫谈设计模式>了解 ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- flex布局示例
来自:授权地址 作者:水牛01248 几个横排元素在竖直方向上居中 display: flex; flex-direction: row;//横向排列 align-items: center;//垂直 ...