Пример #1
0
        /// <summary>
        /// Load a family from xml
        /// </summary>
        /// <param name="familyXElement"></param>
        /// <param name="findFolderUtility"></param>
        private void ParseFamilyFromXml(XElement familyXElement, FindFolderUtility findFolderUtility)
        {
            XAttribute xafilename = familyXElement.Attribute(XName.Get("filename"));
            string     familyPath = xafilename.Value;

            if (!System.IO.File.Exists(familyPath))
            {
                string filename = System.IO.Path.GetFileName(familyPath);
                familyPath = findFolderUtility.FindFileFolder(filename);
                if (!System.IO.File.Exists(familyPath))
                {
                    throw new RoutingPreferenceDataException("Cannot find family file: " + xafilename.Value);
                }
            }


            if (string.Compare(System.IO.Path.GetExtension(familyPath), ".rfa", true) != 0)
            {
                throw new RoutingPreferenceDataException(familyPath + " is not a family file.");
            }

            try
            {
                if (!m_document.LoadFamily(familyPath))
                {
                    return; //returns false if already loaded.
                }
            }
            catch (System.Exception ex)
            {
                throw new RoutingPreferenceDataException("Cannot load family: " + xafilename.Value + ": " + ex.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Create xml from a family
        /// </summary>
        /// <param name="pipeFitting"></param>
        /// <param name="findFolderUtility"></param>
        /// <param name="pathNotFound"></param>
        /// <returns></returns>
        private static XElement CreateXmlFromFamily(FamilySymbol pipeFitting, FindFolderUtility findFolderUtility, ref bool pathNotFound)
        {
            //Try to find the path of the .rfa file.
            string path = findFolderUtility.FindFileFolder(pipeFitting.Family.Name + ".rfa");
            string pathToWrite;

            if (path == "")
            {
                pathNotFound = true;
                pathToWrite  = pipeFitting.Family.Name + ".rfa";
            }
            else
            {
                pathToWrite = path;
            }

            XElement xFamilySymbol = new XElement(XName.Get("Family"));

            xFamilySymbol.Add(new XAttribute(XName.Get("filename"), pathToWrite));
            return(xFamilySymbol);
        }