Skip to content

LoadCase.Create(Document, String, ElementId, LoadCaseCategory)

Public Class

Creates a new LoadCase.

Namespace: Autodesk.Revit.DB.Structure

Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

Syntax

public static LoadCase Create(
Document document,
string name,
ElementId natureId,
LoadCaseCategory loadCaseCategory
)

Parameters

document Document

The Document to which new load case element will be added.

nameString

The name of the load case.

natureId ElementId

The load nature ID.

loadCaseCategory LoadCaseCategory

The predefined load case category.

Return Value

LoadCase
The newly created load case element if successful, . otherwise.

Exceptions

Exception

Condition


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


Remarks

This method is designed to create LoadCase that is associated with one of the predefined category.

Example

#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