本文整理汇总了C#中ExporterIFC.GetHostObjects方法的典型用法代码示例。如果您正苦于以下问题:C# ExporterIFC.GetHostObjects方法的具体用法?C# ExporterIFC.GetHostObjects怎么用?C# ExporterIFC.GetHostObjects使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExporterIFC
的用法示例。
在下文中一共展示了ExporterIFC.GetHostObjects方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EndExport
//.........这里部分代码省略.........
foreach (TypePropertyInfo typePropertyInfo in ExporterCacheManager.TypePropertyInfoCache.Values)
{
if (typePropertyInfo.AssignedToType)
continue;
ICollection<IFCAnyHandle> propertySets = typePropertyInfo.PropertySets;
ISet<IFCAnyHandle> elements = typePropertyInfo.Elements;
if (elements.Count == 0)
continue;
foreach (IFCAnyHandle propertySet in propertySets)
{
try
{
IFCInstanceExporter.CreateRelDefinesByProperties(file, GUIDUtil.CreateGUID(), ownerHistory,
null, null, elements, propertySet);
}
catch
{
}
}
}
// create space boundaries
foreach (SpaceBoundary boundary in ExporterCacheManager.SpaceBoundaryCache)
{
SpatialElementExporter.ProcessIFCSpaceBoundary(exporterIFC, boundary, file);
}
// create wall/wall connectivity objects
if (ExporterCacheManager.WallConnectionDataCache.Count > 0)
{
IList<IDictionary<ElementId, IFCAnyHandle>> hostObjects = exporterIFC.GetHostObjects();
List<int> relatingPriorities = new List<int>();
List<int> relatedPriorities = new List<int>();
foreach (WallConnectionData wallConnectionData in ExporterCacheManager.WallConnectionDataCache)
{
foreach (IDictionary<ElementId, IFCAnyHandle> mapForLevel in hostObjects)
{
IFCAnyHandle wallElementHandle, otherElementHandle;
if (!mapForLevel.TryGetValue(wallConnectionData.FirstId, out wallElementHandle))
continue;
if (!mapForLevel.TryGetValue(wallConnectionData.SecondId, out otherElementHandle))
continue;
// NOTE: Definition of RelConnectsPathElements has the connection information reversed
// with respect to the order of the paths.
string connectionName = IFCAnyHandleUtil.GetStringAttribute(wallElementHandle, "GlobalId") + "|"
+ IFCAnyHandleUtil.GetStringAttribute(otherElementHandle, "GlobalId");
string connectionType = "Structural"; // Assigned as Description
IFCInstanceExporter.CreateRelConnectsPathElements(file, GUIDUtil.CreateGUID(), ownerHistory,
connectionName, connectionType, wallConnectionData.ConnectionGeometry, wallElementHandle, otherElementHandle, relatingPriorities,
relatedPriorities, wallConnectionData.SecondConnectionType, wallConnectionData.FirstConnectionType);
}
}
}
// create Zones
{
string relAssignsToGroupName = "Spatial Zone Assignment";
foreach (string zoneName in ExporterCacheManager.ZoneInfoCache.Keys)
{
ZoneInfo zoneInfo = ExporterCacheManager.ZoneInfoCache.Find(zoneName);
if (zoneInfo != null)
示例2: GetHndForHostAndLevel
/// <summary>
/// Access the HostObjects map to get the handle associated with a wall at a particular level. This does something special only
/// for walls split by level.
/// </summary>
/// <param name="exporterIFC">The exporterIFC class.</param>
/// <param name="hostId">The (wall) host id.</param>
/// <param name="levelId">The level id.</param>
/// <returns>The IFC handle associated with the host at that level.</returns>
static public IFCAnyHandle GetHndForHostAndLevel(ExporterIFC exporterIFC, ElementId hostId, ElementId levelId)
{
if (hostId == ElementId.InvalidElementId)
return null;
IFCAnyHandle hostObjectHnd = null;
IList<IDictionary<ElementId, IFCAnyHandle>> hostObjects = exporterIFC.GetHostObjects();
int idx = -1;
if (ExporterCacheManager.HostObjectsLevelIndex.TryGetValue(levelId, out idx))
{
IDictionary<ElementId, IFCAnyHandle> mapForLevel = hostObjects[idx];
mapForLevel.TryGetValue(hostId, out hostObjectHnd);
}
// If we can't find a specific handle for the host on that level, look for a generic handle for the host.
// These are stored in the "invalidElementId" level id map.
if (IFCAnyHandleUtil.IsNullOrHasNoValue(hostObjectHnd))
{
if (ExporterCacheManager.HostObjectsLevelIndex.TryGetValue(ElementId.InvalidElementId, out idx))
{
IDictionary<ElementId, IFCAnyHandle> mapForLevel = hostObjects[idx];
mapForLevel.TryGetValue(hostId, out hostObjectHnd);
}
}
return hostObjectHnd;
}
示例3: EndExport
//.........这里部分代码省略.........
IFCInstanceExporter.CreateRelAssociatesMaterial(file, ExporterIFCUtils.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, ExporterCacheManager.MaterialRelationsCache[materialHnd], materialHnd);
}
// create type relations
foreach (IFCAnyHandle typeObj in ExporterCacheManager.TypeRelationsCache.Keys)
{
IFCInstanceExporter.CreateRelDefinesByType(file, ExporterIFCUtils.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, ExporterCacheManager.TypeRelationsCache[typeObj], typeObj);
}
// create type property relations
foreach (TypePropertyInfo typePropertyInfo in ExporterCacheManager.TypePropertyInfoCache.Values)
{
HashSet<IFCAnyHandle> propertySets = typePropertyInfo.PropertySets;
HashSet<IFCAnyHandle> elements = typePropertyInfo.Elements;
foreach (IFCAnyHandle propertySet in propertySets)
{
IFCInstanceExporter.CreateRelDefinesByProperties(file, ExporterIFCUtils.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, elements, propertySet);
}
}
// create space boundaries
foreach (SpaceBoundary boundary in ExporterCacheManager.SpaceBoundaryCache)
{
SpatialElementExporter.ProcessIFCSpaceBoundary(exporterIFC, boundary, file);
}
// create wall/wall connectivity objects
if (ExporterCacheManager.WallConnectionDataCache.Count > 0)
{
IList<IDictionary<ElementId, IFCAnyHandle>> hostObjects = exporterIFC.GetHostObjects();
List<int> relatingPriorities = new List<int>();
List<int> relatedPriorities = new List<int>();
foreach (WallConnectionData wallConnectionData in ExporterCacheManager.WallConnectionDataCache)
{
foreach (IDictionary<ElementId, IFCAnyHandle> mapForLevel in hostObjects)
{
IFCAnyHandle wallElementHandle, otherElementHandle;
if (!mapForLevel.TryGetValue(wallConnectionData.FirstId, out wallElementHandle))
continue;
if (!mapForLevel.TryGetValue(wallConnectionData.SecondId, out otherElementHandle))
continue;
// NOTE: Definition of RelConnectsPathElements has the connection information reversed
// with respect to the order of the paths.
IFCInstanceExporter.CreateRelConnectsPathElements(file, ExporterIFCUtils.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, wallConnectionData.ConnectionGeometry, wallElementHandle, otherElementHandle, relatingPriorities,
relatedPriorities, wallConnectionData.SecondConnectionType, wallConnectionData.FirstConnectionType);
}
}
}
// create Zones
{
string relAssignsToGroupName = "Spatial Zone Assignment";
foreach (string zoneName in ExporterCacheManager.ZoneInfoCache.Keys)
{
ZoneInfo zoneInfo = ExporterCacheManager.ZoneInfoCache.Find(zoneName);
if (zoneInfo != null)
{
IFCAnyHandle zoneHandle = IFCInstanceExporter.CreateZone(file, ExporterIFCUtils.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
zoneName, zoneInfo.ObjectType, zoneInfo.Description);
示例4: EndExport
//.........这里部分代码省略.........
// create type relations
foreach (IFCAnyHandle typeObj in ExporterCacheManager.TypeRelationsCache.Keys)
{
IFCInstanceExporter.CreateRelDefinesByType(file, GUIDUtil.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, ExporterCacheManager.TypeRelationsCache[typeObj], typeObj);
}
// create type property relations
foreach (TypePropertyInfo typePropertyInfo in ExporterCacheManager.TypePropertyInfoCache.Values)
{
ICollection<IFCAnyHandle> propertySets = typePropertyInfo.PropertySets;
ICollection<IFCAnyHandle> elements = typePropertyInfo.Elements;
if (elements.Count == 0)
continue;
foreach (IFCAnyHandle propertySet in propertySets)
{
IFCInstanceExporter.CreateRelDefinesByProperties(file, GUIDUtil.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, elements, propertySet);
}
}
// create space boundaries
foreach (SpaceBoundary boundary in ExporterCacheManager.SpaceBoundaryCache)
{
SpatialElementExporter.ProcessIFCSpaceBoundary(exporterIFC, boundary, file);
}
// create wall/wall connectivity objects
if (ExporterCacheManager.WallConnectionDataCache.Count > 0)
{
IList<IDictionary<ElementId, IFCAnyHandle>> hostObjects = exporterIFC.GetHostObjects();
List<int> relatingPriorities = new List<int>();
List<int> relatedPriorities = new List<int>();
foreach (WallConnectionData wallConnectionData in ExporterCacheManager.WallConnectionDataCache)
{
foreach (IDictionary<ElementId, IFCAnyHandle> mapForLevel in hostObjects)
{
IFCAnyHandle wallElementHandle, otherElementHandle;
if (!mapForLevel.TryGetValue(wallConnectionData.FirstId, out wallElementHandle))
continue;
if (!mapForLevel.TryGetValue(wallConnectionData.SecondId, out otherElementHandle))
continue;
// NOTE: Definition of RelConnectsPathElements has the connection information reversed
// with respect to the order of the paths.
IFCInstanceExporter.CreateRelConnectsPathElements(file, GUIDUtil.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
null, null, wallConnectionData.ConnectionGeometry, wallElementHandle, otherElementHandle, relatingPriorities,
relatedPriorities, wallConnectionData.SecondConnectionType, wallConnectionData.FirstConnectionType);
}
}
}
// create Zones
{
string relAssignsToGroupName = "Spatial Zone Assignment";
foreach (string zoneName in ExporterCacheManager.ZoneInfoCache.Keys)
{
ZoneInfo zoneInfo = ExporterCacheManager.ZoneInfoCache.Find(zoneName);
if (zoneInfo != null)
{
IFCAnyHandle zoneHandle = IFCInstanceExporter.CreateZone(file, GUIDUtil.CreateGUID(), exporterIFC.GetOwnerHistoryHandle(),
zoneName, zoneInfo.Description, zoneInfo.ObjectType);
示例5: EndExport
//.........这里部分代码省略.........
foreach (TypePropertyInfo typePropertyInfo in ExporterCacheManager.TypePropertyInfoCache.Values)
{
if (typePropertyInfo.AssignedToType)
continue;
ICollection<IFCAnyHandle> propertySets = typePropertyInfo.PropertySets;
ISet<IFCAnyHandle> elements = typePropertyInfo.Elements;
if (elements.Count == 0)
continue;
foreach (IFCAnyHandle propertySet in propertySets)
{
try
{
ExporterUtil.CreateRelDefinesByProperties(file, GUIDUtil.CreateGUID(), ownerHistory,
null, null, elements, propertySet);
}
catch
{
}
}
}
// create space boundaries
foreach (SpaceBoundary boundary in ExporterCacheManager.SpaceBoundaryCache)
{
SpatialElementExporter.ProcessIFCSpaceBoundary(exporterIFC, boundary, file);
}
// create wall/wall connectivity objects
if (ExporterCacheManager.WallConnectionDataCache.Count > 0)
{
IList<IDictionary<ElementId, IFCAnyHandle>> hostObjects = exporterIFC.GetHostObjects();
List<int> relatingPriorities = new List<int>();
List<int> relatedPriorities = new List<int>();
foreach (WallConnectionData wallConnectionData in ExporterCacheManager.WallConnectionDataCache)
{
foreach (IDictionary<ElementId, IFCAnyHandle> mapForLevel in hostObjects)
{
IFCAnyHandle wallElementHandle, otherElementHandle;
if (!mapForLevel.TryGetValue(wallConnectionData.FirstId, out wallElementHandle))
continue;
if (!mapForLevel.TryGetValue(wallConnectionData.SecondId, out otherElementHandle))
continue;
// NOTE: Definition of RelConnectsPathElements has the connection information reversed
// with respect to the order of the paths.
string connectionName = ExporterUtil.GetGlobalId(wallElementHandle) + "|"
+ ExporterUtil.GetGlobalId(otherElementHandle);
string connectionType = "Structural"; // Assigned as Description
IFCInstanceExporter.CreateRelConnectsPathElements(file, GUIDUtil.CreateGUID(), ownerHistory,
connectionName, connectionType, wallConnectionData.ConnectionGeometry, wallElementHandle, otherElementHandle, relatingPriorities,
relatedPriorities, wallConnectionData.SecondConnectionType, wallConnectionData.FirstConnectionType);
}
}
}
// create Zones
{
string relAssignsToGroupName = "Spatial Zone Assignment";
foreach (string zoneName in ExporterCacheManager.ZoneInfoCache.Keys)
{
ZoneInfo zoneInfo = ExporterCacheManager.ZoneInfoCache.Find(zoneName);
if (zoneInfo != null)