本文整理汇总了C#中ExporterIFC.AddType方法的典型用法代码示例。如果您正苦于以下问题:C# ExporterIFC.AddType方法的具体用法?C# ExporterIFC.AddType怎么用?C# ExporterIFC.AddType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExporterIFC
的用法示例。
在下文中一共展示了ExporterIFC.AddType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Export
/// <summary>
/// Exports a MEP family instance.
/// </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 IFCProductWrapper.
/// </param>
public static void Export(ExporterIFC exporterIFC, Element element, GeometryElement geometryElement, IFCProductWrapper productWrapper)
{
IFCFile file = exporterIFC.GetFile();
using (IFCTransaction tr = new IFCTransaction(file))
{
string ifcEnumType;
IFCExportType exportType = ExporterUtil.GetExportType(exporterIFC, element, out ifcEnumType);
using (IFCPlacementSetter setter = IFCPlacementSetter.Create(exporterIFC, element))
{
IFCAnyHandle localPlacementToUse = setter.GetPlacement();
IFCExtrusionCreationData extraParams = new IFCExtrusionCreationData();
ElementId catId = CategoryUtil.GetSafeCategoryId(element);
IFCSolidMeshGeometryInfo solidMeshInfo = ExporterIFCUtils.GetSolidMeshGeometry(exporterIFC, geometryElement, Transform.Identity);
IList<Solid> solids = solidMeshInfo.GetSolids();
IList<Mesh> polyMeshes = solidMeshInfo.GetMeshes();
bool tryToExportAsExtrusion = true;
if (solids.Count != 1 || polyMeshes.Count != 0)
tryToExportAsExtrusion = false;
IFCAnyHandle shapeRep = BodyExporter.ExportBody(element.Document.Application, exporterIFC, catId, solids, polyMeshes, tryToExportAsExtrusion, extraParams);
if (!shapeRep.HasValue)
return;
IList<IFCAnyHandle> shapeReps = new List<IFCAnyHandle>();
shapeReps.Add(shapeRep);
IFCAnyHandle productRepresentation = file.CreateProductDefinitionShape(IFCLabel.Create(), IFCLabel.Create(), shapeReps);
IFCAnyHandle ownerHistory = exporterIFC.GetOwnerHistoryHandle();
ElementId typeId = element.GetTypeId();
ElementType type = element.Document.get_Element(typeId) as ElementType;
IFCTypeInfo currentTypeInfo = exporterIFC.FindType(typeId, false);
bool found = currentTypeInfo.IsValid();
if (!found)
{
IFCLabel typeGUID = IFCLabel.CreateGUID(type);
IFCLabel origTypeName = NamingUtil.CreateIFCName(exporterIFC, -1);
IFCLabel typeName = NamingUtil.GetNameOverride(type, origTypeName);
IFCLabel typeObjectType = NamingUtil.CreateIFCObjectName(exporterIFC, type);
IFCLabel applicableOccurance = NamingUtil.GetObjectTypeOverride(type, typeObjectType);
IFCLabel typeDescription = NamingUtil.GetDescriptionOverride(type, IFCLabel.Create());
IFCLabel typeElemId = NamingUtil.CreateIFCElementId(type);
HashSet<IFCAnyHandle> propertySetsOpt = new HashSet<IFCAnyHandle>();
IList<IFCAnyHandle> repMapListOpt = new List<IFCAnyHandle>();
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);
//.........这里部分代码省略.........
示例2: ExportFamilyInstanceAsMappedItem
//.........这里部分代码省略.........
typeInfo.SetStyle(typeStyle);
// Transfer extraParams information for certain types.
if (typeStyle.HasValue)
{
if (((exportType == IFCExportType.ExportColumnType) && trySpecialColumnCreation) ||
(exportType == IFCExportType.ExportMemberType))
{
typeInfo.ScaledArea = extraParams.ScaledArea;
typeInfo.ScaledDepth = extraParams.ScaledLength;
typeInfo.ScaledInnerPerimeter = extraParams.ScaledInnerPerimeter;
typeInfo.ScaledOuterPerimeter = extraParams.ScaledOuterPerimeter;
}
}
}
else if (!creatingType && (trySpecialColumnCreation))
{
// still need to modify instance trf for columns.
trf.Origin += GetLevelOffsetForExtrudedColumns(exporterIFC, familyInstance, overrideLevelId, extraParams);
}
if (found && !typeInfo.GetStyle().HasValue)
{
typeInfo = currentTypeInfo;
}
// we'll pretend we succeeded, but we'll do nothing.
if (!typeInfo.GetStyle().HasValue && !typeInfo.Get2DMapHandle().HasValue && !typeInfo.Get3DMapHandle().HasValue)
return;
// add to the map, as long as we are not using range, not using instance geometry, and don't have extra openings.
if ((range == null) && !useInstanceGeometry && (extraParams.GetOpenings().Count == 0))
exporterIFC.AddType(familySymbol.Id, flipped, typeInfo);
Transform oldTrf = new Transform(trf);
XYZ scaledMapOrigin = XYZ.Zero;
trf = trf.Multiply(typeInfo.GetStyleTransform());
// create instance.
IList<IFCAnyHandle> shapeReps = new List<IFCAnyHandle>();
{
IFCAnyHandle contextOfItems2d = exporterIFC.Get2DContextHandle();
IFCAnyHandle contextOfItems3d = exporterIFC.Get3DContextHandle();
// for proxies, we store the IfcRepresentationMap directly since there is no style.
IList<IFCAnyHandle> repMapList = IFCGeometryUtils.GetRepresentationMaps(typeInfo.GetStyle());
int numReps = repMapList.Count;
IFCAnyHandle repMap2dHnd = typeInfo.Get2DMapHandle();
IFCAnyHandle repMap3dHnd = typeInfo.Get3DMapHandle();
if (!repMap3dHnd.HasValue && (numReps > 0))
repMap3dHnd = repMapList[0];
if (!repMap2dHnd.HasValue && (numReps > 1))
repMap2dHnd = repMapList[1];
if (repMap3dHnd.HasValue)
{
HashSet<IFCAnyHandle> representations = new HashSet<IFCAnyHandle>();
representations.Add(ExporterUtil.CreateDefaultMappedItem(file, repMap3dHnd, scaledMapOrigin));
IFCAnyHandle shapeRep = RepresentationUtil.CreateBodyMappedItemRep(exporterIFC, categoryId, contextOfItems3d, representations);
if (!shapeRep.HasValue)
return;
shapeReps.Add(shapeRep);
}