/// <summary>
        /// Bloque: Corte de Sección - Efe Prima Ce
        /// </summary>
        /// <param name="P_XYZ">Coordenadas del Bloque</param>
        /// <param name="X1">Texto del corte, punta inicial.</param>
        /// <param name="X2">Texto del corte, punta final.</param>
        /// <param name="Distance1">Distancia medida desde el <paramref name="P_XYZ"/>, usualmente se asigna el espesor del elemento hacer el corte.</param>
        /// <param name="Position1X">Posición en X del Texto ubicado en la punta inicial, se recomienda en Columnas,Escala 1:75 0.1.</param>
        /// <param name="Position1Y">Posición en Y del Texto ubicado en la punta inicial, se recomienda en Columnas,Escala 1:75 -0.1688.</param>
        /// <param name="Position2X">Posición en X del Texto ubicado en la punta final, se recomienda en Columnas,Escala 1:75 <paramref name="Distance1"/> + 1.0  - <paramref name="Position1X"/></param>
        /// <param name="Position2Y">Posición en Y del Texto ubicado en la punta final, se recomienda en Columnas,Escala 1:75 -0.1688.</param>
        /// <param name="FlipSate1">Dirección del Bloque: True: Abajo, False: Arriba</param>
        /// <param name="Layer">Capa del Bloque.</param>
        /// <param name="Xscale">Escala en X del Bloque.</param>
        /// <param name="Yscale">Escala en Y del Bloque.</param>
        /// <param name="Zscale">Escala en Z del Bloque.</param>
        /// <param name="Rotation">Ángulo de rotación en grados del Bloque.</param>
        public static void B_Seccion(double[] P_XYZ, string X1, string X2, double Distance1, double Position1X, double Position2X, double Position1Y, double Position2Y, bool FlipSate1, string Layer, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Seccion", Xscale, Yscale, Zscale, Rotation);
                blockReference.Layer = Layer;

                var referenceProperty  = blockReference.GetDynamicBlockProperties();
                var attributeReference = blockReference.GetAttributes();

                referenceProperty[0].Value = Position1X;
                referenceProperty[1].Value = Position1Y;
                referenceProperty[4].Value = Distance1;
                referenceProperty[2].Value = Position2X;
                referenceProperty[3].Value = Position2Y;

                if (FlipSate1 == true)
                {
                    referenceProperty[6].Value = Convert.ToInt16(1);
                }

                attributeReference[0].TextString = X1;
                attributeReference[1].TextString = X2;
                blockReference.Update();
            }
        }
        /// <summary>
        /// Bloque: Nombre de Sección - Efe Prima Ce
        /// </summary>
        public static void B_NombreSeccion(double[] P_XYZ, string Seccion, string Escala, string Layer, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            try
            {
                if (AcadDoc != null)
                {
                    AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Titulo 1", Xscale, Yscale, Zscale, Rotation);
                    blockReference.Layer = Layer;


                    var attributeReference = blockReference.GetAttributes();

                    double Distance1 = (Seccion.Length - 3) * 0.05f;

                    attributeReference[0].TextString = Seccion;
                    attributeReference[1].TextString = Escala;



                    var referenceProperty = blockReference.GetDynamicBlockProperties();
                    referenceProperty[0].Value = Distance1;

                    blockReference.Update();
                }
            }
            catch (Exception ex)
            {
                NotificadorErrores?.Invoke(ex.Message);
            }
        }
        //BLOQUES ESPECIFICOS DE EFE PRIMA CE

        /// <summary>
        /// Bloque: Nivel de Sección - Efe Prima Ce
        /// </summary>
        /// <param name="P_XYZ">Coordenadas del Bloque.</param>
        /// <param name="Nivel">Texto correspondiente al nivel especificado, se recomienda asignar el texto así:  N+/PLosa xx, “/P” es para agregar un espacio.</param>
        /// <param name="Distance1">Largo de la línea superior del bloque, en Escalas 1:75 se recomienda: 1.08 </param>
        /// <param name="Distance2">Largo de la línea inferior del bloque medido desde el <paramref name="P_XYZ"/>, en Escalas 1:75 se recomienda: 1.90</param>
        /// <param name="FlipSate1">Dirección del Bloque, False: Izquierda, True: Derecha</param>
        /// <param name="Layer">Capa del Bloque.</param>
        /// <param name="Xscale">Escala en X del Bloque.</param>
        /// <param name="Yscale">Escala en Y del Bloque.</param>
        /// <param name="Zscale">Escala en Z del Bloque.</param>
        /// <param name="Rotation">Ángulo de rotación en grados del Bloque.</param>

        public static void B_NivelSeccion(double[] P_XYZ, string Nivel, double Distance1, double Distance2, bool FlipSate1, string Layer, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            try
            {
                if (AcadDoc != null)
                {
                    AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Nivel seccion", Xscale, Yscale, Zscale, Rotation);
                    blockReference.Layer = Layer;

                    var referenceProperty  = blockReference.GetDynamicBlockProperties();
                    var attributeReference = blockReference.GetAttributes();

                    referenceProperty[0].Value = Distance1;
                    referenceProperty[2].Value = Distance2;

                    if (FlipSate1 == true)
                    {
                        referenceProperty[4].Value = Convert.ToInt16(1);
                    }

                    attributeReference[0].TextString = Nivel;
                    blockReference.Update();
                }
            }
            catch (Exception ex)
            {
                NotificadorErrores?.Invoke(ex.Message);
            }
        }
        /// <summary>
        /// Bloque: Refuerzo i en seccion - Efe Prima Ce
        /// </summary>
        public static void Add_ref(double[] P_XYZ, string Layer, int Alzado, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Convenciones refuerzoV2", Xscale, Yscale, Zscale, Rotation);

            var referenceProperty = blockReference.GetDynamicBlockProperties();

            referenceProperty[0].Value = Alzado.ToString();

            blockReference.Layer = Layer;
            blockReference.Update();
        }
        /// <summary>
        /// Bloque: Conveciones de refuerzo - Efe Prima Ce
        /// </summary>
        /// <param name="P_XYZ">Coordenadas del Bloque</param>
        ///<param name="NombreRefuerzo">Numero de refuerzo.</param>
        /// <param name="Layer">Capa del Bloque.</param>
        /// <param name="Xscale">Escala en X del Bloque.</param>
        /// <param name="Yscale">Escala en Y del Bloque.</param>
        /// <param name="Zscale">Escala en Z del Bloque.</param>
        /// <param name="Rotation">Ángulo de rotación en grados del Bloque.</param>
        public static void B_CirculoRefuerzo(double[] P_XYZ, string NombreRefuerzo, string Layer, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Convenciones refuerzoV2", Xscale, Yscale, Zscale, Rotation);
                blockReference.Layer = Layer;

                var referenceProperty = blockReference.GetDynamicBlockProperties();

                referenceProperty[0].Value = NombreRefuerzo;
                blockReference.Update();
            }
        }
        /// <summary>
        /// Bloque: Ganchos Sección - Efe Prima Ce
        /// </summary>
        public static void B_Gancho(double[] P_XYZ, string Layer, double Longitud, double Xscale, double Yscale, double Zscale, float Rotation, short FlipState)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Gancho tipo 1", Xscale, Yscale, Zscale, 0);

                var referenceProperty = blockReference.GetDynamicBlockProperties();
                referenceProperty[2].Value = Longitud;
                referenceProperty[4].Value = FlipState;
                referenceProperty[5].Value = Math.PI * Rotation / 180;

                blockReference.Layer = Layer;
                blockReference.Update();
            }
        }
        /// <summary>
        /// Bloque de Estribo Tipo 6, normalmente se usa para Tabla de Estribos en Muros [efe Prima Ce]
        /// </summary>
        /// <param name="P_XY">Coordenadas del Bloque. [System.Drawing]</param>
        /// <param name="Layer">Capa del Bloque.</param>
        /// <param name="Xscale">Escala en X del Bloque.</param>
        /// <param name="Yscale">Escala en Y del Bloque.</param>
        /// <param name="Zscale">Escala en Z del Bloque.</param>
        /// <param name="Rotation">Ángulo de rotación en grados del Bloque.</param>
        /// <param name="Distancia">Distancia recta del Estribo</param>
        /// <param name="EspesorReal">Espesor Real.</param>
        /// <param name="EspesorDoble">Espesor Doble.</param>
        public static void B_Estribo(PointF P_XY, string Layer, double Xscale, double Yscale, double Zscale, double Rotation, double Distancia, double EspesorReal, double EspesorDoble, double GanchoEstribo = 0.09)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(ConvertirPuntoEnDobules3D(P_XY), "FC_B_Estribo tipo 6", Xscale, Yscale, Zscale, Rotation);
                blockReference.Layer = Layer;

                var referenceProperty = blockReference.GetDynamicBlockProperties();

                referenceProperty[0].Value = Distancia;
                referenceProperty[2].Value = EspesorDoble;
                referenceProperty[4].Value = EspesorReal;
                referenceProperty[6].Value = GanchoEstribo;
            }
        }
        /// <summary>
        /// Bloque: Estibo de Sección - Efe Prima Ce
        /// </summary>
        public static void B_Estribo(double[] P_XYZ, string Layer, double Base, double Altura, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Estribo tipo 1", Xscale, Yscale, Zscale, Rotation);

                var referenceProperty = blockReference.GetDynamicBlockProperties();

                referenceProperty[0].Value = Base;
                referenceProperty[2].Value = Altura;

                blockReference.Layer = Layer;
                blockReference.Update();
            }
        }
Example #9
0
        /// <summary>
        /// Bloque: Nombre de Sección - Efe Prima Ce
        /// </summary>
        public static void B_NombreSeccion(double[] P_XYZ, string Seccion, string Escala, string Layer, double Xscale, double Yscale, double Zscale, float Rotation)
        {
            if (AcadDoc != null)
            {
                AcadBlockReference blockReference = AcadDoc.ModelSpace.InsertBlock(P_XYZ, "FC_B_Titulo 1", Xscale, Yscale, Zscale, Rotation);
                blockReference.Layer = Layer;

                var referenceProperty  = blockReference.GetDynamicBlockProperties();
                var attributeReference = blockReference.GetAttributes();

                attributeReference[0].TextString = Seccion;
                attributeReference[1].TextString = Escala;
                blockReference.Update();
            }
        }