static List<ProjectParameterData> GetProjectParameterData(
Document doc)
{
// Following good SOA practices, first validate incoming parameters
if( doc == null )
{
throw new ArgumentNullException( "doc" );
}
if( doc.IsFamilyDocument )
{
throw new Exception( "doc can not be a family document." );
}
List<ProjectParameterData> result
= new List<ProjectParameterData>();
BindingMap map = doc.ParameterBindings;
DefinitionBindingMapIterator it
= map.ForwardIterator();
it.Reset();
while( it.MoveNext() )
{
ProjectParameterData newProjectParameterData
= new ProjectParameterData();
newProjectParameterData.Definition = it.Key;
newProjectParameterData.Name = it.Key.Name;
newProjectParameterData.Binding = it.Current
as ElementBinding;
result.Add( newProjectParameterData );
}
return result;
}