BuildingCoder.CmdCategorySupportsTypeParameter.f C# (CSharp) Method

f() private method

private f ( Document doc ) : void
doc Document
return void
        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 );
              }
        }