<?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: Insert Column in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11894225#M12710</link>
    <description>&lt;P&gt;Thank you very much for your answer, I had solved it this way considering what you mention.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;            string columnName = "Columnas 6x6";
            // Buscar el FamilySymbol correspondiente al tipo de familia de columna que deseas insertar
            FilteredElementCollector col = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol));
            FamilySymbol columnType = col.FirstOrDefault(e =&amp;gt; e.Name.Equals(columnName)) as FamilySymbol;


            // Verificar que se encontró el FamilySymbol correspondiente
            if (columnType == null)
            {
                TaskDialog.Show("Error", "No se encontró el tipo de familia de columna especificado.");

            }


            // Obtener el punto de inserción de la columna mediante el objeto de selección del usuario
            XYZ insertionPoint = uidoc.Selection.PickPoint();

            // Crear una nueva instancia de la columna utilizando el tipo de familia de columna y el punto de inserción seleccionados
            Transaction transaction = new Transaction(doc, "Insertar columna");
            transaction.Start();
            FamilyInstance columnInstance = doc.Create.NewFamilyInstance(insertionPoint, columnType, doc.ActiveView.GenLevel, Autodesk.Revit.DB.Structure.StructuralType.Column);
            transaction.Commit();

            // Mostrar un mensaje de confirmación
            TaskDialog.Show("Columna insertada", "Se insertó una nueva columna en la vista activa.");
            #endregion&lt;/LI-CODE&gt;</description>
    <pubDate>Thu, 13 Apr 2023 17:24:08 GMT</pubDate>
    <dc:creator>gustavosanmartin</dc:creator>
    <dc:date>2023-04-13T17:24:08Z</dc:date>
    <item>
      <title>Insert Column</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11890844#M12706</link>
      <description>&lt;P&gt;Hi, I'm starting C# programming and I'm trying to run this code to understand how it works. I'm interested in being able to insert columns. Can you help me understand why I can't run it. Thank you so much&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#region Creando un pilar Metodo 2 ICollection BatchCreateColumns(Autodesk.Revit.DB.Document document, Level level) { List fiCreationDatas = new List(); ICollection elementSet = null; //Try to get a FamilySymbol FamilySymbol familySymbol = null; FilteredElementCollector collector = new FilteredElementCollector(document); 1ICollection collection = collector.OfClass(typeof(FamilySymbol)).ToElements(); foreach (Element e in collection) { familySymbol = e as FamilySymbol; if (null != familySymbol.Category) { if ("Structural Columns" == familySymbol.Category.Name) { break; } } } if (null != familySymbol) { //Create 10 FamilyInstanceCreationData items for batch creation for (int i = 1; i &amp;lt; 11; i++) { XYZ location = new XYZ(i * 10, 100, 0); FamilyInstanceCreationData fiCreationData = new FamilyInstanceCreationData(location, familySymbol, level, StructuralType.Column); if (null != fiCreationData) { fiCreationDatas.Add(fiCreationData); } } if (fiCreationDatas.Count &amp;gt; 0) { // Create Columns elementSet = document.Create.NewFamilyInstances2(fiCreationDatas); } else { throw new Exception("Batch creation failed."); } } else { throw new Exception("No column types found."); } return elementSet; } #endregion&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 14:55:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11890844#M12706</guid>
      <dc:creator>gustavosanmartin</dc:creator>
      <dc:date>2023-04-12T14:55:53Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Column</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11890881#M12707</link>
      <description>&lt;P&gt;Welcome to the Revit API! Are you interested in history? Here is a lesson from 13 years ago:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://thebuildingcoder.typepad.com/blog/2009/02/inserting-a-column.html" target="_blank" rel="noopener"&gt;https://thebuildingcoder.typepad.com/blog/2009/02/inserting-a-column.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm afraid one or two things have changed since then.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before addressing this programmatically, I hope you have tried it out manually in the end user interface to understand the basic BIM principles involved.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 15:12:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11890881#M12707</guid>
      <dc:creator>jeremy_tammik</dc:creator>
      <dc:date>2023-04-12T15:12:15Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Column</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11891715#M12708</link>
      <description>&lt;P&gt;Thank you very much for your answer, I have looked at the code that you have provided me and I have been able to arrive at the following. The problem I have is that I can't insert a column and I don't know what the problem could be.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;// Obtener el documento actual y la aplicación de Revit
            UIDocument uidoc = commandData.Application.ActiveUIDocument;
            Document doc = uidoc.Document;
            // Seleccionar la ubicación de inserción del pilar
            //UIDocument uiDoc = new UIDocument(doc);


            // Pedir al usuario que seleccione un muro
            Reference wallRef = uidoc.Selection.PickObject(ObjectType.Element, new WallSelectionFilter(), "Selecciona un muro");

            // Obtener el muro seleccionado
            Wall wall = doc.GetElement(wallRef) as Wall;
            // Obtener el nivel correspondiente al nivelId de un elemento
            ElementId levelId = wall.LevelId;
            Level level = doc.GetElement(levelId) as Level;
            // Imprimir el nombre del nivel (si se encontró)
            if (level != null)
            {
                TaskDialog.Show("Nivel correspondiente", "El nivel correspondiente es: " + level.Name);
            }
            else
            {
                TaskDialog.Show("Nivel correspondiente", "No se pudo encontrar el nivel correspondiente.");
            }

            XYZ columnLocation = uidoc.Selection.PickPoint("Selecciona la ubicación del pilar");
            TaskDialog.Show("Revit", "Coordenadas del Pickpoint: " + columnLocation.ToString());

            string columnName = "Columnas";
            // Definimos el tipo de pilar que queremos insertar
            FilteredElementCollector columnCollector = new FilteredElementCollector(doc);
            ElementFilter columnFilter = new ElementClassFilter(typeof(FamilySymbol));
            ICollection&amp;lt;Element&amp;gt; columnTypes = columnCollector.WherePasses(columnFilter).ToElements();

            FamilySymbol columnSymbol = null;

            foreach (Element elem in columnTypes)
            {
                FamilySymbol sym = elem as FamilySymbol;
                if (sym != null &amp;amp;&amp;amp; sym.Family.Name == columnName)
                {
                    columnSymbol = sym;
                    break;
                }
            }
            TaskDialog.Show("Revit", "columnSymbol: " + columnSymbol.Family.Name.ToString());

            doc.Create.NewFamilyInstance(columnLocation, columnSymbol, level, StructuralType.Column);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 20:37:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11891715#M12708</guid>
      <dc:creator>gustavosanmartin</dc:creator>
      <dc:date>2023-04-12T20:37:16Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Column</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11892199#M12709</link>
      <description>&lt;P&gt;You need to use transaction to make changes to a document.&lt;/P&gt;&lt;P&gt;Put your doc.Create.NewFamilyInstance under transaction.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;using (Transaction columnInsertTransaction = new Transaction(doc))&lt;BR /&gt;{&lt;BR /&gt;if (columnInsertTransaction.Start("Insert Column") == TransactionStatus.Started)&lt;BR /&gt;{&lt;BR /&gt;doc.Create.NewFamilyInstance(columnLocation, columnSymbol, level, StructuralType.Column);&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt;columnInsertTransaction.Commit();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 01:54:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11892199#M12709</guid>
      <dc:creator>pyaezoneas</dc:creator>
      <dc:date>2023-04-13T01:54:34Z</dc:date>
    </item>
    <item>
      <title>Re: Insert Column</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11894225#M12710</link>
      <description>&lt;P&gt;Thank you very much for your answer, I had solved it this way considering what you mention.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;            string columnName = "Columnas 6x6";
            // Buscar el FamilySymbol correspondiente al tipo de familia de columna que deseas insertar
            FilteredElementCollector col = new FilteredElementCollector(doc).OfClass(typeof(FamilySymbol));
            FamilySymbol columnType = col.FirstOrDefault(e =&amp;gt; e.Name.Equals(columnName)) as FamilySymbol;


            // Verificar que se encontró el FamilySymbol correspondiente
            if (columnType == null)
            {
                TaskDialog.Show("Error", "No se encontró el tipo de familia de columna especificado.");

            }


            // Obtener el punto de inserción de la columna mediante el objeto de selección del usuario
            XYZ insertionPoint = uidoc.Selection.PickPoint();

            // Crear una nueva instancia de la columna utilizando el tipo de familia de columna y el punto de inserción seleccionados
            Transaction transaction = new Transaction(doc, "Insertar columna");
            transaction.Start();
            FamilyInstance columnInstance = doc.Create.NewFamilyInstance(insertionPoint, columnType, doc.ActiveView.GenLevel, Autodesk.Revit.DB.Structure.StructuralType.Column);
            transaction.Commit();

            // Mostrar un mensaje de confirmación
            TaskDialog.Show("Columna insertada", "Se insertó una nueva columna en la vista activa.");
            #endregion&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 13 Apr 2023 17:24:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/insert-column/m-p/11894225#M12710</guid>
      <dc:creator>gustavosanmartin</dc:creator>
      <dc:date>2023-04-13T17:24:08Z</dc:date>
    </item>
  </channel>
</rss>

