Создание Revit Sheets из Excel с несколькими параметрами проекта - PullRequest
0 голосов
/ 30 марта 2019

Привет У меня есть макрос, который создает несколько листов и имеет имя, номер, категорию листов.Последний - мой собственный параметр проекта.

Я могу успешно создать листы с именем и номером, но у меня возникают трудности с добавлением значения из файла CSV в параметр проекта "Категория SD_Sheet".Ниже приведены некоторые примеры кода, помогающие объяснить.

Public Module mSheetCreator
Public Structure structSheet
    Public sheetNum As String
    Public sheetName As String
    Public sortCategory As String
End Structure

Затем у меня есть функция, которая читает файл CSV и выполняет следующее:

            Try
                currentRow = MyReader.ReadFields()

                'create temp sheet
                Dim curSheet As New structSheet
                curSheet.sheetNum = currentRow(0)
                cursheet.sheetName = currentRow(1)
                curSheet.sortCategory = currentRow(4)

                'add sheet to list
                sheetList.Add(curSheet)

Затем у меня есть транзакция, которая выполняетследующее:

For Each curSheet As structSheet In sheetList
        Try
        If sheetType = "Placeholder Sheet" Then
m_vs = ViewSheet.CreatePlaceholder(curDoc)
        Else 
m_vs = ViewSheet.Create(curDoc, tblock.Id)
m_vs.Parameter("SD_Sheet Category").Set(CStr(curSheet.sortCategory))
        End If
m_vs.Name = curSheet.sheetName
m_vs.SheetNumber = curSheet.sheetNum

Проблема заключается в следующем коде:

m_vs.Parameter("SD_Sheet Category").Set(CStr(curSheet.sortCategory))

Я получаю предупреждение о том, что это неявное преобразование из 'String' в 'Autodesk.Revit.DB.BuiltInParameter '" как только я создаю решение

Когда я запускаю код в Revit, он выдает ошибку:

" Преобразование из строки "Категория SD_Sheet"для ввода 'Integer' недопустимо"

Он создает листы, но игнорирует всю информацию в файле CSV. Я знаю, что остальная часть кода работает, так как я удалил этот конкретныйстрока кода, чтобы я знал, что это не проблема

Есть предложения ??

1 Ответ

1 голос
/ 31 марта 2019

Я считаю, что с определенной версией Revit API вы не можете использовать .Parameter («имя»)

Потому что может быть два параметра с одинаковым именем.

Так что вам нужно сделать что-то более похожее на

Dim cat as Parameter

Cat = m_vs.GetParameters («категория sd_sheet»). First () Cat.Set (ПРМ (cursht.sortCategory))

Удачи!

...