예제 #1
0
        protected override void Process(IFCAnyHandle complexProperty)
        {
            base.Process(complexProperty);
            Name      = IFCAnyHandleUtil.GetStringAttribute(complexProperty, "Name");
            UsageName = IFCAnyHandleUtil.GetStringAttribute(complexProperty, "UsageName");

            HashSet <IFCAnyHandle> properties = IFCAnyHandleUtil.GetValidAggregateInstanceAttribute <HashSet <IFCAnyHandle> >(complexProperty, "HasProperties");

            foreach (IFCAnyHandle property in properties)
            {
                IFCProperty containedProperty = IFCProperty.ProcessIFCProperty(property);
                if (containedProperty != null)
                {
                    IFCProperties[containedProperty.Name] = containedProperty;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Processes an IFC property set.
        /// </summary>
        /// <param name="ifcPropertySet">The IfcPropertySet object.</param>
        protected override void Process(IFCAnyHandle ifcPropertySet)
        {
            base.Process(ifcPropertySet);

            HashSet <IFCAnyHandle> properties = IFCAnyHandleUtil.GetAggregateInstanceAttribute <HashSet <IFCAnyHandle> >(ifcPropertySet, "HasProperties");

            if (properties != null)
            {
                foreach (IFCAnyHandle property in properties)
                {
                    IFCProperty ifcProperty = IFCProperty.ProcessIFCProperty(property);
                    if (ifcProperty != null)
                    {
                        IFCProperties[ifcProperty.Name] = ifcProperty;
                    }
                }
            }
            else
            {
                Importer.TheLog.LogMissingRequiredAttributeError(ifcPropertySet, "HasProperties", false);
            }
        }