本文整理汇总了C#中ExporterIFC.AddTypeRelation方法的典型用法代码示例。如果您正苦于以下问题:C# ExporterIFC.AddTypeRelation方法的具体用法?C# ExporterIFC.AddTypeRelation怎么用?C# ExporterIFC.AddTypeRelation使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExporterIFC
的用法示例。
在下文中一共展示了ExporterIFC.AddTypeRelation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Export
//.........这里部分代码省略.........
IFCAnyHandle styleHandle = FamilyExporterUtil.ExportGenericType(file, exportType, ifcEnumType, typeGUID, ownerHistory, typeName,
typeDescription, applicableOccurance, propertySetsOpt, repMapListOpt, typeElemId, typeName, element, type);
if (styleHandle.HasValue)
{
currentTypeInfo.SetStyle(styleHandle);
exporterIFC.AddType(typeId, false, currentTypeInfo);
}
}
IFCLabel instanceGUID = IFCLabel.CreateGUID(element);
IFCLabel origInstanceName = NamingUtil.CreateIFCName(exporterIFC, -1);
IFCLabel instanceName = NamingUtil.GetNameOverride(element, origInstanceName);
IFCLabel objectType = NamingUtil.CreateIFCObjectName(exporterIFC, element);
IFCLabel instanceObjectType = NamingUtil.GetObjectTypeOverride(element, objectType);
IFCLabel instanceDescription = NamingUtil.GetDescriptionOverride(element, IFCLabel.Create());
IFCLabel instanceElemId = NamingUtil.CreateIFCElementId(element);
bool roomRelated = !FamilyExporterUtil.IsDistributionFlowElementSubType(exportType);
ElementId roomId = ElementId.InvalidElementId;
if (roomRelated)
{
roomId = setter.UpdateRoomRelativeCoordinates(element, out localPlacementToUse);
}
IFCAnyHandle instanceHandle = IFCAnyHandle.Create();
if (FamilyExporterUtil.IsFurnishingElementSubType(exportType))
{
instanceHandle = file.CreateFurnishingElement(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsDistributionFlowElementSubType(exportType))
{
instanceHandle = file.CreateDistributionFlowElement(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsEnergyConversionDeviceSubType(exportType))
{
instanceHandle = file.CreateEnergyConversionDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowFittingSubType(exportType))
{
instanceHandle = file.CreateFlowFitting(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowMovingDeviceSubType(exportType))
{
instanceHandle = file.CreateFlowMovingDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowSegmentSubType(exportType))
{
instanceHandle = file.CreateFlowSegment(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowStorageDeviceSubType(exportType))
{
instanceHandle = file.CreateFlowStorageDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowTerminalSubType(exportType))
{
instanceHandle = file.CreateFlowTerminal(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowTreatmentDeviceSubType(exportType))
{
instanceHandle = file.CreateFlowTreatmentDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowControllerSubType(exportType))
{
instanceHandle = file.CreateFlowController(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
if (!instanceHandle.HasValue)
return;
if (roomId != ElementId.InvalidElementId)
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
productWrapper.AddElement(instanceHandle, setter, extraParams, false);
}
else
{
productWrapper.AddElement(instanceHandle, setter, extraParams, true);
}
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, element, extraParams, exporterIFC, localPlacementToUse, setter, productWrapper);
if (currentTypeInfo.IsValid())
exporterIFC.AddTypeRelation(currentTypeInfo.GetStyle(), instanceHandle);
ExporterIFCUtils.CreateGenericElementPropertySet(exporterIFC, element, productWrapper);
tr.Commit();
}
}
}
示例2: ExportFamilyInstanceAsMappedItem
//.........这里部分代码省略.........
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
ExporterIFCUtils.CreateGenericElementPropertySet(exporterIFC, familyInstance, wrapper);
break;
}
case IFCExportType.ExportBuildingElementProxy:
default:
{
bool isBuildingElementProxy = (exportType == IFCExportType.ExportBuildingElementProxy);
if (!isBuildingElementProxy)
{
if (FamilyExporterUtil.IsDistributionControlElementSubType(exportType))
{
IFCLabel controlElementId = IFCLabel.Create();
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
instanceHandle = file.CreateDistributionControlElement(instanceGUID,
ownerHistory, instanceName, instanceDescription, instanceObjectType,
localPlacement, rep, instanceElemId, controlElementId);
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, exporterIFC,
localPlacement, setter, wrapper);
}
else if (!instanceHandle.HasValue)
{
isBuildingElementProxy = true;
}
}
if (isBuildingElementProxy)
{
IFCElementComposition proxyType = IFCElementComposition.Element;
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
instanceHandle = file.CreateBuildingElementProxy(instanceGUID,
ownerHistory, instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, rep, instanceElemId, proxyType);
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, exporterIFC,
localPlacement, setter, wrapper);
}
ExporterIFCUtils.CreateGenericElementPropertySet(exporterIFC, familyInstance, wrapper);
break;
}
}
if (instanceHandle.HasValue)
{
if (doorWindowInfo != null)
{
if (doorWindowInfo.GetOpening().HasValue)
{
IFCLabel relGUID = IFCLabel.CreateGUID();
file.CreateRelFillsElement(relGUID, ownerHistory, IFCLabel.Create(), IFCLabel.Create(), doorWindowInfo.GetOpening(), instanceHandle);
}
else if (doorWindowInfo.NeedsOpening)
{
bool added = doorWindowInfo.SetDelayedFamilyInstance(instanceHandle, localPlacement, doorWindowInfo.AssignedLevelId);
if (added)
exporterIFC.RegisterDoorWindowForOpeningUpdate(doorWindowInfo);
else
{
// we need to fill a later opening.
exporterIFC.RegisterDoorWindowForUncreatedOpening(familyInstance.Id, instanceHandle);
}
}
}
if (typeInfo.GetStyle().HasValue)
exporterIFC.AddTypeRelation(typeInfo.GetStyle(), instanceHandle);
}
}
}