Wall Create(Document, IList Curve , Element |
Creates a non rectangular profile wall within the project using the specified wall type and normal vector.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)

public static Wall Create(
Document document,
IList<Curve> profile,
ElementId wallTypeId,
ElementId levelId,
bool structural,
XYZ normal
)
Parameters
- document Document
- The document in which the new wall is created.
- profile IList Curve
- An array of planar curves that represent the vertical profile of the wall.
- wallTypeId ElementId
- Id of the wall type to be used by the new wall instead of the default type.
- levelId ElementId
- Id of the level on which the wall is to be placed.
- structural Boolean
- If set, specifies that the wall is structural in nature.
- normal XYZ
- A vector that must be perpendicular to the profile which dictates which side of the wall is considered to be inside and outside.
Return Value
WallIf successful a new wall object within the project.

Exception | Condition |
---|---|
ArgumentException | The input profile contains at least one helical curve and is not supported for this operation. |
ArgumentNullException | A non-optional argument was null |
InvalidOperationException | Failed to create the wall. |
ModificationForbiddenException | The document is in failure mode: an operation has failed, and Revit requires the user to either cancel the operation or fix the problem (usually by deleting certain elements). -or- The document is being loaded, or is in the midst of another sensitive process. |
ModificationOutsideTransactionException | The document has no open transaction. |

public Wall CreateWallUsingProfile(Autodesk.Revit.DB.Document document, Level level, WallType wallType)
{
// Build a wall profile for the wall creation
XYZ first = new XYZ(0, 0, 0);
XYZ second = new XYZ(20, 0, 0);
XYZ third = new XYZ(20, 0, 15);
XYZ fourth = new XYZ(0, 0, 15);
IList<Curve> profile = new List<Curve>();
// Get application creation object
Autodesk.Revit.Creation.Application appCreation = document.Application.Create;
profile.Add(Line.CreateBound(first, second));
profile.Add(Line.CreateBound(second, third));
profile.Add(Line.CreateBound(third, fourth));
profile.Add(Line.CreateBound(fourth, first));
XYZ normal = new XYZ(0, 1, 0);
// Create a wall
return Wall.Create(document, profile, wallType.Id, level.Id, true, normal);
}
