Example #1
0
        /// <summary>
        /// Create an IFCLoop object from a handle of type IfcLoop.
        /// </summary>
        /// <param name="ifcLoop">The IFC handle.</param>
        /// <returns>The IFCLoop object.</returns>
        public static IFCLoop ProcessIFCLoop(IFCAnyHandle ifcLoop)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcLoop))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcLoop);
                return(null);
            }

            IFCEntity loop;

            if (IFCImportFile.TheFile.EntityMap.TryGetValue(ifcLoop.StepId, out loop))
            {
                return(loop as IFCLoop);
            }

            if (IFCImportFile.TheFile.SchemaVersion >= IFCSchemaVersion.IFC2x2 && IFCAnyHandleUtil.IsSubTypeOf(ifcLoop, IFCEntityType.IfcEdgeLoop))
            {
                return(IFCEdgeLoop.ProcessIFCEdgeLoop(ifcLoop));
            }

            if (IFCAnyHandleUtil.IsSubTypeOf(ifcLoop, IFCEntityType.IfcPolyLoop))
            {
                return(IFCPolyLoop.ProcessIFCPolyLoop(ifcLoop));
            }

            Importer.TheLog.LogUnhandledSubTypeError(ifcLoop, IFCEntityType.IfcLoop, false);
            return(null);
        }
Example #2
0
        /// <summary>
        /// Create an IFCPolyLoop object from a handle of type IfcPolyLoop.
        /// </summary>
        /// <param name="ifcPolyLoop">The IFC handle.</param>
        /// <returns>The IFCPolyLoop object.</returns>
        public static IFCPolyLoop ProcessIFCPolyLoop(IFCAnyHandle ifcPolyLoop)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcPolyLoop))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcPolyLoop);
                return(null);
            }

            IFCEntity polyLoop;

            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcPolyLoop.StepId, out polyLoop))
            {
                polyLoop = new IFCPolyLoop(ifcPolyLoop);
            }

            return(polyLoop as IFCPolyLoop);
        }
        /// <summary>
        /// Create an IFCPolyLoop object from a handle of type IfcPolyLoop.
        /// </summary>
        /// <param name="ifcPolyLoop">The IFC handle.</param>
        /// <returns>The IFCPolyLoop object.</returns>
        public static IFCPolyLoop ProcessIFCPolyLoop(IFCAnyHandle ifcPolyLoop)
        {
            if (IFCAnyHandleUtil.IsNullOrHasNoValue(ifcPolyLoop))
            {
                Importer.TheLog.LogNullError(IFCEntityType.IfcPolyLoop); 
                return null;
            }

            IFCEntity polyLoop;
            if (!IFCImportFile.TheFile.EntityMap.TryGetValue(ifcPolyLoop.StepId, out polyLoop))
                polyLoop = new IFCPolyLoop(ifcPolyLoop);
            
            return (polyLoop as IFCPolyLoop);
        }