コード例 #1
0
 /// <summary>
 /// Clear propertyset assignments to the internal Handle stored in the wrapper if it is incomplete
 /// </summary>
 /// <param name="element">the element</param>
 public void ClearInternalHandleWrapperData(Element element)
 {
     if (InternalWrapper.Count > 0)
     {
         HashSet <IFCAnyHandle> propertySetToCreate = null;
         if (PropertySetsToCreate.TryGetValue(element, out propertySetToCreate))
         {
             ICollection <IFCAnyHandle> internalObjects = InternalWrapper.GetAllObjects();
             foreach (IFCAnyHandle internalObj in internalObjects)
             {
                 propertySetToCreate.Remove(internalObj);
             }
         }
     }
 }
コード例 #2
0
        /// <summary>
        /// Gets the first handle of a particular type, or null if none exists.
        /// </summary>
        /// <param name="type">The entity type.</param>
        /// <returns>The handle, or null.</returns>
        public IFCAnyHandle GetElementOfType(IFCEntityType type)
        {
            foreach (IFCAnyHandle handle in CreatedHandles)
            {
                if (IFCAnyHandleUtil.IsSubTypeOf(handle, type))
                {
                    return(handle);
                }
            }

            ICollection <IFCAnyHandle> internalObjects = InternalWrapper.GetAllObjects();

            foreach (IFCAnyHandle handle in internalObjects)
            {
                if (IFCAnyHandleUtil.IsSubTypeOf(handle, type))
                {
                    return(handle);
                }
            }

            return(null);
        }
コード例 #3
0
        /// <summary>
        /// Get all handles in the wrapper.
        /// </summary>
        /// <returns>The collection of handles.</returns>
        public ISet <IFCAnyHandle> GetAllObjects()
        {
            ICollection <IFCAnyHandle> internalObjects = InternalWrapper.GetAllObjects();

            if (internalObjects.Count == 0)
            {
                return(CreatedHandles);
            }

            HashSet <IFCAnyHandle> allObjects = new HashSet <IFCAnyHandle>();

            // We aren't going to trust that the handles aren't stale.  This needs a rewrite
            // of disposal of entities, and in general a move to .NET only created entities.
            foreach (IFCAnyHandle internalObject in internalObjects)
            {
                if (!IFCAnyHandleUtil.IsNullOrHasNoValue(internalObject))
                {
                    allObjects.Add(internalObject);
                }
            }

            allObjects.UnionWith(CreatedHandles);
            return(allObjects);
        }