void f( Document doc )
{
Application app = doc.Application;
bool isInstanceBinding = false; // true = Instance, false = Type
bool bStatus = true;
string szBIC_Name = "OST_MechanicalEquipment";
Autodesk.Revit.DB.CategorySet catSet = app.Create.NewCategorySet();
if( isInstanceBinding )
{
BIC_AllowsBoundParametersAsInstance BIC_ToInsert;
if( Enum.TryParse<BIC_AllowsBoundParametersAsInstance>( szBIC_Name, out BIC_ToInsert ) )
{
catSet.Insert( doc.Settings.Categories.get_Item( (BuiltInCategory) BIC_ToInsert ) );
}
else
{
// Invalid Category
bStatus = false;
}
//else ?
{
BIC_AllowsBoundParametersAsType BIC_ToInsert2;
if( Enum.TryParse<BIC_AllowsBoundParametersAsType>( szBIC_Name, out BIC_ToInsert2 ) )
{
catSet.Insert( doc.Settings.Categories.get_Item( (BuiltInCategory) BIC_ToInsert2 ) );
}
else
{
// Invalid Category
bStatus = false;
}
}
if( bStatus )
{
Autodesk.Revit.DB.Binding binding = isInstanceBinding
? app.Create.NewTypeBinding( catSet ) as Autodesk.Revit.DB.Binding
: app.Create.NewInstanceBinding( catSet ) as Autodesk.Revit.DB.Binding;
//BuiltInParameterGroup parameterGroup;
Definition def = null;
doc.ParameterBindings.Insert( def, binding );
}
else
{
// Notify User Invalid Category was given....
}
// test for enum equlity
string szMessage = string.Empty;
// Without cast
if( BuiltInCategory.OST_MechanicalEquipment.Equals( BIC_AllowsBoundParametersAsType.OST_MechanicalEquipment ) )
{
szMessage = "We are Equal";
}
else
{
// we get here
szMessage = "We are not Equal";
}
//MessageBox.Show( szMessage );
// With cast
if( BuiltInCategory.OST_MechanicalEquipment.Equals( (BuiltInCategory) BIC_AllowsBoundParametersAsType.OST_MechanicalEquipment ) )
{
// we get here
szMessage = "We are Equal";
}
else
{
szMessage = "We are not Equal";
}
//MessageBox.Show( szMessage );
}
}