Я разрабатываю надстройку импорта/экспорта IFC (Industry Foundation Classes) для Civil 3D, которую я опубликую позже в этом месяце. Функция экспорта уже работает отлично. Однако я до сих пор не совсем понимаю, как создавать объекты в Civil 3D с помощью .NET. Моя надстройка написана на C#.
Я попробовал следующее, что является официальным примером Autodesk:
// Uses an existing Alignment Style named "Basic" and Label Set Style named "All Labels" (for example, from
// the _AutoCAD Civil 3D (Imperial) NCS.dwt template. This call will fail if the named styles
// don't exist.
// Uses layer 0, and no site (ObjectId.Null)
ObjectId testAlignmentID = Alignment.Create(doc, "New Alignment", ObjectId.Null, "0", "Basic", "All Labels");
Однако всякий раз, когда я пытаюсь запустить свой код, я получаю следующее сообщение об ошибке: "Недопустимый идентификатор выравнивания". Мой код выглядит следующим образом:
var civilDatabase = Application.DocumentManager.MdiActiveDocument.Database;
var civilDocument = CivilApplication.ActiveDocument;
using (Transaction civilTransactionManager =
civilDatabase.TransactionManager.StartTransaction())
{
ObjectId civilAlignment = Alignment.Create(civilDocument, "MyName", "" , "0", "Basic", "All Labels");
Я также пытался заменить "", который дает сайт для выравнивания, на null или ObjectID.Null, оба не работают и заменяют его с ObjectID.Null даже не позволяет мне компилироваться.
Кто-нибудь знает, откуда эта ошибка?