本文整理汇总了C#中ExporterIFC.RelateSpatialElement方法的典型用法代码示例。如果您正苦于以下问题:C# ExporterIFC.RelateSpatialElement方法的具体用法?C# ExporterIFC.RelateSpatialElement怎么用?C# ExporterIFC.RelateSpatialElement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExporterIFC
的用法示例。
在下文中一共展示了ExporterIFC.RelateSpatialElement方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Export
//.........这里部分代码省略.........
{
currentTypeInfo.Style = styleHandle;
ExporterCacheManager.TypeObjectsCache.Register(typeId, false, currentTypeInfo);
}
}
string instanceGUID = ExporterIFCUtils.CreateGUID(element);
string origInstanceName = exporterIFC.GetName();
string instanceName = NamingUtil.GetNameOverride(element, origInstanceName);
string objectType = NamingUtil.CreateIFCObjectName(exporterIFC, element);
string instanceObjectType = NamingUtil.GetObjectTypeOverride(element, objectType);
string instanceDescription = NamingUtil.GetDescriptionOverride(element, null);
string instanceElemId = NamingUtil.CreateIFCElementId(element);
bool roomRelated = !FamilyExporterUtil.IsDistributionFlowElementSubType(exportType);
ElementId roomId = ElementId.InvalidElementId;
if (roomRelated)
{
roomId = setter.UpdateRoomRelativeCoordinates(element, out localPlacementToUse);
}
IFCAnyHandle instanceHandle = null;
if (FamilyExporterUtil.IsFurnishingElementSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFurnishingElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsDistributionFlowElementSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateDistributionFlowElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsEnergyConversionDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateEnergyConversionDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowFittingSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowFitting(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowMovingDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowMovingDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowSegmentSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowSegment(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowStorageDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowStorageDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowTerminalSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowTerminal(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowTreatmentDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowTreatmentDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (FamilyExporterUtil.IsFlowControllerSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowController(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
if (IFCAnyHandleUtil.IsNullOrHasNoValue(instanceHandle))
return;
if (roomId != ElementId.InvalidElementId)
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
productWrapper.AddElement(instanceHandle, setter, extraParams, false);
}
else
{
productWrapper.AddElement(instanceHandle, setter, extraParams, LevelUtil.AssociateElementToLevel(element));
}
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, element, extraParams, exporterIFC, localPlacementToUse, setter, productWrapper);
if (currentTypeInfo.IsValid())
ExporterCacheManager.TypeRelationsCache.Add(currentTypeInfo.Style, instanceHandle);
PropertyUtil.CreateInternalRevitPropertySets(exporterIFC, element, productWrapper);
ExporterCacheManager.MEPCache.Register(element, instanceHandle);
tr.Commit();
}
}
}
}
示例2: ExportFamilyInstanceAsMappedItem
//.........这里部分代码省略.........
//export Base Quantities.
PropertyUtil.CreateBeamColumnBaseQuantities(exporterIFC, instanceHandle, familyInstance, typeInfo);
// TODO: create PropertySet!
//createMemberPropertySet(exporter, pFamInst, pWrapper, extraParams);
PropertyUtil.CreateInternalRevitPropertySets(exporterIFC, familyInstance, wrapper);
break;
}
case IFCExportType.ExportPlateType:
{
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, exporterIFC,
localPlacement, setter, wrapper);
// TODO: create PropertySet!
//createPlatePropertySet(exporter, pFamInst, pWrapper, extraParams);
PropertyUtil.CreateInternalRevitPropertySets(exporterIFC, familyInstance, wrapper);
break;
}
case IFCExportType.ExportTransportElementType:
{
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
instanceHandle = IFCInstanceExporter.CreateTransportElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, rep, instanceElemId, null, null, null);
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
PropertyUtil.CreateInternalRevitPropertySets(exporterIFC, familyInstance, wrapper);
break;
}
case IFCExportType.ExportBuildingElementProxy:
default:
{
bool isBuildingElementProxy = (exportType == IFCExportType.ExportBuildingElementProxy);
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
if (!isBuildingElementProxy)
{
if (FamilyExporterUtil.IsDistributionControlElementSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateDistributionControlElement(file, instanceGUID,
ownerHistory, instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, rep, instanceElemId, null);
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
}
示例3: 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();
}
}
}
示例4: ExportCovering
/// <summary>
/// Exports an element as IFC covering.
/// </summary>
/// <param name="exporterIFC">
/// The ExporterIFC object.
/// </param>
/// <param name="element">
/// The element to be exported.
/// </param>
/// <param name="geometryElement">
/// The geometry element.
/// </param>
/// <param name="productWrapper">
/// The ProductWrapper.
/// </param>
public static void ExportCovering(ExporterIFC exporterIFC, Element element, GeometryElement geomElem, string ifcEnumType, ProductWrapper productWrapper)
{
bool exportParts = PartExporter.CanExportParts(element);
if (exportParts && !PartExporter.CanExportElementInPartExport(element, element.Level.Id, false))
return;
ElementType elemType = element.Document.GetElement(element.GetTypeId()) as ElementType;
IFCFile file = exporterIFC.GetFile();
using (IFCTransaction transaction = new IFCTransaction(file))
{
using (IFCPlacementSetter setter = IFCPlacementSetter.Create(exporterIFC, element))
{
using (IFCExtrusionCreationData ecData = new IFCExtrusionCreationData())
{
IFCAnyHandle prodRep = null;
if (!exportParts)
{
ecData.SetLocalPlacement(setter.GetPlacement());
ecData.PossibleExtrusionAxes = IFCExtrusionAxes.TryZ;
ElementId categoryId = CategoryUtil.GetSafeCategoryId(element);
BodyExporterOptions bodyExporterOptions = new BodyExporterOptions(true);
prodRep = RepresentationUtil.CreateAppropriateProductDefinitionShape(exporterIFC, element,
categoryId, geomElem, bodyExporterOptions, null, ecData);
if (IFCAnyHandleUtil.IsNullOrHasNoValue(prodRep))
{
ecData.ClearOpenings();
return;
}
}
string instanceGUID = GUIDUtil.CreateGUID(element);
string instanceName = NamingUtil.GetIFCName(element);
string instanceDescription = NamingUtil.GetDescriptionOverride(element, null);
string instanceObjectType = NamingUtil.GetObjectTypeOverride(element, exporterIFC.GetFamilyName());
string instanceElemId = NamingUtil.GetTagOverride(element, NamingUtil.CreateIFCElementId(element));
Toolkit.IFCCoveringType coveringType = GetIFCCoveringType(element, ifcEnumType);
IFCAnyHandle covering = IFCInstanceExporter.CreateCovering(file, instanceGUID, exporterIFC.GetOwnerHistoryHandle(),
instanceName, instanceDescription, instanceObjectType, setter.GetPlacement(), prodRep, instanceElemId, coveringType);
if (exportParts)
{
PartExporter.ExportHostPart(exporterIFC, element, covering, productWrapper, setter, setter.GetPlacement(), null);
}
Boolean containInSpace = false;
IFCAnyHandle localPlacementToUse = setter.GetPlacement();
// Assign ceiling to room/IfcSpace if it is bounding a single Room for FMHandOver view only
ExportOptionsCache exportOptionsCache = ExporterCacheManager.ExportOptionsCache;
if (String.Compare(exportOptionsCache.SelectedConfigName, "FMHandOverView") == 0)
{
if (ExporterCacheManager.CeilingSpaceRelCache.ContainsKey(element.Id))
{
IList<ElementId> roomlist = ExporterCacheManager.CeilingSpaceRelCache[element.Id];
// Process Ceiling to be contained in a Space only when it is exactly bounding one Space
if (roomlist.Count == 1)
{
productWrapper.AddElement(covering, setter, null, false);
// Modify the Ceiling placement to be relative to the Space that it bounds
IFCAnyHandle roomPlacement = IFCAnyHandleUtil.GetObjectPlacement(ExporterCacheManager.SpatialElementHandleCache.Find(roomlist[0]));
Transform relTrf = ExporterIFCUtils.GetRelativeLocalPlacementOffsetTransform(roomPlacement, localPlacementToUse);
Transform inverseTrf = relTrf.Inverse;
IFCAnyHandle relLocalPlacement = ExporterUtil.CreateAxis2Placement3D(file, inverseTrf.Origin, inverseTrf.BasisZ, inverseTrf.BasisX);
IFCAnyHandleUtil.SetAttribute(localPlacementToUse, "PlacementRelTo", roomPlacement);
GeometryUtil.SetRelativePlacement(localPlacementToUse, relLocalPlacement);
exporterIFC.RelateSpatialElement(roomlist[0], covering);
containInSpace = true;
}
}
}
// if not contained in Space, assign it to default containment in Level
if (!containInSpace)
productWrapper.AddElement(covering, setter, null, LevelUtil.AssociateElementToLevel(element));
if (!exportParts)
{
Ceiling ceiling = element as Ceiling;
if (ceiling != null)
//.........这里部分代码省略.........
示例5: ExportGenericInstance
//.........这里部分代码省略.........
bool isRoomRelated = IsRoomRelated(type);
IFCAnyHandle localPlacementToUse = setter.GetPlacement();
ElementId roomId = ElementId.InvalidElementId;
if (isRoomRelated)
{
roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
}
IFCAnyHandle instanceHandle = IFCAnyHandle.Create();
switch (type)
{
case IFCExportType.ExportColumnType:
{
instanceHandle = file.CreateColumn(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
break;
}
case IFCExportType.ExportMemberType:
{
instanceHandle = file.CreateMember(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
break;
}
case IFCExportType.ExportPlateType:
{
instanceHandle = file.CreatePlate(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
break;
}
default:
{
if (IsFurnishingElementSubType(type))
{
instanceHandle = file.CreateFurnishingElement(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsDistributionFlowElementSubType(type))
{
instanceHandle = file.CreateDistributionFlowElement(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsEnergyConversionDeviceSubType(type))
{
instanceHandle = file.CreateEnergyConversionDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowFittingSubType(type))
{
instanceHandle = file.CreateFlowFitting(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowMovingDeviceSubType(type))
{
instanceHandle = file.CreateFlowMovingDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowSegmentSubType(type))
{
instanceHandle = file.CreateFlowSegment(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowStorageDeviceSubType(type))
{
instanceHandle = file.CreateFlowStorageDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowTerminalSubType(type))
{
instanceHandle = file.CreateFlowTerminal(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowTreatmentDeviceSubType(type))
{
instanceHandle = file.CreateFlowTreatmentDevice(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
else if (IsFlowControllerSubType(type))
{
instanceHandle = file.CreateFlowController(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceElemId);
}
break;
}
}
if (instanceHandle.HasValue)
{
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
}
return instanceHandle;
}
示例6: ExportGutter
/// <summary>
/// Exports a gutter element.
/// </summary>
/// <param name="exporterIFC">The ExporterIFC object.</param>
/// <param name="element">The element.</param>
/// <param name="geometryElement">The geometry element.</param>
/// <param name="productWrapper">The ProductWrapper.</param>
public static void ExportGutter(ExporterIFC exporterIFC, Element element, GeometryElement geometryElement, ProductWrapper productWrapper)
{
IFCFile file = exporterIFC.GetFile();
using (IFCTransaction tr = new IFCTransaction(file))
{
using (IFCPlacementSetter setter = IFCPlacementSetter.Create(exporterIFC, element))
{
using (IFCExtrusionCreationData ecData = new IFCExtrusionCreationData())
{
ecData.SetLocalPlacement(setter.GetPlacement());
ElementId categoryId = CategoryUtil.GetSafeCategoryId(element);
BodyExporterOptions bodyExporterOptions = new BodyExporterOptions();
IFCAnyHandle bodyRep = BodyExporter.ExportBody(exporterIFC, element, categoryId, ElementId.InvalidElementId,
geometryElement, bodyExporterOptions, ecData).RepresentationHnd;
if (IFCAnyHandleUtil.IsNullOrHasNoValue(bodyRep))
{
if (ecData != null)
ecData.ClearOpenings();
return;
}
IFCAnyHandle origin = ExporterUtil.CreateAxis2Placement3D(file);
IFCAnyHandle repMap3dHnd = IFCInstanceExporter.CreateRepresentationMap(file, origin, bodyRep);
List<IFCAnyHandle> repMapList = new List<IFCAnyHandle>();
repMapList.Add(repMap3dHnd);
string elementTypeName = NamingUtil.CreateIFCObjectName(exporterIFC, element);
IFCAnyHandle style = IFCInstanceExporter.CreatePipeSegmentType(file, GUIDUtil.CreateGUID(element), exporterIFC.GetOwnerHistoryHandle(),
elementTypeName, null, null, null, repMapList, NamingUtil.CreateIFCElementId(element), elementTypeName, IFCPipeSegmentType.Gutter);
List<IFCAnyHandle> representationMaps = GeometryUtil.GetRepresentationMaps(style);
IFCAnyHandle mappedItem = ExporterUtil.CreateDefaultMappedItem(file, representationMaps[0]);
IList<IFCAnyHandle> representations = new List<IFCAnyHandle>();
representations.Add(mappedItem);
IFCAnyHandle bodyMappedItemRep = RepresentationUtil.CreateBodyMappedItemRep(exporterIFC,
element, categoryId, exporterIFC.Get3DContextHandle("Body"), representations);
if (IFCAnyHandleUtil.IsNullOrHasNoValue(bodyMappedItemRep))
return;
List<IFCAnyHandle> shapeReps = new List<IFCAnyHandle>();
shapeReps.Add(bodyMappedItemRep);
IFCAnyHandle boundingBoxRep = BoundingBoxExporter.ExportBoundingBox(exporterIFC, geometryElement, Transform.Identity);
if (boundingBoxRep != null)
shapeReps.Add(boundingBoxRep);
IFCAnyHandle prodRep = IFCInstanceExporter.CreateProductDefinitionShape(file, null, null, shapeReps);
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(element, out localPlacementToUse);
if (roomId == ElementId.InvalidElementId)
localPlacementToUse = ecData.GetLocalPlacement();
string name = NamingUtil.GetNameOverride(element, NamingUtil.GetIFCName(element));
string description = NamingUtil.GetDescriptionOverride(element, null);
string objectType = NamingUtil.GetObjectTypeOverride(element, elementTypeName);
string Tag = NamingUtil.GetTagOverride(element, NamingUtil.CreateIFCElementId(element));
IFCAnyHandle elemHnd = IFCInstanceExporter.CreateFlowSegment(file, GUIDUtil.CreateGUID(element),
exporterIFC.GetOwnerHistoryHandle(), name, description, objectType, localPlacementToUse, prodRep,
Tag);
if (roomId == ElementId.InvalidElementId)
{
productWrapper.AddElement(elemHnd, setter.GetLevelInfo(), ecData, true);
}
else
{
exporterIFC.RelateSpatialElement(roomId, elemHnd);
productWrapper.AddElement(elemHnd, setter.GetLevelInfo(), ecData, false);
}
OpeningUtil.CreateOpeningsIfNecessary(elemHnd, element, ecData, exporterIFC,
localPlacementToUse, setter, productWrapper);
}
tr.Commit();
}
}
}
示例7: ExportGenericInstance
//.........这里部分代码省略.........
if (ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "NominalDiameter", out nominalDiameterVal) != null)
nominalDiameter = nominalDiameterVal * scale;
if (ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "NominalLength", out nominalLengthVal) != null)
nominalLength = nominalLengthVal * scale;
instanceHandle = IFCInstanceExporter.CreateMechanicalFastener(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag,
nominalDiameter, nominalLength);
break;
}
case IFCExportType.ExportRailingType:
{
string strEnumType;
IFCExportType exportAs = ExporterUtil.GetExportType(exporterIFC, familyInstance, out strEnumType);
instanceHandle = IFCInstanceExporter.CreateRailing(file, instanceGUID, ownerHistory, instanceName, instanceDescription,
instanceObjectType, localPlacementToUse, productRepresentation, instanceTag,
RailingExporter.GetIFCRailingType(familyInstance, strEnumType));
break;
}
case IFCExportType.ExportSpace:
{
string instanceLongName = NamingUtil.GetLongNameOverride(familyInstance, NamingUtil.GetLongNameOverride(familyInstance, instanceName));
IFCInternalOrExternal internalOrExternal = CategoryUtil.IsElementExternal(familyInstance) ? IFCInternalOrExternal.External : IFCInternalOrExternal.Internal;
instanceHandle = IFCInstanceExporter.CreateSpace(file, instanceGUID, ownerHistory, instanceName, instanceDescription,
instanceObjectType, localPlacementToUse, productRepresentation, instanceLongName, IFCElementComposition.Element,
internalOrExternal, null);
break;
}
default:
{
if ((type == IFCExportType.ExportFurnishingElement) || IsFurnishingElementSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFurnishingElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportEnergyConversionDevice) || IsEnergyConversionDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateEnergyConversionDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowFitting) || IsFlowFittingSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowFitting(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowMovingDevice) || IsFlowMovingDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowMovingDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowSegment) || IsFlowSegmentSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowSegment(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowStorageDevice) || IsFlowStorageDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowStorageDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowTerminal) || IsFlowTerminalSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowTerminal(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowTreatmentDevice) || IsFlowTreatmentDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowTreatmentDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowController) || IsFlowControllerSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowController(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportDistributionFlowElement) || IsDistributionFlowElementSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateDistributionFlowElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportBuildingElementProxy) || (type == IFCExportType.ExportBuildingElementProxyType))
{
instanceHandle = IFCInstanceExporter.CreateBuildingElementProxy(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag, null);
}
break;
}
}
if (!IFCAnyHandleUtil.IsNullOrHasNoValue(instanceHandle))
{
bool containedInSpace = (roomId != ElementId.InvalidElementId);
bool associateToLevel = containedInSpace ? false : !isChildInContainer;
wrapper.AddElement(familyInstance, instanceHandle, setter, extraParams, associateToLevel);
if (containedInSpace)
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
}
return instanceHandle;
}
示例8: ExportFamilyInstanceAsMappedItem
//.........这里部分代码省略.........
break;
}
case IFCExportType.ExportPlateType:
{
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, exporterIFC,
localPlacement, setter, wrapper);
CategoryUtil.CreateMaterialAssociation(doc, exporterIFC, instanceHandle, typeInfo.MaterialId);
// TODO: create PropertySet!
//createPlatePropertySet(exporter, pFamInst, pWrapper, extraParams);
ExporterIFCUtils.CreateGenericElementPropertySet(exporterIFC, familyInstance, wrapper);
break;
}
case IFCExportType.ExportTransportElementType:
{
string operationTypeOpt = "";
IFCMeasureValue capByWeightOpt = IFCMeasureValue.Create();
IFCMeasureValue capByNumOpt = IFCMeasureValue.Create();
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
instanceHandle = file.CreateTransportElement(instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, rep, instanceElemId, operationTypeOpt, capByWeightOpt, capByNumOpt,
familyInstance, familySymbol);
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, true);
}
else
{
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);
}
示例9: ExportFamilyInstanceAsMappedItem
//.........这里部分代码省略.........
{
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, offsetTransform,
exporterIFC, localPlacement, setter, wrapper);
//export Base Quantities.
PropertyUtil.CreateBeamColumnBaseQuantities(exporterIFC, instanceHandle, familyInstance, typeInfo);
break;
}
case IFCExportType.ExportPlateType:
{
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, familyInstance, extraParams, offsetTransform,
exporterIFC, localPlacement, setter, wrapper);
break;
}
case IFCExportType.ExportTransportElementType:
{
IFCAnyHandle localPlacementToUse;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
IFCTransportElementType operationType = FamilyExporterUtil.GetTransportElementType(familyInstance);
double capacityByWeight = 0.0;
ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "IfcCapacityByWeight", out capacityByWeight);
double capacityByNumber = 0.0;
ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "IfcCapacityByNumber", out capacityByNumber);
instanceHandle = IFCInstanceExporter.CreateTransportElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, repHnd, instanceTag, operationType, capacityByWeight, capacityByNumber);
bool containedInSpace = (roomId != ElementId.InvalidElementId);
wrapper.AddElement(familyInstance, instanceHandle, setter, extraParams, !containedInSpace);
if (containedInSpace)
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
break;
}
//case IFCExportType.ExportBuildingElementProxy:
//case IFCExportType.ExportBuildingElementProxyType:
default:
{
if (IFCAnyHandleUtil.IsNullOrHasNoValue(instanceHandle))
{
bool isBuildingElementProxy =
((exportType == IFCExportType.ExportBuildingElementProxy) ||
(exportType == IFCExportType.ExportBuildingElementProxyType));
IFCAnyHandle localPlacementToUse = null;
ElementId roomId = setter.UpdateRoomRelativeCoordinates(familyInstance, out localPlacementToUse);
if (!isBuildingElementProxy && FamilyExporterUtil.IsDistributionControlElementSubType(exportType))
{
string ifcelementType = null;
ParameterUtil.GetStringValueFromElement(familyInstance.Id, "IfcElementType", out ifcelementType);
instanceHandle = IFCInstanceExporter.CreateDistributionControlElement(file, instanceGUID,
ownerHistory, instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, repHnd, instanceTag, ifcelementType);
}
else
{
instanceHandle = IFCInstanceExporter.CreateBuildingElementProxy(file, instanceGUID,
ownerHistory, instanceName, instanceDescription, instanceObjectType,
localPlacementToUse, repHnd, instanceTag, null);
}
示例10: ExportGenericInstance
//.........这里部分代码省略.........
break;
}
case IFCExportType.ExportDistributionElement:
{
instanceHandle = IFCInstanceExporter.CreateDistributionElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
break;
}
case IFCExportType.ExportFastenerType:
{
instanceHandle = IFCInstanceExporter.CreateFastener(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
break;
}
case IFCExportType.ExportMechanicalFastenerType:
{
double? nominalDiameter = null;
double? nominalLength = null;
double nominalDiameterVal, nominalLengthVal;
if (ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "NominalDiameter", out nominalDiameterVal))
nominalDiameter = nominalDiameterVal;
if (ParameterUtil.GetDoubleValueFromElementOrSymbol(familyInstance, "NominalLength", out nominalLengthVal))
nominalLength = nominalLengthVal;
instanceHandle = IFCInstanceExporter.CreateMechanicalFastener(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag,
nominalDiameter, nominalLength);
break;
}
default:
{
if ((type == IFCExportType.ExportFurnishingElement) || IsFurnishingElementSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFurnishingElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportEnergyConversionDevice) || IsEnergyConversionDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateEnergyConversionDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowFitting) || IsFlowFittingSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowFitting(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowMovingDevice) || IsFlowMovingDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowMovingDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowSegment) || IsFlowSegmentSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowSegment(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowStorageDevice) || IsFlowStorageDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowStorageDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowTerminal) || IsFlowTerminalSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowTerminal(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowTreatmentDevice) || IsFlowTreatmentDeviceSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowTreatmentDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportFlowController) || IsFlowControllerSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateFlowController(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if ((type == IFCExportType.ExportDistributionFlowElement) || IsDistributionFlowElementSubType(type))
{
instanceHandle = IFCInstanceExporter.CreateDistributionFlowElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
break;
}
}
if (!IFCAnyHandleUtil.IsNullOrHasNoValue(instanceHandle))
{
if (roomId == ElementId.InvalidElementId)
{
wrapper.AddElement(instanceHandle, setter, extraParams, !isChildInContainer);
}
else
{
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
wrapper.AddElement(instanceHandle, setter, extraParams, false);
}
}
return instanceHandle;
}
示例11: Export
//.........这里部分代码省略.........
typeDescription, applicableOccurence, null, repMapListOpt, typeTag, typeElementType, element, type);
if (!IFCAnyHandleUtil.IsNullOrHasNoValue(styleHandle))
{
productWrapper.RegisterHandleWithElementType(type, styleHandle, null);
currentTypeInfo.Style = styleHandle;
ExporterCacheManager.TypeObjectsCache.Register(typeId, false, currentTypeInfo);
}
}
string instanceGUID = GUIDUtil.CreateGUID(element);
string instanceName = NamingUtil.GetNameOverride(element, NamingUtil.GetIFCName(element));
string instanceObjectType = NamingUtil.GetObjectTypeOverride(element, NamingUtil.CreateIFCObjectName(exporterIFC, element));
string instanceDescription = NamingUtil.GetDescriptionOverride(element, null);
string instanceTag = NamingUtil.GetTagOverride(element, NamingUtil.CreateIFCElementId(element));
bool roomRelated = !FamilyExporterUtil.IsDistributionFlowElementSubType(exportType);
ElementId roomId = ElementId.InvalidElementId;
if (roomRelated)
{
roomId = setter.UpdateRoomRelativeCoordinates(element, out localPlacementToUse);
}
IFCAnyHandle instanceHandle = null;
if (FamilyExporterUtil.IsFurnishingElementSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFurnishingElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsDistributionFlowElementSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateDistributionFlowElement(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsEnergyConversionDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateEnergyConversionDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowFittingSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowFitting(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowMovingDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowMovingDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowSegmentSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowSegment(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowStorageDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowStorageDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowTerminalSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowTerminal(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowTreatmentDeviceSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowTreatmentDevice(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
else if (FamilyExporterUtil.IsFlowControllerSubType(exportType))
{
instanceHandle = IFCInstanceExporter.CreateFlowController(file, instanceGUID, ownerHistory,
instanceName, instanceDescription, instanceObjectType, localPlacementToUse, productRepresentation, instanceTag);
}
if (IFCAnyHandleUtil.IsNullOrHasNoValue(instanceHandle))
return false;
bool relatedToSpace = (roomId != ElementId.InvalidElementId);
productWrapper.AddElement(element, instanceHandle, setter, extraParams, !relatedToSpace);
if (relatedToSpace)
exporterIFC.RelateSpatialElement(roomId, instanceHandle);
OpeningUtil.CreateOpeningsIfNecessary(instanceHandle, element, extraParams, null,
exporterIFC, localPlacementToUse, setter, productWrapper);
if (currentTypeInfo.IsValid())
ExporterCacheManager.TypeRelationsCache.Add(currentTypeInfo.Style, instanceHandle);
if (bodyData != null && bodyData.MaterialIds.Count != 0)
CategoryUtil.CreateMaterialAssociations(exporterIFC, instanceHandle, bodyData.MaterialIds);
ExporterCacheManager.MEPCache.Register(element, instanceHandle);
tr.Commit();
}
}
}
return true;
}