<?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 Create Beams from level in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/create-beams-from-level/m-p/13260688#M1456</link>
    <description>&lt;P&gt;Hi everyone!&lt;/P&gt;&lt;P&gt;I'm working with this plugin and I have a problem: when I want to set the "Level 2" for some reason, this is not set in the beam.&lt;/P&gt;&lt;P&gt;If there is any solution I would appreciate it.&lt;BR /&gt;Regards.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            Document doc = commandData.Application.ActiveUIDocument.Document;

            var cadLinkInstances = new FilteredElementCollector(doc)
                .OfClass(typeof(ImportInstance))
                .Cast&amp;lt;ImportInstance&amp;gt;()
                .ToList();

            if (!cadLinkInstances.Any())
            {
                message = "No se encontró ningún archivo CAD cargado.";
                return Result.Failed;
            }

            ImportInstance cadInstance = cadLinkInstances.First();

            Options geometryOptions = new Options { DetailLevel = ViewDetailLevel.Fine };
            GeometryElement geometryElement = cadInstance.get_Geometry(geometryOptions);

            List&amp;lt;Line&amp;gt; cadLines = new List&amp;lt;Line&amp;gt;();

            foreach (GeometryObject geometryObject in geometryElement)
            {
                if (geometryObject is GeometryInstance geometryInstance)
                {
                    GeometryElement symbolGeometry = geometryInstance.GetInstanceGeometry();
                    foreach (GeometryObject geomObj in symbolGeometry)
                    {
                        if (geomObj is Line line) 
                        {
                            cadLines.Add(line);
                        }
                        else if (geomObj is PolyLine polyline) 
                        {
                            IList&amp;lt;XYZ&amp;gt; points = polyline.GetCoordinates();
                            for (int i = 0; i &amp;lt; points.Count - 1; i++)
                            {
                                Line segment = Line.CreateBound(points[i], points[i + 1]);
                                cadLines.Add(segment);
                            }
                        }
                    }
                }
            }

            if (!cadLines.Any())
            {
                message = "No se encontraron líneas o polilíneas en el archivo CAD.";
                return Result.Failed;
            }

            Level level = new FilteredElementCollector(doc)
                .OfClass(typeof(Level))
                .Cast&amp;lt;Level&amp;gt;()
                .FirstOrDefault(l =&amp;gt; l.Name == "Level 2");

            if (level == null)
            {
                message = "No se encontró el nivel 'Level 2'.";
                return Result.Failed;
            }

            using (Transaction trans = new Transaction(doc, "Crear vigas desde CAD"))
            {
                trans.Start();

                FamilySymbol beamType = new FilteredElementCollector(doc)
                    .OfClass(typeof(FamilySymbol))
                    .OfCategory(BuiltInCategory.OST_StructuralFraming)
                    .Cast&amp;lt;FamilySymbol&amp;gt;()
                    .FirstOrDefault(fs =&amp;gt; fs.FamilyName == "VIGA Hº Aº");

                if (beamType == null)
                {
                    message = "No se encontró la familia 'VIGA Hº Aº'.";
                    return Result.Failed;
                }

                if (!beamType.IsActive)
                {
                    beamType.Activate();
                    doc.Regenerate();
                }

                foreach (Line line in cadLines)
                {
                    FamilyInstance beam = doc.Create.NewFamilyInstance(
                        line,
                        beamType,
                        level,
                        StructuralType.Beam);

                    LocationCurve locationCurve = beam.Location as LocationCurve;
                    if (locationCurve != null)
                    {
                        locationCurve.Curve = line; 
                    }
                }

                trans.Commit();
            }

            return Result.Succeeded;
        }
    }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Jan 2025 19:48:14 GMT</pubDate>
    <dc:creator>emaguilera</dc:creator>
    <dc:date>2025-01-14T19:48:14Z</dc:date>
    <item>
      <title>Create Beams from level</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/create-beams-from-level/m-p/13260688#M1456</link>
      <description>&lt;P&gt;Hi everyone!&lt;/P&gt;&lt;P&gt;I'm working with this plugin and I have a problem: when I want to set the "Level 2" for some reason, this is not set in the beam.&lt;/P&gt;&lt;P&gt;If there is any solution I would appreciate it.&lt;BR /&gt;Regards.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            Document doc = commandData.Application.ActiveUIDocument.Document;

            var cadLinkInstances = new FilteredElementCollector(doc)
                .OfClass(typeof(ImportInstance))
                .Cast&amp;lt;ImportInstance&amp;gt;()
                .ToList();

            if (!cadLinkInstances.Any())
            {
                message = "No se encontró ningún archivo CAD cargado.";
                return Result.Failed;
            }

            ImportInstance cadInstance = cadLinkInstances.First();

            Options geometryOptions = new Options { DetailLevel = ViewDetailLevel.Fine };
            GeometryElement geometryElement = cadInstance.get_Geometry(geometryOptions);

            List&amp;lt;Line&amp;gt; cadLines = new List&amp;lt;Line&amp;gt;();

            foreach (GeometryObject geometryObject in geometryElement)
            {
                if (geometryObject is GeometryInstance geometryInstance)
                {
                    GeometryElement symbolGeometry = geometryInstance.GetInstanceGeometry();
                    foreach (GeometryObject geomObj in symbolGeometry)
                    {
                        if (geomObj is Line line) 
                        {
                            cadLines.Add(line);
                        }
                        else if (geomObj is PolyLine polyline) 
                        {
                            IList&amp;lt;XYZ&amp;gt; points = polyline.GetCoordinates();
                            for (int i = 0; i &amp;lt; points.Count - 1; i++)
                            {
                                Line segment = Line.CreateBound(points[i], points[i + 1]);
                                cadLines.Add(segment);
                            }
                        }
                    }
                }
            }

            if (!cadLines.Any())
            {
                message = "No se encontraron líneas o polilíneas en el archivo CAD.";
                return Result.Failed;
            }

            Level level = new FilteredElementCollector(doc)
                .OfClass(typeof(Level))
                .Cast&amp;lt;Level&amp;gt;()
                .FirstOrDefault(l =&amp;gt; l.Name == "Level 2");

            if (level == null)
            {
                message = "No se encontró el nivel 'Level 2'.";
                return Result.Failed;
            }

            using (Transaction trans = new Transaction(doc, "Crear vigas desde CAD"))
            {
                trans.Start();

                FamilySymbol beamType = new FilteredElementCollector(doc)
                    .OfClass(typeof(FamilySymbol))
                    .OfCategory(BuiltInCategory.OST_StructuralFraming)
                    .Cast&amp;lt;FamilySymbol&amp;gt;()
                    .FirstOrDefault(fs =&amp;gt; fs.FamilyName == "VIGA Hº Aº");

                if (beamType == null)
                {
                    message = "No se encontró la familia 'VIGA Hº Aº'.";
                    return Result.Failed;
                }

                if (!beamType.IsActive)
                {
                    beamType.Activate();
                    doc.Regenerate();
                }

                foreach (Line line in cadLines)
                {
                    FamilyInstance beam = doc.Create.NewFamilyInstance(
                        line,
                        beamType,
                        level,
                        StructuralType.Beam);

                    LocationCurve locationCurve = beam.Location as LocationCurve;
                    if (locationCurve != null)
                    {
                        locationCurve.Curve = line; 
                    }
                }

                trans.Commit();
            }

            return Result.Succeeded;
        }
    }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Jan 2025 19:48:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/create-beams-from-level/m-p/13260688#M1456</guid>
      <dc:creator>emaguilera</dc:creator>
      <dc:date>2025-01-14T19:48:14Z</dc:date>
    </item>
    <item>
      <title>Re: Create Beams from level</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/create-beams-from-level/m-p/13261770#M1457</link>
      <description>&lt;P&gt;It looks as if you are using an inappropriate overload of&amp;nbsp;NewFamilyInstance:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.revitapidocs.com/2024/451ee414-cea0-e9bd-227b-c73bc93507dd.htm" target="_blank"&gt;https://www.revitapidocs.com/2024/451ee414-cea0-e9bd-227b-c73bc93507dd.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The only overload that I see taking a line as first argument only expects three arguments.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I asked Gemini for a solution for you, and it replied:&lt;/P&gt;
&lt;DIV id="model-response-message-contentr_d6c17e5b33876618" class="markdown markdown-main-panel stronger" dir="ltr"&gt;
&lt;H2 data-sourcepos="1:1-1:61"&gt;&lt;FONT size="5"&gt;Inserting a Beam Between Two Points in Revit using the API&lt;/FONT&gt;&lt;/H2&gt;
&lt;P data-sourcepos="3:1-3:227"&gt;This is a common task in Revit add-in development. Here's a comprehensive guide on how to insert a beam between two points using the Revit API, drawing on best practices and insights from The Building Coder and other resources.&lt;/P&gt;
&lt;P data-sourcepos="5:1-5:29"&gt;&lt;STRONG&gt;Understanding the Process&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-sourcepos="7:1-7:42"&gt;Inserting a beam involves these key steps:&lt;/P&gt;
&lt;OL data-sourcepos="9:1-12:0"&gt;
&lt;LI data-sourcepos="9:1-9:112"&gt;&lt;STRONG&gt;Define the Beam's Geometry:&lt;/STRONG&gt; This is done by creating a &lt;CODE&gt;Line&lt;/CODE&gt; object representing the beam's centerline.&lt;/LI&gt;
&lt;LI data-sourcepos="10:1-10:111"&gt;&lt;STRONG&gt;Select a Beam Family Symbol:&lt;/STRONG&gt; You need a valid &lt;CODE&gt;FamilySymbol&lt;/CODE&gt; representing the beam type to be inserted.&lt;/LI&gt;
&lt;LI data-sourcepos="11:1-12:0"&gt;&lt;STRONG&gt;Create the Beam Instance:&lt;/STRONG&gt; Use the &lt;CODE&gt;Document.Create.NewFamilyInstance&lt;/CODE&gt; method to create the beam in the Revit model.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-sourcepos="13:1-13:21"&gt;&lt;STRONG&gt;Code Example (C#)&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV class="code-block ng-tns-c1396053791-26 ng-trigger ng-trigger-codeBlockRevealAnimation"&gt;
&lt;DIV class="code-block-decoration ng-tns-c1396053791-26 header-formatted gds-title-s ng-star-inserted"&gt;&lt;SPAN class="ng-tns-c1396053791-26"&gt;C#&lt;/SPAN&gt;
&lt;DIV class="buttons ng-tns-c1396053791-26 ng-star-inserted"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="ng-tns-c1396053791-26 formatted-code-block-internal-container"&gt;
&lt;DIV class="animated-opacity ng-tns-c1396053791-26"&gt;
&lt;PRE class="ng-tns-c1396053791-26"&gt;&lt;CODE class="code-container ng-tns-c1396053791-26 formatted" role="text" data-test-id="code-content" data-sourcepos="15:1-81:1"&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-0"&gt;using&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-0"&gt; Autodesk.Revit.ApplicationServices;
&lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-0"&gt;using&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-0"&gt; Autodesk.&lt;/SPAN&gt;&lt;SPAN class="citation-0 citation-1"&gt;Revit.Attributes;
&lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-0 citation-1"&gt;using&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-0 citation-1"&gt; Autodesk.Revit.DB;
&lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-0 citation-1"&gt;using&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-0 citation-1"&gt; Autodesk.Revit.UI;
&lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-0 citation-1"&gt;using&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-0 citation-1 citation-end-0"&gt; Autodesk.Revit.UI.Selection;&lt;/SPAN&gt;

&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-1"&gt;namespace&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN class="hljs-title"&gt;&lt;SPAN class="citation-1"&gt;RevitAddin&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-1"&gt;
{
    [&lt;/SPAN&gt;&lt;SPAN class="hljs-meta"&gt;&lt;SPAN class="citation-1"&gt;Transaction(TransactionMode.Manual)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-1 citation-end-1"&gt;]&lt;/SPAN&gt;
    &lt;SPAN class="hljs-keyword"&gt;public&lt;/SPAN&gt; &lt;SPAN class="hljs-keyword"&gt;class&lt;/SPAN&gt; &lt;SPAN class="hljs-title"&gt;InsertBeam&lt;/SPAN&gt; : &lt;SPAN class="hljs-title"&gt;&lt;SPAN class="citation-2"&gt;IExternalCommand&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2"&gt;
    {
        &lt;/SPAN&gt;&lt;SPAN class="hljs-function"&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-2"&gt;public&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2"&gt; Result &lt;/SPAN&gt;&lt;SPAN class="hljs-title"&gt;&lt;SPAN class="citation-2"&gt;Execute&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2"&gt;(&lt;/SPAN&gt;&lt;SPAN class="hljs-params"&gt;&lt;SPAN class="citation-2"&gt;ExternalCommandData commandData, &lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-2"&gt;ref&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN class="hljs-built_in"&gt;&lt;SPAN class="citation-2"&gt;string&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2"&gt; message, ElementSet elements&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2"&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-2 citation-end-2"&gt;
        {
            UIApplication uiapp = commandData.Application;
            UIDocument uidoc = uiapp.ActiveUIDocument;
            Document doc = uidoc.Document;&lt;/SPAN&gt;

            &lt;SPAN class="hljs-keyword"&gt;try&lt;/SPAN&gt;
            {
                &lt;SPAN class="hljs-comment"&gt;// 1. Get two points for the beam's centerline&lt;/SPAN&gt;
                XYZ pt1 = uidoc.Selection.PickPoint(&lt;SPAN class="hljs-string"&gt;"Select start point of beam"&lt;/SPAN&gt;);
                XYZ pt2 = uidoc.Selection.PickPoint(&lt;SPAN class="hljs-string"&gt;"Select end point of beam"&lt;/SPAN&gt;);

                &lt;SPAN class="hljs-comment"&gt;// 2. Create the line representing the beam's centerline&lt;/SPAN&gt;
                Line beamLine = Line.CreateBound(pt1, pt2);

                &lt;SPAN class="hljs-comment"&gt;// 3. Get a beam family symbol (you might want to add more robust symbol selection)&lt;/SPAN&gt;
                &lt;SPAN class="citation-3"&gt;FilteredElementCollector collector = &lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-3"&gt;new&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-3"&gt; FilteredElementCollector(doc);
                collector.OfClass(&lt;/SPAN&gt;&lt;SPAN class="hljs-keyword"&gt;&lt;SPAN class="citation-3"&gt;typeof&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="citation-3 citation-end-3"&gt;(FamilySymbol));
                collector.OfCategory(BuiltInCategory.OST_StructuralFraming);&lt;/SPAN&gt; &lt;SPAN class="hljs-comment"&gt;// Beams are in this category&lt;/SPAN&gt;

                FamilySymbol beamSymbol = collector.FirstElement() &lt;SPAN class="hljs-keyword"&gt;as&lt;/SPAN&gt; FamilySymbol;
                &lt;SPAN class="hljs-keyword"&gt;if&lt;/SPAN&gt; (beamSymbol == &lt;SPAN class="hljs-literal"&gt;null&lt;/SPAN&gt;)
                {
                    message = &lt;SPAN class="hljs-string"&gt;"No beam family symbol found in the project."&lt;/SPAN&gt;;
                    &lt;SPAN class="hljs-keyword"&gt;return&lt;/SPAN&gt; Result.Failed;
                }

                                &lt;SPAN class="hljs-comment"&gt;// Activate the symbol if it is not already active&lt;/SPAN&gt;
                                &lt;SPAN class="hljs-keyword"&gt;if&lt;/SPAN&gt; (!beamSymbol.IsActive)
                                {
                                        beamSymbol.Activate();
                                        doc.Regenerate();
                                }

                &lt;SPAN class="hljs-keyword"&gt;using&lt;/SPAN&gt; (Transaction tx = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; Transaction(doc))
                {
                    tx.Start(&lt;SPAN class="hljs-string"&gt;"Insert Beam"&lt;/SPAN&gt;);

                                        &lt;SPAN class="hljs-comment"&gt;// 4. Create the beam instance. Use the overload with StructuralType.Beam&lt;/SPAN&gt;
                    FamilyInstance beamInstance = doc.Create.NewFamilyInstance(beamLine, beamSymbol, StructuralType.Beam);

                    tx.Commit();
                }

                &lt;SPAN class="hljs-keyword"&gt;return&lt;/SPAN&gt; Result.Succeeded;
            }
            catch (Exception ex)
            {
                message = ex.Message;
                &lt;SPAN class="hljs-keyword"&gt;return&lt;/SPAN&gt; Result.Failed;
            }
        }
    }
}
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P data-sourcepos="83:1-83:38"&gt;&lt;STRONG&gt;Key Improvements and Explanations:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-sourcepos="85:1-91:0"&gt;
&lt;LI data-sourcepos="85:1-85:137"&gt;&lt;STRONG&gt;Error Handling:&lt;/STRONG&gt; The code includes a &lt;CODE&gt;try-catch&lt;/CODE&gt; block to handle potential exceptions and provide more informative error messages.&lt;/LI&gt;
&lt;LI data-sourcepos="86:1-86:314"&gt;&lt;STRONG&gt;Beam Family Symbol Selection:&lt;/STRONG&gt; The code now uses a &lt;CODE&gt;FilteredElementCollector&lt;/CODE&gt; to find a beam family symbol. This is more robust than hardcoding a specific symbol name. It also checks if the symbol is active and activates it if not. This prevents errors if the symbol is loaded but not active in the project.&lt;/LI&gt;
&lt;LI data-sourcepos="87:1-87:196"&gt;&lt;STRONG&gt;Structural Type:&lt;/STRONG&gt; The &lt;CODE&gt;NewFamilyInstance&lt;/CODE&gt; overload with the &lt;CODE&gt;StructuralType.Beam&lt;/CODE&gt; parameter is used. This is crucial for creating actual structural beams, not just generic family instances.&lt;/LI&gt;
&lt;LI data-sourcepos="88:1-88:114"&gt;&lt;STRONG&gt;Transaction:&lt;/STRONG&gt; The beam creation is wrapped in a transaction, which is essential for proper Revit API usage.&lt;/LI&gt;
&lt;LI data-sourcepos="89:1-89:74"&gt;&lt;STRONG&gt;Clearer Comments:&lt;/STRONG&gt; The code is well-commented to explain each step.&lt;/LI&gt;
&lt;LI data-sourcepos="90:1-91:0"&gt;&lt;STRONG&gt;User Interaction:&lt;/STRONG&gt; Uses &lt;CODE&gt;uidoc.Selection.PickPoint&lt;/CODE&gt; to allow the user to graphically select the start and end points of the beam.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-sourcepos="92:1-92:27"&gt;&lt;STRONG&gt;Further Considerations:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-sourcepos="94:1-99:0"&gt;
&lt;LI data-sourcepos="94:1-94:190"&gt;&lt;STRONG&gt;More Robust Symbol Selection:&lt;/STRONG&gt; You might want to provide a more sophisticated way for the user to select the beam type, such as a dialog box listing available beam families and types.&lt;/LI&gt;
&lt;LI data-sourcepos="95:1-95:102"&gt;&lt;STRONG&gt;Level and Host Element:&lt;/STRONG&gt; Consider specifying the level and host element for the beam if needed.&lt;/LI&gt;
&lt;LI data-sourcepos="96:1-96:152"&gt;&lt;STRONG&gt;Beam Orientation:&lt;/STRONG&gt; For more complex scenarios, you might need to control the beam's orientation using a &lt;CODE&gt;XYZ&lt;/CODE&gt;vector for the beam's up direction.&lt;/LI&gt;
&lt;LI data-sourcepos="97:1-97:113"&gt;&lt;STRONG&gt;Handling Sloped Beams:&lt;/STRONG&gt; For sloped beams, you'll need to create a 3D line and potentially use work planes.&lt;/LI&gt;
&lt;LI data-sourcepos="98:1-99:0"&gt;&lt;STRONG&gt;The Building Coder:&lt;/STRONG&gt; Refer to Jeremy Tammik's The Building Coder blog (thebuildingcoder.typepad.com) for more advanced examples and discussions on creating structural elements. Search for keywords like "NewFamilyInstance," "beam," and "structural."&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-sourcepos="100:1-100:207"&gt;This improved example provides a more complete and robust solution for inserting beams between two points in Revit using the API. Remember to adapt the code to your specific needs and always test thoroughly.&lt;/P&gt;
&lt;P data-sourcepos="100:1-100:207"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 15 Jan 2025 10:22:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/create-beams-from-level/m-p/13261770#M1457</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2025-01-15T10:22:54Z</dc:date>
    </item>
  </channel>
</rss>

