<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to create a simple wall using ExternalCommand? in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8487747#M45257</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you are new to the Revit API, then you should refer to the revit apidocs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://apidocs.co/apps/revit/2019/d4648875-d41a-783b-d5f4-638df39ee413.htm" target="_blank"&gt;https://apidocs.co/apps/revit/2019/d4648875-d41a-783b-d5f4-638df39ee413.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You are using the Wall Create Method, the one which take 4 parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://apidocs.co/apps/revit/2019/4a42066c-bc44-0f99-566c-4e8327bc3bfa.htm" target="_blank"&gt;https://apidocs.co/apps/revit/2019/4a42066c-bc44-0f99-566c-4e8327bc3bfa.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you may have noticed the example code, there is no need to write code to get the default Walltype, the create method is already doing it for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My suggestion would be to write something like this (i have added some comments for explanation)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;     // be sure your active view is a plan view when you run the external command&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewPlan view = doc.ActiveView&amp;nbsp;&lt;SPAN&gt;as&lt;/SPAN&gt;&amp;nbsp;ViewPlan;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Level level = view.GenLevel;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;// leave 'Z' coordinate of point_b to '0', you are trying to create a none rectangular wall,&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;// only rectangular wall creation is accepted&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XYZ point_a =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(-&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XYZ point_b =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Line line = Line.&lt;SPAN&gt;CreateBound&lt;/SPAN&gt;(point_a,&amp;nbsp;point_b);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;using&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;transaction =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Transaction&lt;/SPAN&gt;(doc))&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transaction.&lt;SPAN&gt;Start&lt;/SPAN&gt;(&lt;SPAN&gt;"create wall"&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Wall wall = Wall.&lt;SPAN&gt;Create&lt;/SPAN&gt;(doc,&amp;nbsp;line,&amp;nbsp;level.Id,&amp;nbsp;&lt;SPAN&gt;false&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transaction.&lt;SPAN&gt;Commit&lt;/SPAN&gt;();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 26 Dec 2018 13:14:10 GMT</pubDate>
    <dc:creator>so-chong</dc:creator>
    <dc:date>2018-12-26T13:14:10Z</dc:date>
    <item>
      <title>How to create a simple wall using ExternalCommand?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8486903#M45255</link>
      <description>&lt;DIV class="lia-message-subject lia-component-message-view-widget-subject"&gt;
&lt;DIV class="MessageSubject"&gt;I just wanted to learn Revit API and create a simple wall using ExternalCommand.&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV id="messageBodySimpleDisplay" class="lia-message-body lia-component-body-signature-highlight-escalation"&gt;
&lt;DIV class="lia-message-body-content"&gt;
&lt;P&gt;I think my problem is here:&lt;/P&gt;
&lt;PRE&gt;var symbolId = document.GetDefaultFamilyTypeId(new ElementId(BuiltInCategory.OST_Walls));&lt;/PRE&gt;
&lt;P&gt;When I debug it symbolId always -1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you help me what is wrong with this code snippet?&lt;/P&gt;
&lt;PRE&gt;public Autodesk.Revit.UI.Result Execute(
	Autodesk.Revit.UI.ExternalCommandData command_data,
	ref string message,
	Autodesk.Revit.DB.ElementSet elements)
{
	var document = command_data.Application.ActiveUIDocument.Document;

	var level_id = new ElementId(1526);
	// create line
	XYZ point_a = new XYZ(-10, 0, 0);
	XYZ point_b = new XYZ(10, 10, 10);
	Line line = Line.CreateBound(point_a, point_b);

	using (var transaction = new Transaction(doc))
	{
		transaction.Start("create walls");

		Wall wall = Wall.Create(doc, line, level_id, false);
		var position = new XYZ(0, 0, 0);
		var symbolId = document.GetDefaultFamilyTypeId(new ElementId(BuiltInCategory.OST_Walls));
		if (symbolId == ElementId.InvalidElementId) {
			transaction.RollBack();
			return Result.Failed;
		}

		var symbol = document.GetElement(symbolId) as FamilySymbol;
		var level = (Level)document.GetElement(wall.LevelId);
		document.Create.NewFamilyInstance(position, symbol, wall, level, StructuralType.NonStructural);
&lt;BR /&gt;		transaction.Commit();
	}&lt;BR /&gt;&lt;BR /&gt;        return Result.Succeeded;
}&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Dec 2018 09:42:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8486903#M45255</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-12-25T09:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a simple wall using ExternalCommand?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8487136#M45256</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Wall is&amp;nbsp;a builtin Family and not the standard one.&lt;/P&gt;
&lt;P&gt;so you need to call the walltype through this&lt;/P&gt;
&lt;PRE&gt;document.GetDefaultElementTypeId(ElementTypeGroup.WallType)&lt;/PRE&gt;
&lt;P&gt;and you can't use CreateFamilyInstance to create Builtin Wall Family.&lt;/P&gt;
&lt;P&gt;Hope that helps&lt;/P&gt;</description>
      <pubDate>Tue, 25 Dec 2018 19:04:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8487136#M45256</guid>
      <dc:creator>Moustafa_K</dc:creator>
      <dc:date>2018-12-25T19:04:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to create a simple wall using ExternalCommand?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8487747#M45257</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you are new to the Revit API, then you should refer to the revit apidocs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://apidocs.co/apps/revit/2019/d4648875-d41a-783b-d5f4-638df39ee413.htm" target="_blank"&gt;https://apidocs.co/apps/revit/2019/d4648875-d41a-783b-d5f4-638df39ee413.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You are using the Wall Create Method, the one which take 4 parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://apidocs.co/apps/revit/2019/4a42066c-bc44-0f99-566c-4e8327bc3bfa.htm" target="_blank"&gt;https://apidocs.co/apps/revit/2019/4a42066c-bc44-0f99-566c-4e8327bc3bfa.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you may have noticed the example code, there is no need to write code to get the default Walltype, the create method is already doing it for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My suggestion would be to write something like this (i have added some comments for explanation)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;     // be sure your active view is a plan view when you run the external command&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewPlan view = doc.ActiveView&amp;nbsp;&lt;SPAN&gt;as&lt;/SPAN&gt;&amp;nbsp;ViewPlan;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Level level = view.GenLevel;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;// leave 'Z' coordinate of point_b to '0', you are trying to create a none rectangular wall,&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;// only rectangular wall creation is accepted&lt;/SPAN&gt;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XYZ point_a =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(-&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XYZ point_b =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;XYZ&lt;/SPAN&gt;(&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;10&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN&gt;0&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Line line = Line.&lt;SPAN&gt;CreateBound&lt;/SPAN&gt;(point_a,&amp;nbsp;point_b);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;using&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN&gt;var&lt;/SPAN&gt;&amp;nbsp;transaction =&amp;nbsp;&lt;SPAN&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;Transaction&lt;/SPAN&gt;(doc))&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transaction.&lt;SPAN&gt;Start&lt;/SPAN&gt;(&lt;SPAN&gt;"create wall"&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Wall wall = Wall.&lt;SPAN&gt;Create&lt;/SPAN&gt;(doc,&amp;nbsp;line,&amp;nbsp;level.Id,&amp;nbsp;&lt;SPAN&gt;false&lt;/SPAN&gt;);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transaction.&lt;SPAN&gt;Commit&lt;/SPAN&gt;();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Dec 2018 13:14:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-create-a-simple-wall-using-externalcommand/m-p/8487747#M45257</guid>
      <dc:creator>so-chong</dc:creator>
      <dc:date>2018-12-26T13:14:10Z</dc:date>
    </item>
  </channel>
</rss>

