本文整理汇总了C#中BIM.IFC.Utility.ProductWrapper.AddSite方法的典型用法代码示例。如果您正苦于以下问题:C# ProductWrapper.AddSite方法的具体用法?C# ProductWrapper.AddSite怎么用?C# ProductWrapper.AddSite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BIM.IFC.Utility.ProductWrapper
的用法示例。
在下文中一共展示了ProductWrapper.AddSite方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExportSiteBase
//.........这里部分代码省略.........
int latMin = ((int)latitudeInDeg); latitudeInDeg -= latMin; latitudeInDeg *= 60;
int latSec = ((int)latitudeInDeg); latitudeInDeg -= latSec; latitudeInDeg *= 1000000;
int latFracSec = ((int)latitudeInDeg);
latitude.Add(latDeg);
latitude.Add(latMin);
latitude.Add(latSec);
if (!exporterIFC.ExportAs2x2)
latitude.Add(latFracSec);
int longDeg = ((int)longitudeInDeg); longitudeInDeg -= longDeg; longitudeInDeg *= 60;
int longMin = ((int)longitudeInDeg); longitudeInDeg -= longMin; longitudeInDeg *= 60;
int longSec = ((int)longitudeInDeg); longitudeInDeg -= longSec; longitudeInDeg *= 1000000;
int longFracSec = ((int)longitudeInDeg);
longitude.Add(longDeg);
longitude.Add(longMin);
longitude.Add(longSec);
if (!exporterIFC.ExportAs2x2)
longitude.Add(longFracSec);
Transform siteSharedCoordinatesTrf = projLocation.GetTransform().Inverse;
if (!siteSharedCoordinatesTrf.IsIdentity)
{
double unscaledSiteElevation = ExporterCacheManager.ExportOptionsCache.IncludeSiteElevation ? 0.0 : unscaledElevation;
XYZ orig = siteSharedCoordinatesTrf.Origin- new XYZ(0, 0, unscaledSiteElevation);
orig = orig.Multiply(exporterIFC.LinearScale);
relativePlacement = ExporterUtil.CreateAxis2Placement3D(file, orig, siteSharedCoordinatesTrf.BasisZ, siteSharedCoordinatesTrf.BasisX);
}
}
// Get elevation for site.
double elevation = unscaledElevation * exporterIFC.LinearScale;
if (IFCAnyHandleUtil.IsNullOrHasNoValue(relativePlacement))
relativePlacement = ExporterUtil.CreateAxis2Placement3D(file);
IFCAnyHandle localPlacement = IFCInstanceExporter.CreateLocalPlacement(file, null, relativePlacement);
IFCAnyHandle ownerHistory = exporterIFC.GetOwnerHistoryHandle();
string siteObjectType = NamingUtil.CreateIFCObjectName(exporterIFC, element);
ProjectInfo projectInfo = doc.ProjectInformation;
Element mainSiteElement = (element != null) ? element : projectInfo;
bool exportSite = false;
string siteGUID = null;
string siteName = null;
string siteLongName = null;
string siteLandTitleNumber = null;
string siteDescription = null;
if (element != null)
{
if (IFCAnyHandleUtil.IsNullOrHasNoValue(siteHandle))
{
exportSite = true;
// We will use the Project Information site name as the primary name, if it exists.
siteGUID = GUIDUtil.CreateSiteGUID(doc, element);
siteName = NamingUtil.GetOverrideStringValue(projectInfo, "SiteName", NamingUtil.GetNameOverride(element, NamingUtil.GetIFCName(element)));
siteDescription = NamingUtil.GetDescriptionOverride(element, null);
siteObjectType = NamingUtil.GetObjectTypeOverride(element, siteObjectType);
// Look in site element for "IfcLongName" or project information for either "IfcLongName" or "SiteLongName".
siteLongName = NamingUtil.GetLongNameOverride(projectInfo, NamingUtil.GetLongNameOverride(element, null));
if (string.IsNullOrWhiteSpace(siteLongName))
siteLongName = NamingUtil.GetOverrideStringValue(projectInfo, "SiteLongName", null);
// Look in site element for "IfcLandTitleNumber" or project information for "SiteLandTitleNumber".
siteLandTitleNumber = NamingUtil.GetOverrideStringValue(element, "IfcLandTitleNumber", null);
if (string.IsNullOrWhiteSpace(siteLandTitleNumber))
siteLandTitleNumber = NamingUtil.GetOverrideStringValue(projectInfo, "SiteLandTitleNumber", null);
}
}
else
{
exportSite = true;
siteGUID = GUIDUtil.CreateProjectLevelGUID(doc, IFCProjectLevelGUIDType.Site);
siteName = NamingUtil.GetOverrideStringValue(projectInfo, "SiteName", "Default");
siteLongName = NamingUtil.GetLongNameOverride(projectInfo, NamingUtil.GetOverrideStringValue(projectInfo, "SiteLongName", null));
siteLandTitleNumber = NamingUtil.GetOverrideStringValue(projectInfo, "SiteLandTitleNumber", null);
// don't bother if we have nothing in the site whatsoever.
if ((latitude.Count == 0 || longitude.Count == 0) && IFCAnyHandleUtil.IsNullOrHasNoValue(relativePlacement) &&
string.IsNullOrWhiteSpace(siteLongName) && string.IsNullOrWhiteSpace(siteLandTitleNumber))
return;
}
if (exportSite)
{
siteHandle = IFCInstanceExporter.CreateSite(file, siteGUID, ownerHistory, siteName, siteDescription, siteObjectType, localPlacement,
siteRepresentation, siteLongName, Toolkit.IFCElementComposition.Element, latitude, longitude, elevation, siteLandTitleNumber, null);
productWrapper.AddSite(mainSiteElement, siteHandle);
exporterIFC.SetSite(siteHandle);
}
tr.Commit();
}
}