<?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 do I get all the outermost walls in the model? in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8000459#M50133</link>
    <description>&lt;P&gt;I heard back from the development team, and they say:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BuildingEnvelopeAnalyzer is supposed to be a reliable method to achieve this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If there are problems with the results, this should be filed as a problem report.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For us to do so, please submit a minimal reproducible case:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To perform your own geometric analysis, you could also look&amp;nbsp;for walls which don't have bounding rooms on both sides. This is easy, assuming rooms have been set in the model.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 14 May 2018 14:39:05 GMT</pubDate>
    <dc:creator>jeremytammik</dc:creator>
    <dc:date>2018-05-14T14:39:05Z</dc:date>
    <item>
      <title>How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7998948#M50127</link>
      <description>&lt;P&gt;I'm sorry, I'm nervous because my English is not very good~&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I get all the outermost walls in the model?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's like a picture shown in the picture::&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="12.png" style="width: 867px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/500004iE1BB015090B481F9/image-size/large?v=v2&amp;amp;px=999" role="button" title="12.png" alt="12.png" /&gt;&lt;/span&gt;thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 02:46:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7998948#M50127</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-14T02:46:57Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999403#M50128</link>
      <description>&lt;P&gt;Take a look at&amp;nbsp;the `DirectionCalculation` Revit SDK sample and The Building Coder discussion of it &lt;BR /&gt;on south facing walls:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2010/01/south-facing-walls.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2010/01/south-facing-walls.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That will&amp;nbsp;provide a good starting point for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It uses the built-in wall function parameter `FUNCTION_PARAM` to filter for exterior walls.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I updated the code presented there and added it&amp;nbsp;to The Building Coder samples for you,&amp;nbsp;in the CmdCollectorPerformance.cs module lines L293-L323:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/jeremytammik/the_building_coder_samples" target="_blank"&gt;https://github.com/jeremytammik/the_building_coder_samples&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/jeremytammik/the_building_coder_samples/blob/master/BuildingCoder/BuildingCoder/CmdCollectorPerformance.cs#L293-L323" target="_blank"&gt;https://github.com/jeremytammik/the_building_coder_samples/blob/master/BuildingCoder/BuildingCoder/CmdCollectorPerformance.cs#L293-L323&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, we implement a predicate method `IsExterior` that checks this parameter value to determine whether a wall type is exterior or not:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;  /// &amp;lt;summary&amp;gt;
  /// Wall type predicate for exterior wall function
  /// &amp;lt;/summary&amp;gt;
  bool IsExterior( WallType wallType )
  {
    Parameter p = wallType.get_Parameter(
      BuiltInParameter.FUNCTION_PARAM );

    Debug.Assert( null != p, "expected wall type "
      + "to have wall function parameter" );

    WallFunction f = (WallFunction) p.AsInteger();

    return WallFunction.Exterior == f;
  }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With that, you can retrieve all exterior walls with a filtered element collector like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;  /// &amp;lt;summary&amp;gt;
  /// Return all exterior walls
  /// &amp;lt;/summary&amp;gt;
  IEnumerable&amp;lt;Element&amp;gt; GetAllExteriorWalls(
    Document doc )
  {
    return new FilteredElementCollector( doc )
      .OfClass( typeof( Wall ) )
      .Cast&amp;lt;Wall&amp;gt;()
      .Where&amp;lt;Wall&amp;gt;( w =&amp;gt;
        IsExterior( w.WallType ) );
  }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since the wall function filter is just checking a parameter value, the performance of this filtering process could be significantly enhanced by using&amp;nbsp;a parameter filter instead&amp;nbsp;of the slow .NET based `IsExterior` method post-processing:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2010/06/parameter-filter.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2010/06/parameter-filter.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 07:56:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999403#M50128</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-14T07:56:21Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999647#M50129</link>
      <description>&lt;P&gt;Published by the Building Coder for posterity as well:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.html#8" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2018/05/drive-revit-via-a-wcf-service-wall-directions-and-parameters.html#8&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 09:04:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999647#M50129</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-14T09:04:30Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999687#M50130</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;there is a BuildingEnvelopeAnalyzer class, but there seem to be problems when using it...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/finding-exterior-walls-by-buildingenvelopeanalyzer/m-p/5647404" target="_blank"&gt;https://forums.autodesk.com/t5/revit-api-forum/finding-exterior-walls-by-buildingenvelopeanalyzer/m-p/5647404&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/filtering-exterior-walls/m-p/5677706" target="_blank"&gt;https://forums.autodesk.com/t5/revit-api-forum/filtering-exterior-walls/m-p/5677706&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revitalizer&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 09:23:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999687#M50130</guid>
      <dc:creator>Revitalizer</dc:creator>
      <dc:date>2018-05-14T09:23:02Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999703#M50131</link>
      <description>&lt;P&gt;Thank you for such a quick answer, Jeremy!&lt;/P&gt;&lt;P&gt;As mentioned above, this method is judged by the parameters of the wall. However, I hope to judge whether it belongs to the outermost wall through the spatial location of the wall, because most engineers do not want to modify the type of the outermost wall later, which will increase a lot of work.&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 09:31:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999703#M50131</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-14T09:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999812#M50132</link>
      <description>&lt;P&gt;Yup, I fully agree.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have asked the development team for advice on how to tackle this effectively.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 10:20:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/7999812#M50132</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-14T10:20:11Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8000459#M50133</link>
      <description>&lt;P&gt;I heard back from the development team, and they say:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BuildingEnvelopeAnalyzer is supposed to be a reliable method to achieve this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If there are problems with the results, this should be filed as a problem report.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For us to do so, please submit a minimal reproducible case:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/about-the-author.html#1b&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To perform your own geometric analysis, you could also look&amp;nbsp;for walls which don't have bounding rooms on both sides. This is easy, assuming rooms have been set in the model.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 14:39:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8000459#M50133</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-14T14:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8001576#M50134</link>
      <description>&lt;P&gt;Thank you very much！&lt;/P&gt;&lt;P&gt;But it doesn't seem to reach what I expected.&lt;/P&gt;</description>
      <pubDate>Mon, 14 May 2018 23:42:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8001576#M50134</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-14T23:42:43Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8001781#M50135</link>
      <description>&lt;P&gt;Thank you for such, Jeremy!&lt;/P&gt;&lt;P&gt;I use the following code：&lt;/P&gt;&lt;PRE&gt;private void Execute3(Selection sel, List&amp;lt;Wall&amp;gt; elements2)
        {
            BuildingEnvelopeAnalyzerOptions buildingEnvelopeAnalyzerOptions = new BuildingEnvelopeAnalyzerOptions();
            buildingEnvelopeAnalyzerOptions.AnalyzeEnclosedSpaceVolumes = false;
            buildingEnvelopeAnalyzerOptions.OptimizeGridCellSize = true;
            //buildingEnvelopeAnalyzerOptions.GridCellSize = elements2[0].get_Parameter(BuiltInParameter.WALL_USER_HEIGHT_PARAM).AsDouble();
            //Level level = doc.GetElement(elements2[0].LevelId) as Level;
            //double _height = level.ProjectElevation;
            buildingEnvelopeAnalyzerOptions.GridCellSize = 2600/304.8;
            
            List&amp;lt;Wall&amp;gt; exteriorWalls = new List&amp;lt;Wall&amp;gt;();
            Document m_doc = doc;
            BuildingEnvelopeAnalyzer analyzer = BuildingEnvelopeAnalyzer.Create(m_doc, buildingEnvelopeAnalyzerOptions);
            if (null != analyzer)
            {
                IList&amp;lt;LinkElementId&amp;gt; linkIds = analyzer.GetBoundingElements();

                if (linkIds.Count &amp;gt; 0)
                {
                    foreach (LinkElementId linkId in linkIds)
                    {
                        if (linkId.HostElementId != ElementId.InvalidElementId)
                        {
                            Wall hostWall = m_doc.GetElement(linkId.HostElementId) as Wall;
                            if (null != hostWall)
                            {
                                exteriorWalls.Add(hostWall);
                            }
                        }
                        else if (linkId.LinkedElementId != ElementId.InvalidElementId)
                        {
                            RevitLinkInstance rvtInstance = m_doc.GetElement(linkId.LinkInstanceId) as RevitLinkInstance;
                            if (null != rvtInstance)
                            {
                                Wall linkWall = rvtInstance.Document.GetElement(linkId.LinkedElementId) as Wall;
                                if (null != linkWall)
                                {
                                    exteriorWalls.Add(linkWall);
                                }
                            }
                        }
                    }
                }
            }
            List&amp;lt;ElementId&amp;gt; ids = (from _id in exteriorWalls select _id.Id).ToList();
            sel.SetElementIds(ids);
        }&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="121.png" style="width: 628px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/500515iE62224BC0E716F60/image-size/large?v=v2&amp;amp;px=999" role="button" title="121.png" alt="121.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It is not normal to get the expected results.&lt;/P&gt;&lt;P&gt;I submitted an annex .&lt;/P&gt;</description>
      <pubDate>Tue, 15 May 2018 02:22:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8001781#M50135</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-15T02:22:27Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8002114#M50136</link>
      <description>&lt;P&gt;Yet another workaround was suggested: Place some room separation lines outside the building envelope and create a huge room around the entire building.&amp;nbsp;Then, it’s just a matter of getting room boundaries, filtering out the RSLs, appending the remaining elements to your list, deleting the room and RSLs, and moving up to the next level.&amp;nbsp;It may not work for some bad modelling cases, but catches most.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 May 2018 07:20:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8002114#M50136</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-15T07:20:17Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8002299#M50137</link>
      <description>&lt;P&gt;Dear Feng Wang,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your report and reproducible case.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry to hear that the BuildingEnvelopeAnalyzer does not return the expected result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I logged the issue &lt;STRONG&gt;&lt;U&gt;REVIT-131862&lt;/U&gt;&lt;/STRONG&gt; [BuildingEnvelopeAnalyzer returns wrong walls -- 14230846] with our development team for this on your behalf as it requires further exploration and possibly a modification to our software. Please make a note of this number for future reference.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You are welcome to request an update on the status of this issue or to provide additional information on it at any time quoting this change request number.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 May 2018 08:36:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8002299#M50137</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-15T08:36:08Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8005946#M50138</link>
      <description>&lt;P&gt;&lt;SPAN&gt;After further discussion with the development team, they asked: Is the building model enclosed? It needs to be in order for the analyzer to work. In other words, do you have Roof and Floor elements to form enclosed spaces in the model?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 16 May 2018 13:44:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8005946#M50138</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-16T13:44:53Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8007526#M50139</link>
      <description>&lt;P&gt;Thank you very much, Jeremy tammik!&lt;BR /&gt;&amp;nbsp; &amp;nbsp; There is no closure (no ceiling, floor).&lt;BR /&gt;&amp;nbsp; &amp;nbsp; Because I want to get the outermost wall to automatically create ceiling and floor.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; Getting the outermost wall can do more automation.&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 02:08:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8007526#M50139</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-17T02:08:16Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008799#M50140</link>
      <description>&lt;P&gt;I tried again&lt;BR /&gt;Even closed, you can't get the result right.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to get the outermost wall to automatically create ceiling and floor.&lt;/P&gt;&lt;P&gt;Getting the outermost wall can do more automation.&lt;/P&gt;&lt;P&gt;thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 13:05:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008799#M50140</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-17T13:05:26Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008853#M50141</link>
      <description>&lt;P&gt;The development team replied to this as well, and say:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If the building is "open" upward and downward, in theory, all walls are exposed to the outside, and therefore all of them are "exterior". In this case, maybe it is better to go by the Function parameter of the walls.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 13:24:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008853#M50141</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-17T13:24:28Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008895#M50142</link>
      <description>&lt;P&gt;Thank you again, dear Jeremy! I have taken up your time.&lt;BR /&gt;Is it possible to realize this idea through a geometric algorithm?&lt;BR /&gt;This is a problem that bothers me.&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 13:39:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8008895#M50142</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-17T13:39:29Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009125#M50143</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Dear Feng Wang,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Yes, this is certainly possible.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;It is also an interesting computational geometry task.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Many different approaches can be taken.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I would love to discover a really reliable approach that works under all circumstances.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Here is an idea for one that comes to mind right now on the fly:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You can easily determine whether a given point lies within a given polygon:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://www.ics.uci.edu/~eppstein/161/960307.html" target="_blank"&gt;https://www.ics.uci.edu/~eppstein/161/960307.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I also implemented that for the Revit API:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2010/12/point-in-polygon-containment-algorithm.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2010/12/point-in-polygon-containment-algorithm.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2012/08/room-in-area-predicate-via-point-in-polygon-test.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2012/08/room-in-area-predicate-via-point-in-polygon-test.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Now, if you have all your walls, their location curves (if they are non-linear, things get trickier), and endpoints, and are sure that they all form closed polygons, you could determine the maximal polygon enclosing all others by choosing the one that contains the maximum number of wall endpoints.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You might also be able to use some library providing 2D polygon or Boolean operations for this.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Some such libraries, other options and helpful ideas are discussed in The Building Coder topic group on 2D Booleans and Adjacent Areas:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/about-the-author.html#5.2" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/about-the-author.html#5.2&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Oh yes, and we recently discussed determining the outermost loop of a face:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2017/10/disjunct-outer-loops-from-planar-face-with-separate-parts.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2017/10/disjunct-outer-loops-from-planar-face-with-separate-parts.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;That is a similar problem.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Jeremy&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 14:52:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009125#M50143</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-17T14:52:13Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009136#M50144</link>
      <description>&lt;P&gt;Please try adding the extra outermost room as suggested above and let us know how that goes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 14:55:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009136#M50144</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-17T14:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009370#M50145</link>
      <description>&lt;P&gt;I tried it out manually in your sample model, and it seems to work perfectly!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add room separation lines around the outside of the building:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="room_separation_lines.png" style="width: 457px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/501750i13AF147BF97A61E1/image-size/large?v=v2&amp;amp;px=999" role="button" title="room_separation_lines.png" alt="room_separation_lines.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Create a room around the building using them:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="room_around_building.png" style="width: 451px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/501751i7772F59F8E3D8A7D/image-size/large?v=v2&amp;amp;px=999" role="button" title="room_around_building.png" alt="room_around_building.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This can easily be achieved programatically as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now all you need to do is retrieve the room boundary, eliminate the exterior separation line boundary segments, delete the separation lines and room, and you are done.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please share your code with us once you have it done.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am looking forward to seeing that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 May 2018 16:12:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8009370#M50145</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2018-05-17T16:12:33Z</dc:date>
    </item>
    <item>
      <title>Re: How do I get all the outermost walls in the model?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8010393#M50146</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have already created the room according to the method you provided, and successfully acquired the wall.&lt;/P&gt;&lt;P&gt;The attachment is the code file I submitted.&lt;BR /&gt;The code is simple, and the quality of the code looks bad.&lt;BR /&gt;I'm glad to talk to you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I still want to do it with geometric algorithms.&lt;BR /&gt;If you have a good algorithm, can you share it&lt;/P&gt;&lt;P&gt;thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 18 May 2018 02:48:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-do-i-get-all-the-outermost-walls-in-the-model/m-p/8010393#M50146</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-05-18T02:48:35Z</dc:date>
    </item>
  </channel>
</rss>

