LoadCombination.Create(Document, String, LoadCombinationType, LoadCombinationState) Method

LoadCombinationCreate(Document, String, LoadCombinationType, LoadCombinationState) Method

Creates a new LoadCombination.

Namespace: Autodesk.Revit.DB.Structure
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public static LoadCombination Create(
	Document document,
	string name,
	LoadCombinationType type,
	LoadCombinationState state
)
Public Shared Function Create ( 
	document As Document,
	name As String,
	type As LoadCombinationType,
	state As LoadCombinationState
) As LoadCombination
public:
static LoadCombination^ Create(
	Document^ document, 
	String^ name, 
	LoadCombinationType type, 
	LoadCombinationState state
)
static member Create : 
        document : Document * 
        name : string * 
        type : LoadCombinationType * 
        state : LoadCombinationState -> LoadCombination 

Parameters

document  Document
The Document to which new load combination element will be added.
name  String
The name of the load combination.
type  LoadCombinationType
The type of the load combination.
state  LoadCombinationState
The state of the load combination.

Return Value

LoadCombination
The newly created load combination element if successful, otherwise.
Exceptions
ExceptionCondition
ArgumentException The given name is not unique
ArgumentNullException A non-optional argument was null
ArgumentOutOfRangeException A value passed for an enumeration argument is not a member of that enumeration
Example
#region Autodesk.Revit.DB.Structure.LoadNature.Create(Autodesk.Revit.DB.Document,string)
#region Autodesk.Revit.DB.Structure.LoadCase.Create(Autodesk.Revit.DB.Document,string,Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.Structure.LoadCaseCategory)
#region Autodesk.Revit.DB.Structure.LoadUsage.Create(Autodesk.Revit.DB.Document,string)
#region Autodesk.Revit.DB.Structure.LoadComponent.#ctor(Autodesk.Revit.DB.ElementId,System.Double)
#region Autodesk.Revit.DB.Structure.LoadCombination.SetComponents(System.Collections.Generic.IList{Autodesk.Revit.DB.Structure.LoadComponent})
#region Autodesk.Revit.DB.Structure.LoadCombination.SetUsageIds(System.Collections.Generic.IList{Autodesk.Revit.DB.ElementId})
LoadCombination CreateLoadCombinationLoadCaseLoadUsageLoadNatureAndLoadComponent(Document document)
{
    // Create a new load combination
    LoadCombination loadCombination = LoadCombination.Create(document, "DL1 + RAIN1", LoadCombinationType.Combination, LoadCombinationState.Ultimate);
    if (loadCombination == null)
       throw new Exception("Create new load combination failed.");

    // Get all existing LoadCase
    FilteredElementCollector collector = new FilteredElementCollector(document);
    ICollection<Element> collection = collector.OfClass(typeof(LoadCase)).ToElements();

    // Find LoadCase "DL1"
    LoadCase case1 = null;
    foreach (Element e in collection)
    {
       LoadCase loadCase = e as LoadCase;
       if (loadCase.Name == "DL1")
       {
          case1 = loadCase;
          break;
       }
    }

    // Get all existing LoadNature
    collector = new FilteredElementCollector(document);
    collection = collector.OfClass(typeof(LoadNature)).ToElements();

    // Find LoadNature "Dead"
    LoadNature nature1 = null;
    foreach (Element e in collection)
    {
       LoadNature loadNature = e as LoadNature;
       if (loadNature.Name == "Dead")
       {
          nature1 = loadNature;
          break;
       }
    }

    // Create LoadNature "Dead" if not exist
    if (nature1 == null)
       nature1 = LoadNature.Create(document, "Dead");

    // Create LoadCase "DL1" if not exist
    if (case1 == null)
       case1 = LoadCase.Create(document, "DL1", nature1.Id, LoadCaseCategory.Dead);

    // Create LoadNature "Rain"
    LoadNature nature2 = LoadNature.Create(document, "Rain");
    if (nature2 == null)
       throw new Exception("Create new load nature failed.");

    // Create LoadCase "RAIN1"
    LoadCase case2 = LoadCase.Create(document, "RAIN1", nature2.Id, LoadCaseCategory.Snow);
    if (case1 == null || case2 == null)
       throw new Exception("Create new load case failed.");

    // Create LoadComponents - they consist of LoadCases or nested LoadCombination and Factors
    List<LoadComponent> components = new List<LoadComponent>();
    components.Add(new LoadComponent(case1.Id, 2.0));
    components.Add(new LoadComponent(case2.Id, 1.5));

    // Add components to combination
    loadCombination.SetComponents(components);

    // Create LoadUsages
    LoadUsage usage1 = LoadUsage.Create(document, "Frequent");
    LoadUsage usage2 = LoadUsage.Create(document, "Rare");

    if (usage1 == null || usage2 == null)
       throw new Exception("Create new load usage failed.");

    // Add load usages to combination
    loadCombination.SetUsageIds(new List<ElementId>() {usage1.Id, usage2.Id});

    // Give the user some information
    TaskDialog.Show("Revit", string.Format("Load Combination ID='{0}' created successfully.", loadCombination.Id.ToString()));

    return loadCombination;
}
#endregion
#endregion
#endregion
#endregion
#endregion
#endregion
#Region "Autodesk.Revit.DB.Structure.LoadNature.Create(Autodesk.Revit.DB.Document,string)"
#Region "Autodesk.Revit.DB.Structure.LoadCase.Create(Autodesk.Revit.DB.Document,string,Autodesk.Revit.DB.ElementId,Autodesk.Revit.DB.Structure.LoadCaseCategory)"
#Region "Autodesk.Revit.DB.Structure.LoadUsage.Create(Autodesk.Revit.DB.Document,string)"
#Region "Autodesk.Revit.DB.Structure.LoadComponent.#ctor(Autodesk.Revit.DB.ElementId,System.Double)"
#Region "Autodesk.Revit.DB.Structure.LoadCombination.SetComponents(System.Collections.Generic.IList{Autodesk.Revit.DB.Structure.LoadComponent})"
#Region "Autodesk.Revit.DB.Structure.LoadCombination.SetUsageIds(System.Collections.Generic.IList{Autodesk.Revit.DB.ElementId})"
        Private Function CreateLoadCombinationLoadCaseLoadUsageLoadNatureAndLoadComponent(document As Document) As LoadCombination
            ' Create a new load combination
            Dim loadCombination__1 As LoadCombination = LoadCombination.Create(document, "DL1 + RAIN1", LoadCombinationType.Combination, LoadCombinationState.Ultimate)
            If loadCombination__1 Is Nothing Then
                Throw New Exception("Create new load combination failed.")
            End If

            ' Get all existing LoadCase
            Dim collector As New FilteredElementCollector(document)
            Dim collection As ICollection(Of Element) = collector.OfClass(GetType(LoadCase)).ToElements()

            ' Find LoadCase "DL1"
            Dim case1 As LoadCase = Nothing
            For Each e As Element In collection
                Dim loadCase__2 As LoadCase = TryCast(e, LoadCase)
                If loadCase__2.Name = "DL1" Then
                    case1 = loadCase__2
                    Exit For
                End If
            Next

            ' Get all existing LoadNature
            collector = New FilteredElementCollector(document)
            collection = collector.OfClass(GetType(LoadNature)).ToElements()

            ' Find LoadNature "Dead"
            Dim nature1 As LoadNature = Nothing
            For Each e As Element In collection
                Dim loadNature__3 As LoadNature = TryCast(e, LoadNature)
                If loadNature__3.Name = "Dead" Then
                    nature1 = loadNature__3
                    Exit For
                End If
            Next

            ' Create LoadNature "Dead" if not exist
            If nature1 Is Nothing Then
                nature1 = LoadNature.Create(document, "Dead")
            End If

            ' Create LoadCase "DL1" if not exist
            If case1 Is Nothing Then
                case1 = LoadCase.Create(document, "DL1", nature1.Id, LoadCaseCategory.Dead)
            End If

            ' Create LoadNature "Rain"
            Dim nature2 As LoadNature = LoadNature.Create(document, "Rain")
            If nature2 Is Nothing Then
                Throw New Exception("Create new load nature failed.")
            End If

            ' Create LoadCase "RAIN1"
            Dim case2 As LoadCase = LoadCase.Create(document, "RAIN1", nature2.Id, LoadCaseCategory.Snow)
            If case1 Is Nothing OrElse case2 Is Nothing Then
                Throw New Exception("Create new load case failed.")
            End If

            ' Create LoadComponents - they consist of LoadCases or nested LoadCombination and Factors
            Dim components As New List(Of LoadComponent)()
            components.Add(New LoadComponent(case1.Id, 2.0))
            components.Add(New LoadComponent(case2.Id, 1.5))

            ' Add components to combination
            loadCombination__1.SetComponents(components)

            ' Create LoadUsages
            Dim usage1 As LoadUsage = LoadUsage.Create(document, "Frequent")
            Dim usage2 As LoadUsage = LoadUsage.Create(document, "Rare")

            If usage1 Is Nothing OrElse usage2 Is Nothing Then
                Throw New Exception("Create new load usage failed.")
            End If

            ' Add load usages to combination
            loadCombination__1.SetUsageIds(New List(Of ElementId)() From {
                usage1.Id,
                usage2.Id
            })

            ' Give the user some information
            TaskDialog.Show("Revit", String.Format("Load Combination ID='{0}' created successfully.", loadCombination__1.Id.ToString()))

            Return loadCombination__1
        End Function
#End Region
#End Region
#End Region
#End Region
#End Region
#End Region

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

See Also