Tạo mô hình địa hình từ điểm (PointGroup) trong Civil3D với ứng dụng API

Yuri Boyka July 27, 2015 0

Mình xin chia sẻ 1 đoạn code tạo mô hình địa hình từ điểm khi đã nhập dữ liệu điểm vào trong Civil3D với ứng dụng API:

using(Transaction tr = db.TransactionManager.StartTransaction())
{
PointGroupCollection _col = _Civil.PointGroups;
if(_col.Count > 0)
{
ObjectId _id = _col[0];
// Chọn Style cho Surface
ObjectId _style = _Civil.Styles.SurfaceStyles.Add(“Style của tôi”);
SurfaceStyle _surstyle = _style.GetObject(OpenMode.ForWrite) as SurfaceStyle;
// Lưới tam giác
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Triangles).Visible = true;
_surstyle.GetDisplayStyleModel(SurfaceDisplayStyleType.Triangles).Visible = true;
// Đường bao
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Boundary).Visible = true;
_surstyle.BoundaryStyle.DisplayExteriorBoundaries = true;
_surstyle.BoundaryStyle.DisplayInteriorBoundaries = false;
// Không hiển thị đường đồng mức
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.MajorContour).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.MinorContour).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.UserContours).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Directions).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Elevations).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Slopes).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.SlopeArrows).Visible = false;
_surstyle.GetDisplayStylePlan(SurfaceDisplayStyleType.Watersheds).Visible = false;
if (_style != null)
{
// Tạo 1 TIN Surface trống
ObjectId _surfaceID = TinSurface.Create(“MySurface”, _style);
TinSurface _Surface = tr.GetObject(_surfaceID, OpenMode.ForWrite) as TinSurface;
// Thêm PointGroup vào TinSurface
SurfaceDefinitionPointGroups _pointgroup = _Surface.PointGroupsDefinition;
_pointgroup.AddPointGroup(_id);
}
}

// Cập nhập
tr.Commit();
}

F5 hoặc Start chương trình để khởi động Civil3D, vào Civil3D gõ lệnh NETLOAD để load File .DLL, sau đó gõ lệnh TAOBEMATTUPOINTGROUP, tự động chương trình sẽ tự động tạo 1 Surface mới với tên MySurface:

1

1

Với kiểu hiển thị bề mặt đúng với tên đã tạo:

1

 

Chúc các bạn thành công!

Leave A Response »

You must be logged in to post a comment.