//public GsaElement1d(Element element, LineCurve line)
        //{
        //    m_element = element;
        //    m_line = line;
        //}

        public GsaElement1d Duplicate()
        {
            GsaElement1d dup = new GsaElement1d
            {
                m_element = m_element //add clone or duplicate if available
            };

            if (m_line != null)
            {
                dup.m_line = (LineCurve)m_line.Duplicate();
            }
            dup.ID = m_id;

            if (m_rel1 != null)
            {
                dup.ReleaseStart = m_rel1.Duplicate();
            }
            if (m_rel2 != null)
            {
                dup.ReleaseEnd = m_rel2.Duplicate();
            }
            if (m_section != null)
            {
                dup.Section = m_section.Duplicate();
            }

            return(dup);
        }
        //public GsaElement1d(Element element, LineCurve line)
        //{
        //    m_element = element;
        //    m_line = line;
        //}

        public GsaElement1d Duplicate()
        {
            if (this == null)
            {
                return(null);
            }
            GsaElement1d dup = new GsaElement1d();

            dup.m_element = new Element()
            {
                Group            = m_element.Group,
                IsDummy          = m_element.IsDummy,
                Name             = m_element.Name.ToString(),
                Offset           = m_element.Offset,
                OrientationAngle = m_element.OrientationAngle,
                OrientationNode  = m_element.OrientationNode,
                ParentMember     = m_element.ParentMember,
                Property         = m_element.Property,
                Topology         = new ReadOnlyCollection <int>(m_element.Topology.ToList()),
                Type             = m_element.Type //GsaToModel.Element1dType((int)Element.Type)
            };


            if ((System.Drawing.Color)m_element.Colour != System.Drawing.Color.FromArgb(0, 0, 0)) // workaround to handle that System.Drawing.Color is non-nullable type
            {
                dup.m_element.Colour = m_element.Colour;
            }

            dup.Element.Offset.X1 = m_element.Offset.X1;
            dup.Element.Offset.X2 = m_element.Offset.X2;
            dup.Element.Offset.Y  = m_element.Offset.Y;
            dup.Element.Offset.Z  = m_element.Offset.Z;

            if (m_line != null)
            {
                dup.m_line = (LineCurve)m_line.Duplicate();
            }
            dup.ID = m_id;

            if (m_rel1 != null)
            {
                dup.ReleaseStart = m_rel1.Duplicate();
            }
            if (m_rel2 != null)
            {
                dup.ReleaseEnd = m_rel2.Duplicate();
            }
            if (m_section != null)
            {
                dup.Section = m_section.Duplicate();
            }

            return(dup);
        }