示例#1
0
        /// <summary>
        /// Static method o select valid input element for the structural connection.
        /// </summary>
        /// <param name="document"> Current document. </param>
        /// <returns>Returns a list of element ids.</returns>
        public static List <ElementId> SelectConnectionElements(UIDocument document)
        {
            List <ElementId> elemIds = new List <ElementId>();

            // Create a filter for the allowed structural connection inputs.
            LogicalOrFilter connElemTypes = new LogicalOrFilter(new List <ElementFilter> {
                new ElementCategoryFilter(BuiltInCategory.OST_StructuralFraming),
                new ElementCategoryFilter(BuiltInCategory.OST_StructuralColumns),
                new ElementCategoryFilter(BuiltInCategory.OST_StructuralFoundation),
                new ElementCategoryFilter(BuiltInCategory.OST_Floors),
                new ElementCategoryFilter(BuiltInCategory.OST_Walls)
            });
            StructuralConnectionSelectionFilter elemFilter = new StructuralConnectionSelectionFilter(connElemTypes);

            List <Reference> refs = document.Selection.PickObjects(ObjectType.Element, elemFilter, "Select elements to add to connection :").ToList();

            elemIds = refs.Select(e => e.ElementId).ToList();

            return(elemIds);
        }
示例#2
0
        /// <summary>
        /// Static method to select structural connections.
        /// </summary>
        /// <returns>Returns the id of the connection.</returns>
        public static StructuralConnectionHandler SelectConnection(UIDocument document)
        {
            StructuralConnectionHandler conn = null;
            // Create a filter for structural connections.
            LogicalOrFilter types = new LogicalOrFilter(new List <ElementFilter> {
                new ElementCategoryFilter(BuiltInCategory.OST_StructConnections)
            });
            StructuralConnectionSelectionFilter filter = new StructuralConnectionSelectionFilter(types);
            Reference target = document.Selection.PickObject(ObjectType.Element, filter, "Select connection element :");

            if (target != null)
            {
                Element targetElement = document.Document.GetElement(target);
                if (targetElement != null)
                {
                    conn = targetElement as StructuralConnectionHandler;
                }
            }

            return(conn);
        }