使用多个项目参数从Excel创建Revit工作表

时间:2019-03-30 01:07:55

标签: excel vb.net revit-api revit

嗨,我有一个宏,可以创建多个工作表,并且具有名称,编号,工作表类别。最后一个是我自己的项目参数。

我可以成功创建带有名称和编号的图纸,但是我很难将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类别”到类型“整数”的转换无效”

它创建工作表,但忽略CSV文件中的所有信息。我知道其余代码可以正常工作,因为我已经删除了这一行代码,所以我知道这不是问题

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为,从特定版本的Revit API开始,您不能使用.Parameter(“ name”)

因为可能有两个名称相同的参数。

所以您需要做更多类似的事情

Dim cat as Parameter

Cat = m_vs.GetParameters(“ sd_sheet类别”).First() Cat.Set(CSTR(cursht.sortCategory))

祝你好运!