<?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: Set structural floor span direction using c# in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539817#M7357</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure, but it seems to me that for this case the solution would be to confirm the transaction to edit the slab sketch and then open another transaction to edit the spandirection angle. I don't know if it works within a transaction group, I haven't tested it, you would have to check if it works with TransactionGroup.&lt;/P&gt;</description>
    <pubDate>Sun, 04 Feb 2024 20:46:30 GMT</pubDate>
    <dc:creator>Speed_CAD</dc:creator>
    <dc:date>2024-02-04T20:46:30Z</dc:date>
    <item>
      <title>Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12538058#M7353</link>
      <description>&lt;P&gt;I’m working on a C# script to replace the sketch profile of a structural floor element by another Sketch profile by removing all curve elments in the old sketch profile then add new curves as a new sketch profile for the floor. The problem is a warning appears indicating “Structural floor span direction not specified” upon attempting to set the new sketch profile to the floor element. can any one help how can I set the floor span direction programmatically?&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Here's below the method I'm using&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;public static void updateRevitFloors(UIDocument uidoc, Document revitDoc, ForgeTypeId targetUnitConvertor, List&amp;lt;Area2&amp;gt; rhinoAreas)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilteredElementCollector collector = new FilteredElementCollector(revitDoc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICollection&amp;lt;Element&amp;gt; revitFloorElements = collector.OfClass(typeof(Floor)).ToElements();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var rhinoArea in rhinoAreas)&lt;BR /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Element FloorElment = revitFloorElements.FirstOrDefault(x =&amp;gt; x.Id.ToString() == rhinoArea.ID);&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; if (FloorElment != null)&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; {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Floor fl = FloorElment as Floor;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Element sketchElement = revitDoc.GetElement(fl.SketchId);&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; if (sketchElement != null)&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; {&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; Sketch sketch = sketchElement as Sketch;&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; #region get old Profile Curves To be Removed&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; // Get sketch elements&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var sketchEleIds = sketch.GetAllElements();&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; var oldProfileCurves = new List&amp;lt;ElementId&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var i in sketchEleIds)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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;&amp;nbsp; oldProfileCurves.Add(i);&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; }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endregion&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;&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; SketchEditScope sketchEditScope = new SketchEditScope(revitDoc, "Edit Sketch");&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sketchEditScope.Start(sketch.Id);&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;&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; using (Transaction transaction = new Transaction(revitDoc, "Modify sketch"))&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;&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;&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; transaction.Start();&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;&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; // Delete curves from the current sketch&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var curve in oldProfileCurves)&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;&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;&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; revitDoc.Delete(curve as ElementId);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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; List&amp;lt;Rhino.Geometry.Curve[]&amp;gt; crvList = new List&amp;lt;Rhino.Geometry.Curve[]&amp;gt;();&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;&amp;nbsp; foreach (Curve i in rhinoArea.outerCurves)&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;&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;&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;&amp;nbsp; crvList.Add(i.DuplicateSegments());&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;&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;&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; foreach (Curve i in rhinoArea.innerCurves)&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;&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;&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;&amp;nbsp; crvList.Add(i.DuplicateSegments());&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;&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; }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IEnumerable&amp;lt;Rhino.Geometry.Curve&amp;gt; flatCrvList = crvList.SelectMany(x =&amp;gt; x);&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;&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; foreach (var rhinoCrv in flatCrvList)&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;&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;&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;&amp;nbsp; Autodesk.Revit.DB.Curve c = RhinoInside.Revit.Convert.Geometry.GeometryEncoder.ToCurve(rhinoCrv);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; revitDoc.Create.NewModelCurve(c, sketch.SketchPlane);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&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; fl.SpanDirectionAngle = 90 * Math.PI / 180;&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;&amp;nbsp; transaction.Commit();&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&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; sketchEditScope.Commit(new RoomWarningSwallower());&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; }&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; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;</description>
      <pubDate>Sat, 03 Feb 2024 09:14:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12538058#M7353</guid>
      <dc:creator>ramzy_ahmedhamdy</dc:creator>
      <dc:date>2024-02-03T09:14:39Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539346#M7354</link>
      <description>&lt;P&gt;This sounds like a task that is worth exploring manually in the end user interface before addressing it programmatically via the API. Can you achieve what you want manually in the UI? What exact steps to you take to do so? Please research the result of each step you take using RevitLookup and other database exploration tools to determine how they affect the BIM from an API point of view. With that information in hand, you have a good basis for a programmatic solution.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 11:00:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539346#M7354</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2024-02-04T11:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539477#M7355</link>
      <description>&lt;P&gt;Thank you&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/824630" target="_self"&gt;&lt;SPAN class=""&gt;Jeremy&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;for your kind end prompt response.&amp;nbsp; Here's below snap shot from the warning appearing when I try to edit the sketch profile of the floor.&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="8fc79dc34234a827826a801a3536becbd650d8d8.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1322004i34C776F5A1637FCB/image-size/large?v=v2&amp;amp;px=999" role="button" title="8fc79dc34234a827826a801a3536becbd650d8d8.png" alt="8fc79dc34234a827826a801a3536becbd650d8d8.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 14:08:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539477#M7355</guid>
      <dc:creator>ramzy_ahmedhamdy</dc:creator>
      <dc:date>2024-02-04T14:08:59Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539492#M7356</link>
      <description>&lt;P&gt;Here's An additional screen shoot for how the end user can set this span direction manually.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1322007i885EC9BBC0294E6D/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 14:28:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539492#M7356</guid>
      <dc:creator>ramzy_ahmedhamdy</dc:creator>
      <dc:date>2024-02-04T14:28:04Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539817#M7357</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure, but it seems to me that for this case the solution would be to confirm the transaction to edit the slab sketch and then open another transaction to edit the spandirection angle. I don't know if it works within a transaction group, I haven't tested it, you would have to check if it works with TransactionGroup.&lt;/P&gt;</description>
      <pubDate>Sun, 04 Feb 2024 20:46:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12539817#M7357</guid>
      <dc:creator>Speed_CAD</dc:creator>
      <dc:date>2024-02-04T20:46:30Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12540072#M7358</link>
      <description>&lt;P&gt;Use the below method to change the Floor Span Direction Angle&lt;/P&gt;&lt;P&gt;public void SetFloorDirection(Autodesk.Revit.DB.Document activeDoc)&lt;BR /&gt;{&lt;BR /&gt;// Code provided courtesy of:&lt;BR /&gt;// Studio A International, LLC&lt;BR /&gt;// &lt;A href="http://www.studio-a-int.com" target="_blank"&gt;http://www.studio-a-int.com&lt;/A&gt;&lt;BR /&gt;// The code selects one Floor element in Active Document&lt;BR /&gt;// and changes Floor Span Direction Angle&lt;BR /&gt;Double rad = 57.29573672;&lt;BR /&gt;FilteredElementCollector collectorElements = new FilteredElementCollector(activeDoc).WhereElementIsNotElementType();&lt;BR /&gt;ICollection&amp;lt;Element&amp;gt; allFloorElements = collectorElements.OfClass(typeof(Autodesk.Revit.DB.Floor)).ToElements();&lt;BR /&gt;Autodesk.Revit.DB.Floor floorSelected = allFloorElements.FirstOrDefault() as Autodesk.Revit.DB.Floor;&lt;BR /&gt;using (Transaction tr = new Transaction(activeDoc, "Change Floor Span Direction Angle"))&lt;BR /&gt;{&lt;BR /&gt;tr.Start();&lt;BR /&gt;var currentSDA = floorSelected.SpanDirectionAngle;&lt;BR /&gt;floorSelected.SpanDirectionAngle = currentSDA + rad; // Use the angle of your choice&lt;BR /&gt;activeDoc.Regenerate();&lt;BR /&gt;tr.Commit();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Mon, 05 Feb 2024 00:34:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12540072#M7358</guid>
      <dc:creator>studio-a-int</dc:creator>
      <dc:date>2024-02-05T00:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12541961#M7362</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/15001771"&gt;@ramzy_ahmedhamdy&lt;/a&gt;&amp;nbsp; i see nothing wrong with your code, you set the span direction at teh correct place, my guess is something to do with SketchEditScope, maybe thats out of place? Second, have you considered creating a new floor and then deleting the old floor rather that editing (i had no problem setting span direction when creating new floor)? the code would look something like this:&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;//grab sketch and modify as needed, create curveloop from all curves
//then transaction  to create/modify
Floor newfloor = null;
using (Transaction tr = new Transaction(_doc))
{
      tr.Start("Create new floors");
      newfloor = Floor.Create(_doc, CurveArrary, fl.FloorType.Id, fl.LevelId);
       _doc.Delete(fl.Id);
       newfloor.SpanDirectionAngle = 45;
       tr.Commit();
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Feb 2024 21:00:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12541961#M7362</guid>
      <dc:creator>ctm_mka</dc:creator>
      <dc:date>2024-02-05T21:00:26Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12542053#M7363</link>
      <description>&lt;P&gt;Interesting problem you have and likely not as straightforward as believed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Every slab needs a span direction model line added to sketch so if you are editing an existing sketch you need to maintain the current span direction model line but you can't always identity which model line it is it seems!&lt;/P&gt;&lt;P&gt;2) The span direction model line is either (A) one of the sketched edges or (B) a single isolated line within the sketch.&lt;/P&gt;&lt;P&gt;3) I believe you can only easily identify type (B) since it is a model line named 'Span Direction Edges'. When a model line acts both as floor profile and span direction I believe this can't be identified (it is just called model line). All sketched lines are of category sketch (so also not helpful).&lt;/P&gt;&lt;P&gt;4) You can't create (A) or (B) via the API directly as far as I know. You can perhaps copy an existing one into the sketch perhaps.&lt;/P&gt;&lt;P&gt;5) The methods that create floors within the API will automatically add (A) or (B) to sketch when slab is made (so you can always create new floors with API).&lt;/P&gt;&lt;P&gt;6) Going back to original problem you are deleting all the lines and re-sketching. So it may be possible to paste in a type (B) span direction line (can only have one per sketch). You can perhaps first ensure one exists in the model by creating a circular slab with the API i.e. one where the model line used for span direction can't be used for slab profile. It may be the API always opts for (B) anyway when creating slabs I can't recall. Probably if your span direction is changed via parameter to something other than 0 or 90 with respect to first image below then you also get a (B) model line added to sketch i.e. since angle is not common to existing edge.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Item (6) would be a bit untested it is easier to recreate the slab but I assume your motivation for editing the sketch is that you want to keep the existing element identity and/or parameter values.&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-inline" image-alt="RPTHOMAS108_0-1707169140320.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1322518i811F4B1EBF0B8B7C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RPTHOMAS108_0-1707169140320.png" alt="RPTHOMAS108_0-1707169140320.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Type A&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RPTHOMAS108_1-1707169184013.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1322519i986600C89CFD9EAE/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RPTHOMAS108_1-1707169184013.png" alt="RPTHOMAS108_1-1707169184013.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Type B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Lastly if you can't identify the model line used for span direction within the sketch (where you need to edit out some of the lines) then logically the only thing you can do to edit sketch is delete all the lines (as two span direction lines can't exist in a sketch).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;Considering all of above here is a possible quick solution: find all lines in your original sketch and change the angle of the slab span to not match any of these lines prior to editing the sketch. Edit the lines of the sketch knowing that the span direction model line also contained within is now not end joined with any of the profile edge model lines being removed (also it should now have name 'Span Direction Edges' that identifies it). After finishing editing slab restore original span direction.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF0000"&gt;You can also identify the type (B) line by comparing the model lines you have before and after changing the span direction to not match any of the current edge directions.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Feb 2024 22:25:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12542053#M7363</guid>
      <dc:creator>RPTHOMAS108</dc:creator>
      <dc:date>2024-02-05T22:25:11Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12551036#M7364</link>
      <description>&lt;P&gt;Thank you so much for you explanation. it truly helped me to address this problem. i just set the (Structural) parameter to be false before editing the profile then set it again to true after modifying the profile and it worked fine :D. Below is the final solution from my side.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;public static void updateRevitFloors(UIDocument uidoc, Document revitDoc, ForgeTypeId targetUnitConvertor)&lt;BR /&gt;{&lt;BR /&gt;List&amp;lt;RevitArea&amp;gt; rhinoAreas = RevitRhino.getRhinoAreas();&lt;BR /&gt;rhinoAreas = rhinoAreas.Where(x =&amp;gt; x.type == "Area").ToList();&lt;/P&gt;&lt;P&gt;FilteredElementCollector collector = new FilteredElementCollector(revitDoc);&lt;BR /&gt;ICollection&amp;lt;Element&amp;gt; revitFloorElements = collector.OfClass(typeof(Floor)).ToElements();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;foreach (var rhinoArea in rhinoAreas)&lt;BR /&gt;{&lt;BR /&gt;Element FloorElment = revitFloorElements.FirstOrDefault(x =&amp;gt; x.Id.ToString() == rhinoArea.ID);&lt;/P&gt;&lt;P&gt;if (FloorElment != null)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;Floor fl = FloorElment as Floor;&lt;/P&gt;&lt;P&gt;using (Transaction tr = new Transaction(revitDoc,"changeToArch"))&lt;BR /&gt;{&lt;BR /&gt;tr.Start("change");&lt;/P&gt;&lt;P&gt;fl.LookupParameter("Structural").Set(0);&lt;/P&gt;&lt;P&gt;tr.Commit();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;using (SketchEditScope sketchEditScope2 = new SketchEditScope(revitDoc, "Edit Sketch"))&lt;BR /&gt;{&lt;BR /&gt;if (sketchEditScope2.IsSketchEditingSupported(fl.SketchId))&lt;BR /&gt;{&lt;BR /&gt;Element sketchElement = revitDoc.GetElement(fl.SketchId);&lt;BR /&gt;Sketch sketch = sketchElement as Sketch;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;sketchEditScope2.Start(sketch.Id);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;using (TransactionGroup trnsGroup = new TransactionGroup(revitDoc, "StartTransGroup"))&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;trnsGroup.Start();&lt;/P&gt;&lt;P&gt;using (Transaction transaction = new Transaction(revitDoc, "Modify sketch"))&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;transaction.Start();&lt;/P&gt;&lt;P&gt;#region Remove old SketchProfile&lt;/P&gt;&lt;P&gt;// Get sketch elements&lt;BR /&gt;var sketchEleIds = sketch.GetAllElements();&lt;/P&gt;&lt;P&gt;revitDoc.Delete(sketchEleIds.ToArray());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#endregion&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;List&amp;lt;Rhino.Geometry.Curve[]&amp;gt; crvList = new List&amp;lt;Rhino.Geometry.Curve[]&amp;gt;();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;var revitPlane = sketch.SketchPlane.GetPlane();&lt;BR /&gt;var rhinoPlane = RhinoInside.Revit.Convert.Geometry.GeometryDecoder.ToPlane(revitPlane);&lt;/P&gt;&lt;P&gt;foreach (Curve i in rhinoArea.outerCurves)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;var loop = Curve.ProjectToPlane(i, rhinoPlane);&lt;BR /&gt;var segments = loop.DuplicateSegments();&lt;BR /&gt;crvList.Add(segments);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;foreach (Curve i in rhinoArea.innerCurves)&lt;BR /&gt;{&lt;BR /&gt;var loop = Curve.ProjectToPlane(i, rhinoPlane);&lt;BR /&gt;var segments = loop.DuplicateSegments();&lt;BR /&gt;crvList.Add(segments);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;IEnumerable&amp;lt;Rhino.Geometry.Curve&amp;gt; flatCrvList = crvList.SelectMany(x =&amp;gt; x);&lt;BR /&gt;foreach (var i in flatCrvList)&lt;BR /&gt;{&lt;BR /&gt;Autodesk.Revit.DB.Curve c = RhinoInside.Revit.Convert.Geometry.GeometryEncoder.ToCurve(i);&lt;BR /&gt;revitDoc.Create.NewModelCurve(c, sketch.SketchPlane);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;using (var uiApplication = new Autodesk.Revit.UI.UIApplication(revitDoc.Application))&lt;BR /&gt;{&lt;BR /&gt;EventHandler&amp;lt;ARUI.Events.DialogBoxShowingEventArgs&amp;gt; DialogBoxShowing = null;&lt;/P&gt;&lt;P&gt;try&lt;BR /&gt;{&lt;BR /&gt;uiApplication.DialogBoxShowing += DialogBoxShowing = (sender, args) =&amp;gt;&lt;BR /&gt;{&lt;BR /&gt;if (args.DialogId == "TaskDialog_Sketch_Edits_Discarded")&lt;BR /&gt;args.OverrideResult(1001 /*IDYES*/);&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;revitDoc.Regenerate();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;transaction.Commit();&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;}&lt;/P&gt;&lt;P&gt;catch (Autodesk.Revit.Exceptions.InvalidOperationException) { return; }&lt;BR /&gt;finally { uiApplication.DialogBoxShowing -= DialogBoxShowing; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//using (Transaction trns2 = new Transaction(revitDoc, "modifySpanDirection"))&lt;BR /&gt;//{&lt;BR /&gt;// trns2.Start();&lt;BR /&gt;// fl.SpanDirectionAngle = 0;&lt;BR /&gt;// trns2.Commit();&lt;/P&gt;&lt;P&gt;//}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;trnsGroup.Commit();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;sketchEditScope2.Commit(new RoomWarningSwallower());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;using (Transaction tr = new Transaction(revitDoc, "changeToSTR"))&lt;BR /&gt;{&lt;BR /&gt;tr.Start("change");&lt;/P&gt;&lt;P&gt;fl.LookupParameter("Structural").Set(1);&lt;/P&gt;&lt;P&gt;tr.Commit();&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;// create new floor&lt;BR /&gt;else&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2024 15:06:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12551036#M7364</guid>
      <dc:creator>ramzy_ahmedhamdy</dc:creator>
      <dc:date>2024-02-09T15:06:02Z</dc:date>
    </item>
    <item>
      <title>Re: Set structural floor span direction using c#</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12551430#M7365</link>
      <description>&lt;P&gt;Hi &lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/15001771" target="_self"&gt;&lt;SPAN class=""&gt;ramzy_ahmedhamdy,&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;Good solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you modify the &lt;STRONG&gt;Structural&lt;/STRONG&gt; parameter inside &lt;STRONG&gt;TransactionGroup&lt;/STRONG&gt;, it doesn't work? I ask this because if it worked it would be cleaner for the user in case they need to do Undo.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Feb 2024 18:06:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/set-structural-floor-span-direction-using-c/m-p/12551430#M7365</guid>
      <dc:creator>Speed_CAD</dc:creator>
      <dc:date>2024-02-09T18:06:11Z</dc:date>
    </item>
  </channel>
</rss>

