Exemplo n.º 1
0
 protected void AddRelContained()
 {
     foreach (IfcRelContainedInSpatialStructure scRel in
              _model.Instances.OfType <IfcRelContainedInSpatialStructure>())
     {
         if (scRel.RelatingStructure != null)
         {
             CompositionNode treeItem;
             if (!NodeMap.TryGetValue(scRel.RelatingStructure, out treeItem)) //already written
             {
                 treeItem = new CompositionNode(scRel.RelatingStructure);
                 NodeMap.Add(scRel.RelatingStructure, treeItem);
             }
             AddRelatedElements(scRel, treeItem);
         }
     }
 }
Exemplo n.º 2
0
 protected void AddRelatedObjects(IfcRelDecomposes rel, CompositionNode treeItem)
 {
     foreach (IfcObjectDefinition child in rel.RelatedObjects)
     {
         if (child.EntityLabel == treeItem.EntityId)
         {
             continue;
         }                                               //prevent any infinite looping
         CompositionNode childItem;
         if (!NodeMap.TryGetValue(child, out childItem)) //already written
         {
             childItem = new CompositionNode(child);
             NodeMap.Add(child, childItem);
         }
         treeItem.Children.Add(childItem);
     }
 }
Exemplo n.º 3
0
        protected void AddRelatedElements(IfcRelContainedInSpatialStructure scRel, CompositionNode treeItem)
        {
            var applicableTypes = scRel.RelatedElements
                                  .Where(t => !t.GetType().IsSubclassOf(typeof(IfcFeatureElementSubtraction)));

            foreach (IfcObjectDefinition child in applicableTypes)
            {
                CompositionNode childItem;
                if (!NodeMap.TryGetValue(child, out childItem)) //already written
                {
                    childItem = new CompositionNode(child);
                    NodeMap.Add(child, childItem);
                }
                //Node family = GetFamily(treeItem, child);
                // TODO: Add child to family, not treeItem
                treeItem.Children.Add(childItem);
            }
        }
Exemplo n.º 4
0
        protected CompositionNode LocateProjectNode()
        {
            CompositionNode root = null;

            IfcProject project = _model.Instances.OfType <IfcProject>().FirstOrDefault();

            if (project != null)
            {
                CompositionNode projectNode;
                if (NodeMap.TryGetValue(project, out projectNode))
                {
                    projectNode.IsRoot = true;
                    root = projectNode;
                }
            }
            //if (root == null)
            //{
            //    Trace.TraceWarning("No IfcProject located in Model");
            //}
            return(root);
        }
Exemplo n.º 5
0
        protected void AddRelComposes()
        {
            foreach (IfcRelDecomposes rel in _model.Instances.OfType <IfcRelDecomposes>())
            {
                if (rel.RelatingObject != null)
                {
                    // Get the subject of the decomposition from the relationship
                    var parentRel = rel.RelatingObject;
                    if (parentRel == null)
                    {
                        continue;
                    }
                    //var parent = parentRel.RelatingObject;

                    CompositionNode treeItem;
                    if (!NodeMap.TryGetValue(parentRel, out treeItem))
                    {
                        treeItem = new CompositionNode(parentRel);
                        NodeMap.Add(parentRel, treeItem);
                    }
                    AddRelatedObjects(rel, treeItem);
                }
            }
        }
Exemplo n.º 6
0
        protected void AddRelComposes()
        {
            foreach (IfcRelDecomposes rel in _model.Instances.OfType<IfcRelDecomposes>())
            {
                if (rel.RelatingObject != null)
                {
                    // Get the subject of the decomposition from the relationship
                    var parentRel = rel.RelatingObject;
                    if (parentRel == null)
                    { continue; }
                    //var parent = parentRel.RelatingObject;

                    CompositionNode treeItem;
                    if (!NodeMap.TryGetValue(parentRel, out treeItem))
                    {
                        treeItem = new CompositionNode(parentRel);
                        NodeMap.Add(parentRel, treeItem);
                    }
                    AddRelatedObjects(rel, treeItem);
                }
            }
        }
Exemplo n.º 7
0
        protected void AddRelatedElements(IfcRelContainedInSpatialStructure scRel, CompositionNode treeItem)
        {
            var applicableTypes = scRel.RelatedElements
                .Where(t => !t.GetType().IsSubclassOf(typeof(IfcFeatureElementSubtraction)));
            foreach (IfcObjectDefinition child in applicableTypes)
            {
                CompositionNode childItem;
                if (!NodeMap.TryGetValue(child, out childItem)) //already written
                {
                    childItem = new CompositionNode(child);
                    NodeMap.Add(child, childItem);

                }
                //Node family = GetFamily(treeItem, child);
                // TODO: Add child to family, not treeItem
                treeItem.Children.Add(childItem);
            }
        }
Exemplo n.º 8
0
        protected void AddRelContained()
        {

            foreach (IfcRelContainedInSpatialStructure scRel in
                _model.Instances.OfType<IfcRelContainedInSpatialStructure>())
            {
                if (scRel.RelatingStructure != null)
                {
                    CompositionNode treeItem;
                    if (!NodeMap.TryGetValue(scRel.RelatingStructure, out treeItem)) //already written
                    {
                        treeItem = new CompositionNode(scRel.RelatingStructure);
                        NodeMap.Add(scRel.RelatingStructure, treeItem);

                    }
                    AddRelatedElements(scRel, treeItem);
                }
            }
        }
Exemplo n.º 9
0
        protected void AddRelatedObjects(IfcRelDecomposes rel, CompositionNode treeItem)
        {
            foreach (IfcObjectDefinition child in rel.RelatedObjects)
            {
                if (child.EntityLabel == treeItem.EntityId) { continue; }//prevent any infinite looping
                CompositionNode childItem;
                if (!NodeMap.TryGetValue(child, out childItem)) //already written
                {
                    childItem = new CompositionNode(child);
                    NodeMap.Add(child, childItem);

                }
                treeItem.Children.Add(childItem);

            }
        }