/// <summary> /// Gets the listed parameters of an element and returns a Dictionary with the Key being the parameter name and the Value being the parameter value. /// </summary> /// <param name="element">A Dynamo wrapped element.</param> /// <param name="parameterNames">A list of parameter names.</param> /// <returns></returns> public static synthDict GetParamterToDictionary(DynaElem element, List <string> parameterNames) { synthDict dict = synthDict.ByEmpty(); RevitDoc doc = element.InternalElement.Document; foreach (string name in parameterNames) { object value = element.GetParameterValueByName(name); if (value != null) { synthDict.Add(dict, name, value); } } return(dict); }
/// <summary> /// Sets an element's parameters based on a Dictionary object with the Key being the parameter name and the Value being the parameter value. /// </summary> /// <param name="element">A Dynamo wrapped element.</param> /// <param name="dictionary">A Synthetic Dictionary</param> /// <returns></returns> public static DynaElem SetParamterByDictionary(DynaElem element, synthDict dictionary) { RevitDoc doc = element.InternalElement.Document; TransactionManager.Instance.EnsureInTransaction(doc); foreach (KeyValuePair <string, object> keyValue in synthDict.UnwrapDictionary(dictionary)) { if (element.InternalElement.GetParameters(keyValue.Key)[0].IsReadOnly == false) { element.SetParameterByName(keyValue.Key, keyValue.Value); } } TransactionManager.Instance.TransactionTaskDone(); return(element); }