<?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: Get Area Scheme from an Area in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6953177#M59587</link>
    <description>&lt;P&gt;Summarised and published on the blog:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2017/03/q4r4-first-queries-revitlookup-and-areas-in-schemes.html#5" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2017/03/q4r4-first-queries-revitlookup-and-areas-in-schemes.html#5&lt;/A&gt;&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;</description>
    <pubDate>Fri, 17 Mar 2017 11:53:28 GMT</pubDate>
    <dc:creator>jeremytammik</dc:creator>
    <dc:date>2017-03-17T11:53:28Z</dc:date>
    <item>
      <title>Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6949212#M59581</link>
      <description>&lt;P&gt;I'm not sure if this is possible but I've been trying to get the AREA_SCHEME_NAME from a collection of areas. I've tried several ways without luck. Can an area report what Area Scheme (Gross, Rentable) it belongs to?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IList&amp;lt;SpatialElement&amp;gt; areas = new FilteredElementCollector(doc)&lt;BR /&gt;&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; .OfCategory(BuiltInCategory.OST_Areas)&lt;BR /&gt;&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; .OfClass(typeof(SpatialElement))&lt;BR /&gt;&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; .Cast&amp;lt;SpatialElement&amp;gt;()&lt;BR /&gt;&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; .ToList();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Element e in areas)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { e.get_Parameter...&lt;/P&gt;</description>
      <pubDate>Wed, 15 Mar 2017 23:44:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6949212#M59581</guid>
      <dc:creator>dkam47</dc:creator>
      <dc:date>2017-03-15T23:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6949973#M59582</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Dear Derek,&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;Thank you for your query.&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 am checking with the development team for you.&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;On a side note, your code sample above is unnecessarily inefficient.&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;No need for the cast, and more importantly, ToList adds no value for this use case and consumes both time and memory:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2012/09/findelement-and-collector-optimisation.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2012/09/findelement-and-collector-optimisation.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2017/03/events-uv-coordinates-and-rooms-on-level.html#6" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2017/03/events-uv-coordinates-and-rooms-on-level.html#6&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I'll let you know what I hear back from the development team on your main question.&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;Best regards,&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;</description>
      <pubDate>Thu, 16 Mar 2017 10:11:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6949973#M59582</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2017-03-16T10:11:48Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6951144#M59583</link>
      <description>&lt;P&gt;Jeremy,&lt;/P&gt;&lt;P&gt;Thank you for looking into this and thanks for the links.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Derek&lt;/P&gt;</description>
      <pubDate>Thu, 16 Mar 2017 16:09:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6951144#M59583</guid>
      <dc:creator>dkam47</dc:creator>
      <dc:date>2017-03-16T16:09:21Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952196#M59584</link>
      <description>&lt;P&gt;Have you tried this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE style="width: 891px; height: 68px;"&gt;                    Area _area ;
                    AreaScheme _scheme = document.GetElement(_area.get_Parameter(BuiltInParameter.AREA_SCHEME_ID).AsElementId()) as AreaScheme;
                    string _AreaSchemeName = _scheme.get_Parameter(BuiltInParameter.AREA_SCHEME_NAME).AsString();
&lt;/PRE&gt;</description>
      <pubDate>Thu, 16 Mar 2017 22:31:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952196#M59584</guid>
      <dc:creator>FAIR59</dc:creator>
      <dc:date>2017-03-16T22:31:15Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952314#M59585</link>
      <description>&lt;PRE&gt;            IList&amp;lt;SpatialElement&amp;gt; areas = new FilteredElementCollector(doc)
                .OfCategory(BuiltInCategory.OST_Areas)
                .OfClass(typeof(SpatialElement))
                .Cast&amp;lt;SpatialElement&amp;gt;()
                .ToList();

            foreach(Element e in areas)
            {
       
                AreaScheme _scheme = doc.GetElement(e.get_Parameter(BuiltInParameter.AREA_SCHEME_ID).AsElementId()) as AreaScheme;
                string _AreaSchemeName = _scheme.get_Parameter(BuiltInParameter.AREA_SCHEME_NAME).AsString();


                if (_AreaSchemeName.ToString() == "Gross Building")
                {
                    TaskDialog.Show("Revit", _AreaSchemeName);

                    double ox = e.LookupParameter("Area").AsDouble();

                    TaskDialog.Show("Revit", ox.ToString());
                }

                else { continue; }
               
            }&lt;/PRE&gt;&lt;P&gt;Thanks FAIR59. Here's the code for a little test to get the areas that are on the 'Gross Building' scheme.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Mar 2017 23:50:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952314#M59585</guid>
      <dc:creator>dkam47</dc:creator>
      <dc:date>2017-03-16T23:50:57Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952843#M59586</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Dear Frank and Derek,&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;Thank you very much for the simple solution!&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 refactored Frank's code as a separate little method to retrieve the area scheme name from the area element like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;  /// &amp;lt;summary&amp;gt;
  /// Return the area scheme name of a given area element
  /// using only generic Element Parameter access.
  /// &amp;lt;/summary&amp;gt;
  static string GetAreaSchemeNameFromArea( Element e )
  {
    if( !(e is Area) )
    {
      throw new ArgumentException(
        "Expected Area element input argument." );
    }

    Document doc = e.Document;

    Parameter p = e.get_Parameter( 
      BuiltInParameter.AREA_SCHEME_ID );

    if(null==p)
    {
      throw new ArgumentException( 
        "element lacks AREA_SCHEME_ID parameter" );
    }

    Element areaScheme = doc.GetElement( p.AsElementId() );

    p = areaScheme.get_Parameter( 
      BuiltInParameter.AREA_SCHEME_NAME );

    if( null == p )
    {
      throw new ArgumentException(
        "area scheme lacks AREA_SCHEME_NAME parameter" );
    }

    return p.AsString();
  }&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;With that in hand, the retrieval of all areas matching a given area scheme can we rewritten like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;  /// &amp;lt;summary&amp;gt;
  /// Retrieve all areas belonging to 
  /// a specific area scheme.
  /// &amp;lt;/summary&amp;gt;
  public IEnumerable&amp;lt;Element&amp;gt; GetAreasInAreaScheme(
    Document doc,
    string areaSchemeName )
  {
    return new FilteredElementCollector( doc )
      .OfCategory( BuiltInCategory.OST_Areas )
      .OfClass( typeof( SpatialElement ) )
      .Where&amp;lt;Element&amp;gt;( e =&amp;gt; areaSchemeName.Equals( 
        GetAreaSchemeNameFromArea( e ) ) );
  }&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I added these two methods to The Building Coder samples release 2017.0.132.10:&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://github.com/jeremytammik/the_building_coder_samples" target="_blank"&gt;https://github.com/jeremytammik/the_building_coder_samples&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="https://github.com/jeremytammik/the_building_coder_samples/releases/tag/2017.0.132.10" target="_blank"&gt;https://github.com/jeremytammik/the_building_coder_samples/releases/tag/2017.0.132.10&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;You can see the new code by comparing with the preceding release 2017.0.132.9:&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://github.com/jeremytammik/the_building_coder_samples/compare/2017.0.132.9...2017.0.132.10" target="_blank"&gt;https://github.com/jeremytammik/the_building_coder_samples/compare/2017.0.132.9...2017.0.132.10&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;It would be really nice if you would like to try out these two methods and confirm that they work as expected.&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;Thank you!&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;</description>
      <pubDate>Fri, 17 Mar 2017 08:41:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6952843#M59586</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2017-03-17T08:41:41Z</dc:date>
    </item>
    <item>
      <title>Re: Get Area Scheme from an Area</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6953177#M59587</link>
      <description>&lt;P&gt;Summarised and published on the blog:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2017/03/q4r4-first-queries-revitlookup-and-areas-in-schemes.html#5" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2017/03/q4r4-first-queries-revitlookup-and-areas-in-schemes.html#5&lt;/A&gt;&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;</description>
      <pubDate>Fri, 17 Mar 2017 11:53:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-area-scheme-from-an-area/m-p/6953177#M59587</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2017-03-17T11:53:28Z</dc:date>
    </item>
  </channel>
</rss>

