IfcDoc.FormEdit.BuildMaps C# (CSharp) Method

BuildMaps() private method

private BuildMaps ( DocObject>.Dictionary mapEntity, string>.Dictionary mapSchema ) : void
mapEntity DocObject>.Dictionary
mapSchema string>.Dictionary
return void
        private void BuildMaps(Dictionary<string, DocObject> mapEntity, Dictionary<string, string> mapSchema)
        {
            foreach (SEntity entity in this.m_instances.Values)
            {
                if (entity is DocTemplateDefinition)
                {
                    // new in 4.5
                    DocTemplateDefinition docTemplate = (DocTemplateDefinition)entity;
                    if (docTemplate.Name != null && !mapEntity.ContainsKey(docTemplate.Name))
                    {
                        // TBD: "Body Geometry" occurs multiple times
                        mapEntity.Add(docTemplate.Name, docTemplate);
                    }
                }
                else if (entity is DocEntity)
                {
                    DocEntity docEntity = (DocEntity)entity;
                    if (docEntity.Name != null)
                    {
                        if(!mapEntity.ContainsKey(docEntity.Name))
                        {
                            mapEntity.Add(docEntity.Name, docEntity);
                        }
                    }
                }
                else if (entity is DocType)
                {
                    DocType docType = (DocType)entity;
                    if (!mapEntity.ContainsKey(docType.Name))
                    {
                        mapEntity.Add(docType.Name, docType);
                    }
                }
                else if (entity is DocFunction)
                {
                    DocFunction docFunc = (DocFunction)entity;
                    if (!mapEntity.ContainsKey(docFunc.Name))
                    {

                        mapEntity.Add(docFunc.Name, docFunc);
                    }
                }
                else if (entity is DocGlobalRule)
                {
                    DocGlobalRule docFunc = (DocGlobalRule)entity;
                    mapEntity.Add(docFunc.Name, docFunc);
                }
                else if (entity is DocPropertySet)
                {
                    DocPropertySet docFunc = (DocPropertySet)entity;
                    mapEntity.Add(docFunc.Name, docFunc);
                }
                else if(entity is DocPropertyEnumeration)
                {
                    DocPropertyEnumeration docEnum = (DocPropertyEnumeration)entity;
                    mapEntity.Add(docEnum.Name, docEnum);
                }
                else if (entity is DocQuantitySet)
                {
                    DocQuantitySet docFunc = (DocQuantitySet)entity;
                    mapEntity.Add(docFunc.Name, docFunc);
                }
                else if (entity is DocSchema)
                {
                    DocSchema docSchema = (DocSchema)entity;
                    foreach (DocEntity def in docSchema.Entities)
                    {
                        if (def.Name != null)
                        {
                            if(!mapSchema.ContainsKey(def.Name))
                            {
                                mapSchema.Add(def.Name, docSchema.Name);
                            }
                        }
                    }
                    foreach (DocType def in docSchema.Types)
                    {
                        // bug in vex file: IfcNullStyle included twice (?)
                        if (!mapSchema.ContainsKey(def.Name))
                        {
                            mapSchema.Add(def.Name, docSchema.Name);
                        }
                    }
                    foreach (DocFunction def in docSchema.Functions)
                    {
                        // e.g. IfcDotProduct defined in multiple schemas!!!
                        if (!mapSchema.ContainsKey(def.Name))
                        {
                            mapSchema.Add(def.Name, docSchema.Name);
                        }
                    }
                    foreach (DocGlobalRule def in docSchema.GlobalRules)
                    {
                        mapSchema.Add(def.Name, docSchema.Name);
                    }
                    foreach (DocPropertySet def in docSchema.PropertySets)
                    {
                        mapSchema.Add(def.Name, docSchema.Name);
                    }
                    foreach (DocPropertyEnumeration def in docSchema.PropertyEnums)
                    {
                        mapSchema.Add(def.Name, docSchema.Name);
                    }
                    foreach (DocQuantitySet def in docSchema.QuantitySets)
                    {
                        mapSchema.Add(def.Name, docSchema.Name);
                    }
                }
            }
        }
FormEdit