ADN Club > Civil 3D API

Список элементов сети AutoCAD Civil

(1/2) > >>

D_TRex:
Здравствуйте видел макрос для редактирования труб и колодцев Civil, хочу сделать под свои задачи, для этого надо получить список труб (колодцев).

Собственно к вопросу. Ткните пожалуйста в пример получения списка труб, я находил но там пример создания труб (а мне это не надо), ещё хорошо бы знать какие библиотеки должны быть подключены.


--- Код - vb.net [Выбрать] ---    Public Sub AddPipe()        Dim doc As CivilDocument = CivilApplication.ActiveDocument        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor         Using ts As Transaction = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()            Dim oIdCollection As ObjectIdCollection = doc.GetPipeNetworkIds()            Dim objId As ObjectId = oIdCollection(0)            Dim oNetwork As Network = TryCast(ts.GetObject(objId, OpenMode.ForWrite), Network)            ed.WriteMessage("Pipe Network: {0}" & vbLf, oNetwork.Name)            Dim pid As ObjectId = oNetwork.PartsListId            Dim pl As PartsList = TryCast(ts.GetObject(pid, OpenMode.ForWrite), PartsList)            Dim oid As ObjectId = pl("Concrete Pipe")            Dim pfa As PartFamily = TryCast(ts.GetObject(oid, OpenMode.ForWrite), PartFamily)            Dim psize As ObjectId = pfa(0)            Dim line As LineSegment3d = New LineSegment3d(New Point3d(30, 9, 0), New Point3d(33, 7, 0))            Dim col As ObjectIdCollection = oNetwork.GetPipeIds()            Dim oidNewPipe As ObjectId = ObjectId.Null            oNetwork.AddLinePipe(oid, psize, line, oidNewPipe, False)            Dim oNewPipe As Pipe = TryCast(ts.GetObject(oidNewPipe, OpenMode.ForRead), Pipe)            ed.WriteMessage("Pipe created: {0}" & vbLf, oNewPipe.DisplayName)            ts.Commit()        End Using    End Sub Вот код создания труб из данного форума, (исходник само собой был не VB).

alz:
Ну собственно кусок моего кода, но ты точно уверен что в том разделе создал тему?


--- Код - C# [Выбрать] ---using (Transaction tr = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction()){        //получаем сеть        using (Network network = tr.GetObject(networkId, OpenMode.ForRead, false, true) as Network)        {              //получаем список труб и колодцев              PartsList partsList = tr.GetObject(network.PartsListId, OpenMode.ForRead, false, true) as PartsList;              if (partsList != null)              {                     //создаем коллекцию                                                     ObjectIdCollection pipe_ids = partsList.GetPartFamilyIdsByDomain(DomainType.Pipe);                     ObjectIdCollection structure_ids = partsList.GetPartFamilyIdsByDomain(DomainType.Structure);               }         }         tr.commit();}
Из библиотек именно цивила вроде как AecBaseMgd и AeccDbMgd должно хватить.

D_TRex:

--- Цитата: alz от 15-02-2023, 11:12:54 ---но ты точно уверен что в том разделе создал тему
--- Конец цитаты ---
Только увидел что есть Civil.Api

 Спасибо, список получил, уже хорошо, теперь буду пробовать как это использовать (если возможно)

alz:

--- Цитата: D_TRex от 15-02-2023, 11:33:41 --- Спасибо, список получил, уже хорошо, теперь буду пробовать как это использовать (если возможно)
--- Конец цитаты ---

Что-то я сразу немного не понял что для редактирования.
Текущие элементы в сети получаются методами network.GetPipeIds(); и network.GetStructureIds(); Возвращают ObjectIdCollection.
Код выше позволяет получить базовые части и их размеры для использования в создании новых или редактировании существующих труб и колодцев.

D_TRex:
Да я уже понял что не всё так просто, вчера смог получить все имена сетей, потом семейства труб (колодцев), далее типоразмеры по выбранному семейству, а вот то что мне надо было получить для редактирования - отметка начала (конца) трубы и глубина заложения, пока ни как.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии