using System.Linq;
using Autodesk.AutoCAD.ApplicationServices.Core;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.Civil.DatabaseServices;
namespace CivilTest
{
public class TestNetworkNaming
{
[CommandMethod(nameof(SetNetworkNameTest))]
public void SetNetworkNameTest()
{
var civilDocument = CivilApplication.ActiveDocument;
var networkId = civilDocument.GetPipeNetworkIds().Cast<ObjectId>().FirstOrDefault();
if (networkId.IsValid)
{
SetNetworkName(networkId, "Test|Network");
}
}
/// <summary>
/// Присвоение названия сети
/// </summary>
/// <param name="networkId">ObjectId сети</param>
/// <param name="name">Название</param>
public static void SetNetworkName(ObjectId networkId, string name)
{
var database = networkId.Database;
var document = Application.DocumentManager.GetDocument(database);
using (document.LockDocument())
using (var transaction = database.TransactionManager.StartTransaction())
{
var network = transaction.GetObject(networkId, OpenMode.ForWrite, false, true) as Network;
if (network != null)
{
try
{
network.Name = name;
}
catch (System.Exception e)
{
document.Editor.WriteMessage("\nException: {0}", e.Message);
}
}
transaction.Commit();
}
}
}
}