RevitLookup.Test.SDKSamples.StructuralSample.StructSample.PlaceColumn C# (CSharp) Method

PlaceColumn() private method

Create a column instance and place it on the wall line.
private PlaceColumn ( Autodesk rvtApp, System.Windows.Forms.Document rvtDoc, Autodesk point2, double angle, FamilySymbol columnType, ElementId baseLevelId, ElementId topLevelId ) : void
rvtApp Autodesk
rvtDoc System.Windows.Forms.Document
point2 Autodesk
angle double
columnType FamilySymbol
baseLevelId ElementId
topLevelId ElementId
return void
        private void PlaceColumn( Autodesk.Revit.ApplicationServices.Application rvtApp, Document rvtDoc, Autodesk.Revit.DB.XYZ point2, double angle, FamilySymbol columnType, ElementId baseLevelId, ElementId topLevelId )
        {
            Autodesk.Revit.DB.XYZ point = point2;
              // Note: Must use level-hosted NewFamilyInstance!
              Level instLevel = (Level) rvtDoc.GetElement( baseLevelId );
              Autodesk.Revit.DB.FamilyInstance column = rvtDoc.Create.NewFamilyInstance( point, columnType, instLevel, StructuralType.Column );

              if( column == null )
              {
            MessageBox.Show( "failed to create an instance of a column." );
            return;
              }

              Autodesk.Revit.DB.XYZ zVec = new Autodesk.Revit.DB.XYZ( 0, 0, 1 );

              Autodesk.Revit.DB.Line axis = Line.CreateUnbound( point, zVec );

              column.Location.Rotate( axis, angle );

              // Set the level Ids
              Parameter baseLevelParameter = column.get_Parameter( Autodesk.Revit.DB.BuiltInParameter.FAMILY_BASE_LEVEL_PARAM );
              Parameter topLevelParameter = column.get_Parameter( Autodesk.Revit.DB.BuiltInParameter.FAMILY_TOP_LEVEL_PARAM ); ;
              baseLevelParameter.Set( baseLevelId );
              topLevelParameter.Set( topLevelId );
        }