本文整理汇总了C#中DocProject.RegisterObjectsInScope方法的典型用法代码示例。如果您正苦于以下问题:C# DocProject.RegisterObjectsInScope方法的具体用法?C# DocProject.RegisterObjectsInScope怎么用?C# DocProject.RegisterObjectsInScope使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocProject
的用法示例。
在下文中一共展示了DocProject.RegisterObjectsInScope方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GenerateDocumentation
public static void GenerateDocumentation(
DocProject docProject,
string path,
Dictionary<long, SEntity> instances,
Dictionary<string, DocObject> mapEntity,
Dictionary<string, string> mapSchema,
DocModelView[] views,
string[] locales,
BackgroundWorker worker,
FormProgress formProgress)
{
// copy over static content * if it doesn't already exist *
string pathContent = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
if (pathContent.EndsWith(@"bin\x86\Debug")) // debugging
{
pathContent = System.IO.Path.GetDirectoryName(pathContent);
pathContent = System.IO.Path.GetDirectoryName(pathContent);
pathContent = System.IO.Path.GetDirectoryName(pathContent);
}
pathContent = System.IO.Path.Combine(pathContent, "content");
if(!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
CopyFiles(pathContent, path);
System.IO.Directory.CreateDirectory(Properties.Settings.Default.OutputPath + "\\diagrams");
Dictionary<string, DocPropertyEnumeration> mapPropEnum = new Dictionary<string, DocPropertyEnumeration>();
foreach (DocSection docSection in docProject.Sections)
{
foreach (DocSchema docSchema in docSection.Schemas)
{
foreach (DocPropertyEnumeration docEnum in docSchema.PropertyEnums)
{
mapPropEnum.Add(docEnum.Name, docEnum);
}
}
}
Dictionary<DocObject, string> mapNumber = new Dictionary<DocObject, string>(); // map items to section (e.g. "1.1.1.1")
string pathSchema = path + @"\schema";
// count progress
int progressTotal = docProject.Sections.Count + docProject.Annexes.Count + 2;
formProgress.SetProgressTotal(progressTotal);
int progressCurrent = 0;
// build list of locales in use
SortedList<string, string> listLocale = new SortedList<string, string>();
foreach (DocObject eachobj in mapEntity.Values)
{
if (eachobj.Localization != null)
{
foreach (DocLocalization doclocal in eachobj.Localization)
{
// only deal with languages, not regions
if (doclocal.Locale != null && doclocal.Locale.Length >= 2)
{
string language = doclocal.Locale.Substring(0, 2);
if (!listLocale.ContainsKey(language))
{
listLocale.Add(language, doclocal.Locale);
}
}
}
}
}
// build filter
Dictionary<DocObject, bool> included = null;
if (views != null)
{
included = new Dictionary<DocObject, bool>();
foreach (DocModelView docEachView in views)
{
docProject.RegisterObjectsInScope(docEachView, included);
}
}
Dictionary<DocObject, bool>[] dictionaryViews = new Dictionary<DocObject, bool>[docProject.ModelViews.Count];
for (int i = 0; i < docProject.ModelViews.Count; i++)
{
DocModelView docView = docProject.ModelViews[i];
if (included != null && included.ContainsKey(docView))
{
dictionaryViews[i] = new Dictionary<DocObject, bool>();
docProject.RegisterObjectsInScope(docProject.ModelViews[i], dictionaryViews[i]);
}
}
DocEntity docEntityRoot = docProject.GetDefinition("IfcRoot") as DocEntity;
//.........这里部分代码省略.........
示例2: DoExport
/// <summary>
/// Exports file according to format.
/// </summary>
/// <param name="filepath">File path to export.</param>
/// <param name="templates">Optional filter of templates to export.</param>
/// <param name="views">Optional filter of views to export.</param>
/// <param name="schemas">Optional filter of schemas to export.</param>
/// <param name="locales">Optional filter of locales to export.</param>
public static void DoExport(DocProject docProject, string filepath, DocModelView[] views, string[] locales, Dictionary<long, SEntity> instances)
{
string ext = System.IO.Path.GetExtension(filepath).ToLower();
Dictionary<DocObject, bool> included = null;
if (views != null)
{
included = new Dictionary<DocObject, bool>();
foreach (DocModelView docView in views)
{
docProject.RegisterObjectsInScope(docView, included);
}
}
switch (ext)
{
case ".ifc":
using (FormatSPF format = new FormatSPF(filepath, Schema.IFC.SchemaIfc.Types, instances))
{
format.InitHeaders(docProject.Annotations[0].Code, "IFC4");
Schema.IFC.IfcProject ifcProject = new IfcDoc.Schema.IFC.IfcProject();
Program.ExportIfc(ifcProject, docProject, included);
format.Save();
}
break;
case ".ifcxml":
using (FormatXML format = new FormatXML(filepath, typeof(Schema.IFC.IfcProject), "http://www.buildingsmart-tech.org/ifcXML/IFC4"))
{
Schema.IFC.IfcProject ifcProject = new IfcDoc.Schema.IFC.IfcProject();
Program.ExportIfc(ifcProject, docProject, included);
format.Instance = ifcProject;
format.Save();
}
break;
case ".mvdxml":
using (FormatXML format = new FormatXML(filepath, typeof(mvdXML), mvdXML.DefaultNamespace))
{
mvdXML mvd = new mvdXML();
Program.ExportMvd(mvd, docProject, included);
format.Instance = mvd;
format.Save();
}
break;
case ".cs":
using (FormatCSC format = new FormatCSC(filepath))
{
format.Instance = docProject;
format.Save();
}
break;
case ".exp":
// use currently visible model view(s)
using (FormatEXP format = new FormatEXP(filepath))
{
format.Instance = docProject;
format.ModelViews = views;
format.Save();
}
break;
case ".xsd":
// use currently visible model view(s)
using (FormatXSD format = new FormatXSD(filepath))
{
format.Instance = docProject;
format.ModelViews = views;
format.Save();
}
break;
case ".xml": // Express XSD Configuration
using (FormatXML format = new FormatXML(filepath, typeof(Schema.CNF.configuration), null, Schema.CNF.SchemaCNF.Prefixes))
{
Schema.CNF.configuration config = new Schema.CNF.configuration();
Program.ExportCnf(config, docProject, views, included);
format.Instance = config;
format.Save();
}
break;
case ".txt":
// pick locale
using (FormatCSV format = new FormatCSV(filepath))
{
format.Instance = docProject;
format.Locales = locales;
format.Save();
}
//.........这里部分代码省略.........
示例3: DoExport
/// <summary>
/// Exports file according to format.
/// </summary>
/// <param name="filepath">File path to export.</param>
/// <param name="templates">Optional filter of templates to export.</param>
/// <param name="views">Optional filter of views to export.</param>
/// <param name="schemas">Optional filter of schemas to export.</param>
/// <param name="locales">Optional filter of locales to export.</param>
public static void DoExport(DocProject docProject, string filepath, DocModelView[] views, string[] locales, Dictionary<long, SEntity> instances)
{
string ext = System.IO.Path.GetExtension(filepath).ToLower();
Dictionary<DocObject, bool> included = null;
if (views != null)
{
included = new Dictionary<DocObject, bool>();
foreach (DocModelView docView in views)
{
docProject.RegisterObjectsInScope(docView, included);
}
}
// special case for zip files -- determine based on special naming; make configurable in future
Type typeExport = null;
if (filepath.EndsWith("-psd.zip"))
{
typeExport = typeof(DocPropertySet);
}
else if(filepath.EndsWith("-qto.zip"))
{
typeExport = typeof(DocQuantitySet);
}
switch (ext)
{
case ".ifc":
using (FormatSPF format = new FormatSPF(filepath, Schema.IFC.SchemaIfc.Types, instances))
{
string filename = System.IO.Path.GetFileName(filepath);
format.InitHeaders(filename, "IFC4"); // we always use IFC4 (not later schema) for exporting templates, as that is the earliest version required.
Schema.IFC.IfcProject ifcProject = new IfcDoc.Schema.IFC.IfcProject();
Program.ExportIfc(ifcProject, docProject, included);
format.Save();
}
break;
case ".ifcxml":
using (FormatXML format = new FormatXML(filepath, typeof(Schema.IFC.IfcProject), "http://www.buildingsmart-tech.org/ifcXML/IFC4"))
{
Schema.IFC.IfcProject ifcProject = new IfcDoc.Schema.IFC.IfcProject();
Program.ExportIfc(ifcProject, docProject, included);
format.Instance = ifcProject;
format.Save();
}
break;
case ".mvdxml":
using (FormatXML format = new FormatXML(filepath, typeof(mvdXML), mvdXML.DefaultNamespace))
{
mvdXML mvd = new mvdXML();
Program.ExportMvd(mvd, docProject, included);
format.Instance = mvd;
format.Save();
}
break;
case ".cs":
using (FormatCSC format = new FormatCSC(filepath))
{
format.Instance = docProject;
format.Save();
}
break;
case ".exp":
// use currently visible model view(s)
using (FormatEXP format = new FormatEXP(filepath))
{
format.Instance = docProject;
format.ModelViews = views;
format.Save();
}
break;
case ".xsd":
// use currently visible model view(s)
using (FormatXSD format = new FormatXSD(filepath))
{
format.Instance = docProject;
format.ModelViews = views;
format.Save();
}
break;
case ".xml": // Express XSD Configuration
using (FormatXML format = new FormatXML(filepath, typeof(Schema.CNF.configuration), null, Schema.CNF.SchemaCNF.Prefixes))
{
Schema.CNF.configuration config = new Schema.CNF.configuration();
Program.ExportCnf(config, docProject, views, included);
format.Instance = config;
//.........这里部分代码省略.........