accesing project parameters

accesing project parameters

Anonymous
Not applicable
2,534 Views
4 Replies
Message 1 of 5

accesing project parameters

Anonymous
Not applicable

hi all

i am trying to create a new project parameter and bind oit to a shared parameter

 

i read the api document of autodesk used the code examples

 

and came up with this

 

<Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)> _
<Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)> _
<Autodesk.Revit.VSTA.AddInId("056e4a87-ca78-4e44-8540-dda2100c7547")> _
Partial Public Class ThisDocument

    Private Sub Module_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup

    End Sub

    Private Sub Module_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown

    End Sub

    Public Sub a()
        Dim uiApp As UIApplication = Me.Application
        Dim doc As Document = uiApp.ActiveUIDocument.Document

        'Dim projinfo As Autodesk.Revit.DB.Category = doc.Settings.Categories.Item(BuiltInCategory.OST_ProjectInformation)
        ' Dim cats1 As CategorySet = uiApp.Application.Create.NewCategorySet()
        'cats1.Insert(projinfo)
        'RawCreateProjectParameterFromExistingSharedParameter(uiApp, "ExistingParameter1", cats1, BuiltInParameterGroup.PG_DATA, False)
        'RawCreateProjectParameterFromNewSharedParameter(uiApp, "NewDefinitionGroup1", "NewParameter1", ParameterType.Text, True, cats1, BuiltInParameterGroup.PG_DATA, False)
        'RawCreateProjectParameter(uiApp, "TemporarySharedParameter", ParameterType.Text, True, cats1, BuiltInParameterGroup.PG_DATA, True)
        Dim deffile As DefinitionFile
        Dim fname As String
        fname = "I:\down\onderhoek\1.txt"
        Dim projinfo As ProjectInfo = doc.ProjectInformation

        uiApp.Application.SharedParametersFilename = fname

        DefFile = uiApp.Application.OpenSharedParameterFile
        If defFile Is Nothing Then
            Throw New Exception("No SharedParameter File!")
        End If


        Dim myGroups As DefinitionGroups = deffile.Groups

        Dim myGroup As DefinitionGroup
        Dim myDef As Definition
        If myGroups.Item("MyParameters2") Is Nothing Then
            myGroup = myGroups.Create("MyParameters2")

        Else
            myGroup = myGroups.Item("MyParameters2")

        End If

        If myGroup.Definitions.Item("Instance_ProductDate") Is Nothing Then
            myDef = myGroup.Definitions.Create("Instance_ProductDate", ParameterType.Text)

        Else
            myDef = myGroup.Definitions.Item("Instance_ProductDate")
        End If


        Dim myCats As CategorySet = uiApp.Application.Create.NewCategorySet
        Dim myCat As Category = uiApp.ActiveUIDocument.Document.Settings.Categories.Item(BuiltInCategory.OST_ProjectInformation)
        myCats.Insert(myCat)
        Dim instanceBinding As InstanceBinding = uiApp.Application.Create.NewInstanceBinding(myCats)
        MsgBox("7")
        Dim bindingMap As BindingMap = doc.ParameterBindings
        MsgBox("8")
        bindingMap.Insert(myDef, instanceBinding, BuiltInParameterGroup.PG_TEXT)

    End Sub



End Class

 

this only works when i have already a project parameter "ExistingParameter1 defined in my project parameters

 

is it possible to create my own project parameter an attach the shared parameter to the project parameter ??????

 

 

0 Likes
Accepted solutions (1)
2,535 Views
4 Replies
Replies (4)
Message 2 of 5

Anonymous
Not applicable
Accepted solution

hi all
solved it forgot new statement and transaction

Public Sub a()
Dim uiApp As UIApplication = Me.Application
Dim doc As Document = uiApp.ActiveUIDocument.Document


' Dim cats1 As CategorySet = uiApp.Application.Create.NewCategorySet()
'cats1.Insert(projinfo)
Dim deffile As DefinitionFile
Dim fname As String
fname = "I:\down\onderhoek\1.txt"
Dim projinfo As ProjectInfo = doc.ProjectInformation

uiApp.Application.SharedParametersFilename = fname

DefFile = uiApp.Application.OpenSharedParameterFile
If defFile Is Nothing Then
Throw New Exception("No SharedParameter File!")
End If


Dim Transaction As Transaction = New Transaction(doc)
If (Transaction.Start("parameter") = TransactionStatus.Started) Then

Dim myGroups As DefinitionGroups = deffile.Groups

Dim myGroup As DefinitionGroup
Dim myDef As ExternalDefinition
If myGroups.Item("MyParameters2") Is Nothing Then
myGroup = myGroups.Create("MyParameters2")

Else
myGroup = myGroups.Item("MyParameters2")

End If

If myGroup.Definitions.Item("Instance_ProductDate") Is Nothing Then
myDef = myGroup.Definitions.Create("Instance_ProductDate", ParameterType.Text)
MsgBox("3")
Else
myDef = myGroup.Definitions.Item("Instance_ProductDate")

End If

Dim myCats As CategorySet = uiApp.Application.Create.NewCategorySet

Dim myCat As Category = uiApp.ActiveUIDocument.Document.Settings.Categories.Item(BuiltInCategory.OST_ProjectInformation)
myCats.Insert(myCat)

Dim instanceBinding As InstanceBinding = uiApp.Application.Create.NewInstanceBinding(myCats)

Dim bindingMap As BindingMap = (New UIApplication(uiApp.Application)).ActiveUIDocument.Document.ParameterBindings

bindingMap.Insert(myDef, instanceBinding, BuiltInParameterGroup.PG_TEXT)
End If
Transaction.Commit()


End Sub

Message 3 of 5

mertens3d
Enthusiast
Enthusiast

jetfreggel01,

 

Did you come across a way to set the value of a Project Parameter?

If so, can you share that info?

 

...gregory

0 Likes
Message 4 of 5

Joe.Ye
Alumni
Alumni

Setting value for the project parameter can be done in the same way as setting normal parameter value..

Retrieve the Parameter variable, and then set value via Parameter.Set() method.



Joe Ye
Contractor
Developer Technical Services
Autodesk Developer Network
0 Likes
Message 5 of 5

mfleming.stantec
Enthusiast
Enthusiast

Anyone have this full working example in C# by chance?

0 Likes