def createSharedPara(_paramName_string,_groupNameinSPfile_string, \
                    _paramtype_enum, _builtInCat_enum,_paramGroupinProperty_enum):	
    # open SharedParameterFile 
    file = uiapp.Application.OpenSharedParameterFile()
    # get GroupName in SharedParameter file, if not exist create new Group  
    group = file.Groups.get_Item(_groupNameinSPfile_string)
    if group == None: 
        group = file.Groups.Create(_groupNameinSPfile_string)
    # Create NewCategorySet()              
    catset = app.Create.NewCategorySet()   
    # Insert Category Objects in CatSet  <Autodesk.Revit.DB.Category object 
    catset.Insert(doc.Settings.Categories.get_Item(_builtInCat_enum)) # returns True 
    # create an instance binding object with categoryset  
    inst_bind = app.Create.NewInstanceBinding(catset)     
    #ExternalDefinitionCreationOptions Class  excpects ( paraname as string, paratype object)
    # An option class used for creating a new shared parameter definition,        
    ED_opt1 = ExternalDefinitionCreationOptions(_paramName_string, _paramtype_enum)
    ED_opt1.Visible = True # True is the default value
    #Create Parameter Definition Object               
    #Test if paraName is in SharedParam file , get Para Name Definition from file, else Create new Name 
    if group.Definitions.Contains(group.Definitions.Item[_paramName_string]):
        _exdef1 = group.Definitions.Item[_paramName_string] # create parameter definition object from Para in file
    else:  
    # _def = group.Definitions.Create(_paramName, _paramtype_enum, _visible) 
        _exdef1 = group.Definitions.Create(ED_opt1) #Create para Definition object wit Ext
    #Create Parameter by inserting the Para Definition in the ParameterBindigs_Map
    try:
        t = Transaction(doc, "Parameter Creation")
        t.Start() 
        bind_Map = doc.ParameterBindings.Insert(_exdef1, inst_bind, _paramGroupinProperty_enum) 
        t.Commit()
    except:
        import traceback
        print(traceback.format_exc())
Esempio n. 2
0
    def write_to_definition_file(self, definition_file=None, warning=True):
        # type: (DefinitionFile, bool) -> ExternalDefinition
        """
        Create a new parameter definition in current shared parameter file
        :param definition_file: (Optional) definition file
        :param warning: (Optional) Warn user if a definition with given name already exist
        :return: External definition which have just been written
        """
        if not definition_file:
            definition_file = self.get_definition_file()

        if not self.group:
            self.group = "pypevitmep"

        definition_group = definition_file.Groups[self.group]
        if not definition_group:
            definition_group = definition_file.Groups.Create(self.group)

        if definition_group.Definitions[self.name] and warning:
            alert("A parameter definition named {} already exist".format(self.name))
            return
        else:
            external_definition_create_options = ExternalDefinitionCreationOptions(self.name,
                                                                                   self.type,
                                                                                   GUID=self.guid,
                                                                                   UserModifiable=self.modifiable,
                                                                                   Description=self.description,
                                                                                   Visible=self.visible)
            definition = definition_group.Definitions.Create(external_definition_create_options)
        self.initial_values_update()
        self.new = self.changed = False
        return
Esempio n. 3
0
 def create_parameter(self, param_name, param_type):
     opt = ExternalDefinitionCreationOptions(param_name, param_type)
     el = self.shared_param_group.Definitions.Create(opt)
     return el
Esempio n. 4
0
	def copyExternalDefinition(self, guid, definition):
		xDefOptions = ExternalDefinitionCreationOptions(definition.Name, definition.ParameterType)
		xDefOptions.Description = ''
		xDefOptions.GUID = guid

		return self.groupDefinition.Definitions.Create( xDefOptions )