| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как добавить объектные данные/данные объекта в AutoCAD Map 3D (желательно 2013)

Как добавить объектные данные/данные объекта в AutoCAD Map 3D (желательно 2013)

Ответ
Поиск в этой теме
Непрочитано 23.09.2013, 16:26 #1
Как добавить объектные данные/данные объекта в AutoCAD Map 3D (желательно 2013)
h6784rfg6
 
Регистрация: 12.09.2013
Сообщений: 24

Очередное партийное задание!

Подскажите, (жевательно ссылкой на справочник) как добавлять и редактировать данные объекта в AutoCAd Map 3D 2013 (ну или другой не очень старой версии.) Есть ли возможность добавить эти данные срествами .NET?
Просмотров: 3936
 
Непрочитано 23.09.2013, 16:33
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Так же как и данные остальных объектов в автокаде.
Ссылки на справку Вам давали много раз, но Вы их упорно игнорируете.
Boxa вне форума  
 
Непрочитано 23.09.2013, 21:31
1 | #3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,050


Цитата:
как добавлять и редактировать данные объекта
в смысле Object Data?

Создать таблицу
Код:
[Выделить все]
        Public Sub CreateODTable(ByRef workObj As MyRules)
            Dim mapApp As Autodesk.Gis.Map.MapApplication = Autodesk.Gis.Map.HostMapApplicationServices.Application
            Dim activeProject As Autodesk.Gis.Map.Project.ProjectModel = mapApp.ActiveProject
            Dim tableList As Autodesk.Gis.Map.ObjectData.Tables = activeProject.ODTables
            Dim fieldDefs As FieldDefinitions
            'crODTable 
            If tableList.GetTableNames.IndexOf(workObj.LayerName) = -1 Then
                fieldDefs = mapApp.ActiveProject.MapUtility.NewODFieldDefinitions()
                Dim I As Integer
                Dim fNode As TitleRec
                Dim def1 As Autodesk.Gis.Map.ObjectData.FieldDefinition
                For I = 1 To workObj.Title.Count
                    fNode = workObj.Title.Item(I)
                    If Not fNode.IsGeom Then
                        def1 = fieldDefs.Add(fNode.name, _
                                             fNode.id, GetMyType(fNode.type), 0) 'Выбор на Character 
                    End If
                Next I
                tableList.Add(workObj.LayerName, fieldDefs, "Description", True)
            End If
            crODTable = tableList.Item(workObj.LayerName)
        End Sub
и подключить запись
Код:
[Выделить все]
        Public Sub WriteRecord(ByVal WorkRecord As MyRecord)
            Dim fNode As MyField
            Dim NewObjId As ObjectId
            Select Case WorkRecord.Geom.RecType
                Case GeometryType.Point.ToString
                    NewObjId = DrawPoint(WorkRecord.Geom.RecValue)
                Case GeometryType.LineString.ToString
                    NewObjId = DrawPolyLine(WorkRecord.Geom.RecValue)
                Case GeometryType.Polygon.ToString
                    NewObjId = DrawPolygon(WorkRecord.Geom.RecValue)
            End Select
            Try
                Dim acDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
                Dim acCurDb As Database = acDoc.Database
                Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
                    Dim dbObj As DBObject = acTrans.GetObject(NewObjId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite)
                    Dim odrecords As Autodesk.Gis.Map.ObjectData.Records = crODTable.GetObjectTableRecords(Convert.ToUInt32(0), _
                     dbObj, Autodesk.Gis.Map.Constants.OpenMode.OpenForRead, False)
                    Dim odRecord As Autodesk.Gis.Map.ObjectData.Record = odrecords.Item(0)
                    odRecord = Autodesk.Gis.Map.ObjectData.Record.Create()
                    crODTable.InitRecord(odRecord)
                    Dim def1 As Autodesk.Gis.Map.ObjectData.FieldDefinition
                    Dim mapVal As Autodesk.Gis.Map.Utilities.MapValue
                    Dim I As Integer
                    Dim Val As String

                    For I = 0 To crODTable.FieldDefinitions.Count - 1
                        def1 = crODTable.FieldDefinitions.Item(I)
                        fNode = WorkRecord.SearchField(def1.Description)
                        mapVal = odRecord(I)
                        Val = fNode.RecValue
                        Try
                            mapVal.Assign(Val)
                        Catch exc As System.Exception
                            MsgBox("Ошибка типа : " + exc.Message.ToString())
                        End Try
                    Next I
                    ' dbObj should be opened for Write, otherwise
                    crODTable.AddRecord(odRecord, dbObj)
                    odRecord.Dispose()
                    odrecords.Dispose()
                    acTrans.Commit()
                End Using
            Catch exc As Autodesk.Gis.Map.MapException
                MsgBox("Error : " + exc.Message.ToString())
            End Try
        End Sub
Исходник
trir вне форума  
 
Автор темы   Непрочитано 24.09.2013, 10:59
#4
h6784rfg6


 
Регистрация: 12.09.2013
Сообщений: 24


Да, именно их имел ввиду) Благодарю
h6784rfg6 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как добавить объектные данные/данные объекта в AutoCAD Map 3D (желательно 2013)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видеоуроки AutoCAD kosmax AutoCAD 173 17.02.2017 15:08
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59
Автоматический расчет веса 3D объекта в AutoCAD 2010. Возможно? Godofwind AutoCAD 13 08.04.2009 10:41
Использование в AutoCad 3d модели созданной в AutoCad Архитектор faust23 AutoCAD 25 16.10.2008 00:53