mirror of
https://github.com/jeremytammik/RevitSdkSamples.git
synced 2026-09-10 05:30:47 +00:00
added Revit 2022 SDK minus except *rvt and *rfa
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Media.Imaging;
|
||||
using Autodesk.Revit.Attributes;
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.Migration;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS
|
||||
{
|
||||
/// <summary>
|
||||
/// Main external application class.
|
||||
/// A generic menu generator application.
|
||||
/// Read a text file and add entries to the Revit menu.
|
||||
/// Any number and location of entries is supported.
|
||||
/// </summary>
|
||||
[Transaction(TransactionMode.Manual)]
|
||||
[Regeneration(RegenerationOption.Manual)]
|
||||
public class Application : IExternalApplication
|
||||
{
|
||||
#region IExternalApplication Members
|
||||
|
||||
/// <summary>
|
||||
/// Implement this method to implement the external application which should be called when
|
||||
/// Revit is about to exit,Any documents must have been closed before this method is called.
|
||||
/// </summary>
|
||||
/// <param name="application">
|
||||
/// An object that is passed to the external application
|
||||
/// which contains the controlled application.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// Return the status of the external application.
|
||||
/// A result of Succeeded means that the external application successfully shutdown.
|
||||
/// Cancelled can be used to signify that the user cancelled the external operation at
|
||||
/// some point.
|
||||
/// If false is returned then the Revit user should be warned of the failure of the external
|
||||
/// application to shut down correctly.
|
||||
/// </returns>
|
||||
public Result OnShutdown(UIControlledApplication application)
|
||||
{
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Implement this method to implement the external application which should be called when
|
||||
/// Revit starts before a file or default template is actually loaded.
|
||||
/// </summary>
|
||||
/// <param name="application">
|
||||
/// An object that is passed to the external application
|
||||
/// which contains the controlled application.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// Return the status of the external application.
|
||||
/// A result of Succeeded means that the external application successfully started.
|
||||
/// Cancelled can be used to signify that the user cancelled the external operation at
|
||||
/// some point.
|
||||
/// If false is returned then Revit should inform the user that the external application
|
||||
/// failed to load and the release the internal reference.
|
||||
/// </returns>
|
||||
public Result OnStartup(UIControlledApplication application)
|
||||
{
|
||||
// Register this addon to Revit.
|
||||
var ribbonPanel = application.CreateRibbonPanel("Tutorials");
|
||||
var assemblyPath = typeof(Application).Assembly.Location;
|
||||
var pushButton = ribbonPanel.AddItem(new PushButtonData("CloudAPI Tutorial", "CloudAPI Tutorial", assemblyPath,
|
||||
"Revit.SDK.Samples.CloudAPISample.CS.RunSampleCommand")) as PushButton;
|
||||
pushButton.Enabled = true;
|
||||
|
||||
pushButton.LargeImage =
|
||||
new BitmapImage(new Uri(Path.Combine(Path.GetDirectoryName(assemblyPath) ?? string.Empty, "icon.ico")));
|
||||
pushButton.AvailabilityClassName = " Revit.SDK.Samples.CloudAPISample.CS.RunSampleCommand";
|
||||
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// </summary>
|
||||
[Transaction(TransactionMode.Manual)]
|
||||
public class RunSampleCommand : IExternalCommand, IExternalCommandAvailability
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
|
||||
{
|
||||
// Start to run samples.
|
||||
var engine = new SampleEngine(commandData.Application);
|
||||
engine.RegisterSample("Model Migration", new MigrationToBim360());
|
||||
engine.Run();
|
||||
|
||||
return Result.Succeeded;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RevitAddIns>
|
||||
|
||||
<AddIn Type="Application">
|
||||
<Name>CloudAPISample</Name>
|
||||
<Assembly>CloudAPISample.dll</Assembly>
|
||||
<ClientId>0d8d1633-bd9e-4e6e-9188-1b84a55b1f3a</ClientId>
|
||||
<FullClassName>Revit.SDK.Samples.CloudAPISample.CS.Application</FullClassName>
|
||||
<VendorId>ADSK</VendorId>
|
||||
<VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
|
||||
</AddIn>
|
||||
</RevitAddIns>
|
||||
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{8A4EA589-A668-4824-9C1D-56B6A53DE304}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>CloudAPISample</RootNamespace>
|
||||
<AssemblyName>CloudAPISample</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<DocumentationFile>bin\Debug\CloudAPISample.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<DocumentationFile>bin\Release\CloudAPISample.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<DocumentationFile>bin\Debug\CloudAPISample.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<DocumentationFile>bin\Release\CloudAPISample.XML</DocumentationFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>4.7</RequiredTargetFramework>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Application.cs" />
|
||||
<Compile Include="Coroutine\Coroutine.cs" />
|
||||
<Compile Include="Coroutine\CoroutineScheduler.cs" />
|
||||
<Compile Include="Samples\Migration\IMigrationModel.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SampleContext.cs" />
|
||||
<Compile Include="SampleEngine.cs" />
|
||||
<Compile Include="Samples\Migration\MigrationToBim360.cs" />
|
||||
<Compile Include="Samples\Migration\UIMigrationViewModel.cs" />
|
||||
<Compile Include="View\ViewInputMigrationInfo.xaml.cs">
|
||||
<DependentUpon>ViewInputMigrationInfo.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\ViewSamplePortal.xaml.cs">
|
||||
<DependentUpon>ViewSamplePortal.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="View\ViewMigrationToBim360.xaml.cs">
|
||||
<DependentUpon>ViewMigrationToBim360.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="View\ViewInputMigrationInfo.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="View\ViewSamplePortal.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="View\ViewMigrationToBim360.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Resources\icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(SolutionDir)VSProps\SDKSamples.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>set FILEFORSAMPLEREG="$(SolutionDir)..\..\..\..\Regression\API\SDKSamples\UpdateSampleDllForRegression.pl"
|
||||
if exist %25FILEFORSAMPLEREG%25 perl %25FILEFORSAMPLEREG%25 $(ProjectExt) "$(ProjectPath)" "$(TargetPath)" "$(SolutionDir)"</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,67 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Collections;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.Coroutine
|
||||
{
|
||||
/// <summary>
|
||||
/// Represent a coroutine instance.
|
||||
/// </summary>
|
||||
public class Coroutine
|
||||
{
|
||||
private readonly IEnumerator innerEnumerator;
|
||||
|
||||
/// <summary>
|
||||
/// Create a coroutine with a enumerator
|
||||
/// </summary>
|
||||
/// <param name="coroutine"></param>
|
||||
public Coroutine(IEnumerator coroutine)
|
||||
{
|
||||
innerEnumerator = coroutine;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if this coroutine is finished.
|
||||
/// </summary>
|
||||
public bool IsFinished { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The previous coroutine in this double linked list
|
||||
/// </summary>
|
||||
public Coroutine Previous { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The next coroutine in this double linked list
|
||||
/// </summary>
|
||||
public Coroutine Next { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Execute one step of the enumerator
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool ExecuteOnStep()
|
||||
{
|
||||
return innerEnumerator.MoveNext();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.Coroutine
|
||||
{
|
||||
/// <summary>
|
||||
/// A simple coroutine scheduler.
|
||||
/// This coroutine scheduler allows for control over the execution regime
|
||||
/// of a set of coroutines.
|
||||
/// </summary>
|
||||
public class CoroutineScheduler
|
||||
{
|
||||
private static CoroutineScheduler instance;
|
||||
|
||||
private Coroutine coroutines;
|
||||
|
||||
private System.Windows.Threading.DispatcherTimer dispatcherTimer;
|
||||
|
||||
private CoroutineScheduler()
|
||||
{
|
||||
}
|
||||
|
||||
private void Attach()
|
||||
{
|
||||
dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
|
||||
dispatcherTimer.Tick += new EventHandler(Update);
|
||||
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
|
||||
dispatcherTimer.Start();
|
||||
}
|
||||
|
||||
private void Detach()
|
||||
{
|
||||
dispatcherTimer?.Stop();
|
||||
dispatcherTimer = null;
|
||||
}
|
||||
|
||||
private void AddCoroutine(Coroutine coroutine)
|
||||
{
|
||||
if (coroutines != null)
|
||||
{
|
||||
coroutine.Next = coroutines;
|
||||
coroutines.Previous = coroutine;
|
||||
}
|
||||
|
||||
coroutines = coroutine;
|
||||
}
|
||||
|
||||
private void RemoveCoroutine(Coroutine coroutine)
|
||||
{
|
||||
if (coroutines == coroutine)
|
||||
{
|
||||
coroutines = coroutines.Next;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (coroutine.Next != null)
|
||||
{
|
||||
coroutine.Previous.Next = coroutine.Next;
|
||||
coroutine.Next.Previous = coroutine.Previous;
|
||||
}
|
||||
else if (coroutine.Previous != null)
|
||||
{
|
||||
coroutine.Previous.Next = null;
|
||||
}
|
||||
}
|
||||
|
||||
coroutine.Previous = null;
|
||||
coroutine.Next = null;
|
||||
}
|
||||
|
||||
private void Update(object sender, EventArgs eventArgs)
|
||||
{
|
||||
UpdateAllCoroutines();
|
||||
}
|
||||
|
||||
private void UpdateAllCoroutines()
|
||||
{
|
||||
var iter = coroutines;
|
||||
|
||||
while (iter != null)
|
||||
{
|
||||
if (!iter.ExecuteOnStep())
|
||||
{
|
||||
iter.IsFinished = true;
|
||||
RemoveCoroutine(iter);
|
||||
}
|
||||
|
||||
iter = iter.Next;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attach a scheduler to render loop.
|
||||
/// Must be called before using coroutine.
|
||||
/// </summary>
|
||||
public static void Run()
|
||||
{
|
||||
if (instance != null)
|
||||
return;
|
||||
instance = new CoroutineScheduler();
|
||||
instance.Attach();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Stop a scheduler. All coroutines will be released.
|
||||
/// </summary>
|
||||
public static void Stop()
|
||||
{
|
||||
instance?.Detach();
|
||||
instance = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Start a new coroutine with an enumerator
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Coroutine StartCoroutine(IEnumerator enumerator)
|
||||
{
|
||||
if (enumerator == null || instance == null) return null;
|
||||
|
||||
var coroutine = new Coroutine(enumerator);
|
||||
instance.AddCoroutine(coroutine);
|
||||
return coroutine;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("CloudAPISample")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("CloudAPISample")]
|
||||
[assembly: AssemblyCopyright("Copyright © Autodesk, Inc. 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("8a4ea589-a668-4824-9c1d-56b6a53de304")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,364 @@
|
||||
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1041\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
|
||||
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
|
||||
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
|
||||
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f55\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f56\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
|
||||
{\f58\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f59\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f60\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f61\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
|
||||
{\f62\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f63\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
|
||||
{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
|
||||
{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\f420\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f421\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
|
||||
{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}
|
||||
{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}
|
||||
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
|
||||
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
|
||||
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
|
||||
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
|
||||
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
|
||||
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
|
||||
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
|
||||
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
|
||||
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\ctextone\ctint255\cshade255\red0\green0\blue0;}{\*\defchp
|
||||
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 \snext0 \sqformat \spriority0 Normal;}{\*
|
||||
\cs10 \additive \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
|
||||
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1041\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1041 \snext11 \ssemihidden \sunhideused
|
||||
Normal Table;}}{\*\rsidtbl \rsid1866427\rsid2307816\rsid2319408\rsid3947694\rsid4276242\rsid4740325\rsid4742953\rsid5246527\rsid5798294\rsid8796932\rsid9190895\rsid9309740\rsid9579605\rsid12069807\rsid12330875\rsid13064861\rsid14242682\rsid15677956
|
||||
\rsid16654583\rsid16666058}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\author Will Gu}{\operator Mikako Harada}{\creatim\yr2020\mo10\dy28\hr10\min56}
|
||||
{\revtim\yr2021\mo4\dy8\hr17\min24}{\version10}{\edmins151}{\nofpages2}{\nofwords565}{\nofchars3223}{\nofcharsws3781}{\vern7}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
|
||||
\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
|
||||
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot8796932 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1
|
||||
\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
|
||||
\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
|
||||
\fs22\lang1033\langfe2052\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Application:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 CloudAPISample\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Revit Platform:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 All\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Revit Version:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 202}{
|
||||
\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid12330875 \hich\af1\dbch\af31505\loch\f1 2}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 .0\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 First Released For:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 202}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid12330875 \hich\af1\dbch\af31505\loch\f1 2}{\rtlch\fcs1
|
||||
\af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 .0\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Programming Language:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 C#\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Skill Level:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 High\line }{
|
||||
\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Category:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Basics\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0
|
||||
\b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Type:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 ExternalApplication\line \line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 Subject:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Revit Cloud API Usage Sample\line }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 Summary:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 \line This is a sample helps third party developers understand how to use Revit Cloud API}{\rtlch\fcs1 \ai\af0\afs20
|
||||
\ltrch\fcs0 \i\f0\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Classes:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694
|
||||
\par }\pard \ltrpar\ql \fi180\li180\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin180\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.Application}{
|
||||
\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1 RunSample
|
||||
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
SampleContext
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
SampleEngine
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
Coroutine.Coroutine
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.S\hich\af1\dbch\af31505\loch\f1 DK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932
|
||||
\hich\af1\dbch\af31505\loch\f1 Coroutine.CoroutineScheduler
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
Migration.DefaultMigrationModel
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
Migration.FolderLocation
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
Migration.IMigrationModel
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.S\hich\af1\dbch\af31505\loch\f1 DK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932
|
||||
\hich\af1\dbch\af31505\loch\f1 Migration.MigrationRule
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
Migration.MigrationToBim360
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
View.ViewMigrationToBim360
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Revit.SDK.Samples.CloudAPISample.CS.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1
|
||||
View.ViewSampleP}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8796932 \hich\af31506\dbch\af31505\loch\f31506 ortal}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid8796932\charrsid8796932
|
||||
\par }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\lang1036\langfe2052\langnp1036\insrsid3947694
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Project Files:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694
|
||||
\hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \ai\af1\afs20 \ltrch\fcs0 \i\f1\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932\charrsid8796932 \hich\af1\dbch\af31505\loch\f1 Application}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid8796932 \hich\af1\dbch\af31505\loch\f1 .cs}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf2\insrsid3947694
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1
|
||||
It contains the class Application which inherits from the interface IExternalApplication and creates the UI ribbon components when Revit starts}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid9309740 .}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid12069807 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid12069807\charrsid12069807 \hich\af1\dbch\af31505\loch\f1 RunSample}{
|
||||
\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid12069807\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 Command}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid12069807 \hich\af1\dbch\af31505\loch\f1
|
||||
which inherits from the interface IExternalCommand and is expected to be triggered by the ribbon button above.
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 SampleContext.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 SampleContext }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 which }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 is the b}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 ase class for each }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 case}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 context in samples portal}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid9309740\charrsid9309740 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 SampleEngine.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 SampleEngine }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 which }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 manages all SampleContext.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 Coroutine.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 Coroutine}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 which }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 r}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 epresent}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242
|
||||
\hich\af1\dbch\af31505\loch\f1 s}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 a coroutine instance}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242
|
||||
\hich\af1\dbch\af31505\loch\f1 that can execute asynchronously within WPF}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 CoroutineScheduler.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid4276242 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 C\hich\af1\dbch\af31505\loch\f1 oroutineScheduler}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 which }{\rtlch\fcs1
|
||||
\af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 allows for control over the execution regime}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1
|
||||
\af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 a set of coroutines.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid16654583\charrsid16654583 \hich\af1\dbch\af31505\loch\f1 UIMigrationViewModel}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 .cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid4276242 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid9190895\charrsid16654583 \hich\af1\dbch\af31505\loch\f1 UIMigrationViewModel}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9190895 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 which}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242
|
||||
{\*\bkmkstart OLE_LINK9}{\*\bkmkstart OLE_LINK10}\hich\af1\dbch\af31505\loch\f1 provide}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid2319408 \hich\af1\dbch\af31505\loch\f1 s}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242
|
||||
\hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid16654583 \hich\af1\dbch\af31505\loch\f1 user }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid4276242 \hich\af1\dbch\af31505\loch\f1
|
||||
BIM360 project information and configuration}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 for this sample{\*\bkmkend OLE_LINK9}{\*\bkmkend OLE_LINK10}.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 IMigrationModel.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid1866427 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 interface}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 IMigrationModel}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 which }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4276242 \hich\af1\dbch\af31505\loch\f1 should\hich\af1\dbch\af31505\loch\f1
|
||||
be implemented by any view model used in MigrationToBim360 sample}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9309740 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740 \hich\af1\dbch\af31505\loch\f1 MigrationToBim360.cs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf2\insrsid9309740
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid1866427 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 It contains the class }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid1866427 \hich\af1\dbch\af31505\loch\f1 MigrationToBim360}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid1866427 \hich\af1\dbch\af31505\loch\f1 gives user}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid1866427\charrsid1866427 \hich\af1\dbch\af31505\loch\f1 a sample }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid1866427 \hich\af1\dbch\af31505\loch\f1 about}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid1866427\charrsid1866427 \hich\af1\dbch\af31505\loch\f1 how to migrate A360 Teams project to BIM360 Docs}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid9309740\charrsid9309740 .
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Description:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 This sample provides following funct\hich\af1\dbch\af31505\loch\f1 ionalities.
|
||||
\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 -\tab \hich\af1\dbch\af31505\loch\f1 Let user }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid5246527 \hich\af1\dbch\af31505\loch\f1 upload models to BIM360 Docs with initiate API}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 .
|
||||
\par -\tab \hich\af1\dbch\af31505\loch\f1 Let user }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid5246527 \hich\af1\dbch\af31505\loch\f1 read and write model\hich\f1 \rquote \loch\f1 s link info with link API.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1
|
||||
\par -\tab \hich\af1\dbch\af31505\loch\f1 Let user }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid5246527 \hich\af1\dbch\af31505\loch\f1 migrate models from A360 Team to BIM360 Docs}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 .
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \ab\af1\afs20 \ltrch\fcs0 \b\f1\fs20\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 Instructions:}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf2\insrsid3947694 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
|
||||
\f0\fs20\cf2\insrsid3947694
|
||||
\par }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 Open Revit appl\hich\af1\dbch\af31505\loch\f1 ication and execute the command.
|
||||
\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 1.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid2307816\charrsid2307816 \hich\af1\dbch\af31505\loch\f1 Step 1. Download}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid2307816 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li765\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin765\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid2307816 \hich\af1\dbch\af31505\loch\f1 a}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 . }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1
|
||||
Manually download cloud models from anywhere, such as BIM 360 Team via eTransmit package}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9579605\charrsid9579605 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694
|
||||
\par }\pard \ltrpar\ql \li765\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin765\itap0\pararsid9579605 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid2307816 \hich\af1\dbch\af31505\loch\f1 b}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid2307816\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 . }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 \hich\f1 Click \'93...\'94\loch\f1
|
||||
to select a folder location}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid2307816\charrsid2307816 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li765\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin765\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 Expected result: }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid15677956 \hich\af1\dbch\af31505\loch\f1 All models which user wan}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9579605 \hich\af1\dbch\af31505\loch\f1 ts}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956
|
||||
\hich\af1\dbch\af31505\loch\f1 to migrate have been placed in destination folder}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 .
|
||||
\par
|
||||
\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 2.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid2307816\charrsid2307816 \hich\af1\dbch\af31505\loch\f1 Step 2. }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9579605\charrsid9579605 \hich\af1\dbch\af31505\loch\f1 Config}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid3947694\charrsid5246527 .
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1080\itap0\pararsid2307816 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 a.\tab }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 \hich\f1 Click \'93\loch\f1 \hich\f1 Configuration\'94\loch\f1 to input target cloud information}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid9579605\charrsid9579605 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1080\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 b.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid16666058\charrsid16666058 {\*\bkmkstart OLE_LINK1}{\*\bkmkstart OLE_LINK2}\hich\af1\dbch\af31505\loch\f1 \hich\f1 Click \'93\loch\f1 \hich\f1 +\'94\loch\f1 to add rules to the target folder for models with a specific patte
|
||||
\hich\af1\dbch\af31505\loch\f1 rn. The first rule is assigned the highest priority}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid9579605\charrsid9579605 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
{\*\bkmkend OLE_LINK1}{\*\bkmkend OLE_LINK2}
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\tx1080\wrapdefault\faauto\rin0\lin1080\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 c.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 A model with no matching pattern will be uploaded to the folder specified by the last rule in the list}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid15677956\charrsid15677956 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 Expected result: }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid4740325 \hich\af1\dbch\af31505\loch\f1 Account Id and Project Id\hich\af1\dbch\af31505\loch\f1 have been given correctly}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 .}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4740325 \hich\af1\dbch\af31505\loch\f1 \hich\f1 Rules can cover all models in destination folder. A \'93\loch\f1 \hich\f1 *\'94\loch\f1 pattern is recommended to given in lowest priority.}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 3.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid15677956\charrsid15677956 \hich\af1\dbch\af31505\loch\f1 Step 3. Upload}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\tx1080\wrapdefault\faauto\rin0\lin1080\itap0 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 a.\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 Ensure you are logged in to your Autodesk Account}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 .
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1080\itap0\pararsid15677956 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 b.\tab }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 \hich\f1 Click \'93\loch\f1 \hich\f1 Upload\'94\hich\af1\dbch\af31505\loch\f1 to upload models to the target cloud folder}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid3947694\charrsid5246527 .}{\rtlch\fcs1 \ai\af1\afs20 \ltrch\fcs0 \i\f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid15677956 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid4740325 \hich\af1\dbch\af31505\loch\f1 Expected result: }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4740325 \hich\af1\dbch\af31505\loch\f1 All models in destination folder have been uploaded to target }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid4742953 \hich\af1\dbch\af31505\loch\f1 location}{\rtlch\fcs1
|
||||
\af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid3947694\charrsid4740325 \hich\af1\dbch\af31505\loch\f1 . }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid4740325
|
||||
\par }\pard \ltrpar\ql \li360\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid15677956 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \fi-360\li360\ri0\nowidctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0\pararsid15677956 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956 \hich\af1\dbch\af31505\loch\f1 4}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid15677956\charrsid5246527 .\tab }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid15677956 \hich\af1\dbch\af31505\loch\f1 Step 4. Reload linked models}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
|
||||
\f1\fs20\cf19\insrsid15677956 .}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \fi-360\li1080\ri0\nowidctlpar\tx1080\wrapdefault\faauto\rin0\lin1080\itap0\pararsid4742953 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid5246527 \hich\af1\dbch\af31505\loch\f1 a.\tab }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid16666058\charrsid16666058 \hich\af1\dbch\af31505\loch\f1 \hich\f1 Click \'93\loch\f1 \hich\f1 Refresh\'94\hich\af1\dbch\af31505\loch\f1 to direct links to the correct model in the cloud}{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid5246527 .}{\rtlch\fcs1 \ai\af1\afs20 \ltrch\fcs0 \i\f1\fs20\cf19\insrsid15677956\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid15677956 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid4740325 \hich\af1\dbch\af31505\loch\f1 Expected result: }{\rtlch\fcs1 \af1\afs20
|
||||
\ltrch\fcs0 \f1\fs20\cf19\insrsid4740325 \hich\af1\dbch\af31505\loch\f1 All link data of models uploaded to target project has pointed to correct cloud model.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\cf19\insrsid15677956\charrsid4740325
|
||||
\hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\ul\cf19\insrsid15677956\charrsid4740325
|
||||
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \ai\af1\afs20 \ltrch\fcs0 \i\f1\fs20\cf19\insrsid3947694\charrsid5246527
|
||||
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\insrsid3947694
|
||||
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f
|
||||
7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd
|
||||
ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d
|
||||
7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b
|
||||
d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52
|
||||
fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71
|
||||
b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b
|
||||
fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567
|
||||
9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd
|
||||
79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf
|
||||
5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2
|
||||
d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1
|
||||
738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68
|
||||
2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac
|
||||
5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a
|
||||
b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9
|
||||
493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2
|
||||
be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f
|
||||
f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64
|
||||
7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e
|
||||
b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4
|
||||
6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd
|
||||
f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d
|
||||
7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39
|
||||
4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf
|
||||
1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a
|
||||
faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2
|
||||
67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9
|
||||
416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27
|
||||
1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b
|
||||
8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4
|
||||
8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65
|
||||
2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36
|
||||
3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e
|
||||
3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985
|
||||
0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000
|
||||
0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000
|
||||
000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000
|
||||
7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000
|
||||
000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000
|
||||
000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000}
|
||||
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||
{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
|
||||
\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
|
||||
\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;
|
||||
\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;
|
||||
\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
|
||||
\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
|
||||
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
|
||||
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
|
||||
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
|
||||
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
|
||||
\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
|
||||
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
|
||||
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
|
||||
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
|
||||
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
|
||||
\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
|
||||
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
|
||||
\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
|
||||
\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
|
||||
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
|
||||
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
|
||||
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
|
||||
\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
|
||||
\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
|
||||
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
|
||||
\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
|
||||
\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
|
||||
\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
|
||||
\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
|
||||
\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
|
||||
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
|
||||
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
|
||||
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
|
||||
02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000c090
|
||||
019fbd2cd701feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000105000000000000}}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Windows.Controls;
|
||||
using Autodesk.Revit.UI;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS
|
||||
{
|
||||
/// <summary>
|
||||
/// Base class for each sample context in samples portal.
|
||||
/// </summary>
|
||||
public abstract class SampleContext
|
||||
{
|
||||
/// <summary>
|
||||
/// The root node for this sample
|
||||
/// </summary>
|
||||
public UserControl View { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gives each sample the ability to access Revit application
|
||||
/// </summary>
|
||||
public UIApplication Application { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Terminate this sample context, resource allocated should be released here
|
||||
/// </summary>
|
||||
public abstract void Terminate();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Autodesk.Revit.UI;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.Coroutine;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.View;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS
|
||||
{
|
||||
internal class SampleEngine : IDisposable
|
||||
{
|
||||
private readonly UIApplication application;
|
||||
private readonly List<SampleContext> allContext = new List<SampleContext>();
|
||||
private ViewSamplePortal viewPortal;
|
||||
|
||||
public SampleEngine(UIApplication app)
|
||||
{
|
||||
application = app;
|
||||
viewPortal = new ViewSamplePortal(app);
|
||||
|
||||
CoroutineScheduler.Run();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Dispose()
|
||||
{
|
||||
foreach (var context in allContext)
|
||||
{
|
||||
context.Terminate();
|
||||
context.Application = null;
|
||||
}
|
||||
|
||||
allContext.Clear();
|
||||
viewPortal?.Close();
|
||||
viewPortal = null;
|
||||
|
||||
CoroutineScheduler.Stop();
|
||||
}
|
||||
|
||||
public void RegisterSample(string name, SampleContext sampleContext)
|
||||
{
|
||||
sampleContext.Application = application;
|
||||
allContext.Add(sampleContext);
|
||||
|
||||
viewPortal.AddTab(name, sampleContext.View);
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
viewPortal.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.Migration
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a folder on BIM360 site.
|
||||
/// </summary>
|
||||
public class FolderLocation
|
||||
{
|
||||
/// <summary>
|
||||
/// Folder's name
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Folder's urn
|
||||
/// </summary>
|
||||
public string Urn { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates where to migrate models
|
||||
/// </summary>
|
||||
public class MigrationRule
|
||||
{
|
||||
/// <summary>
|
||||
/// The search string to match against the names of files, but it doesn't support regular expression.
|
||||
/// </summary>
|
||||
public string Pattern { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The target folder on BIM360
|
||||
/// </summary>
|
||||
public FolderLocation Target { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Interface of a view model for migration sample.
|
||||
/// </summary>
|
||||
public interface IMigrationModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates the target BIM360 account guid
|
||||
/// </summary>
|
||||
string AccountGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates the target BIM360 project guid
|
||||
/// </summary>
|
||||
string ProjectGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provide all candidate folders which we can upload to.
|
||||
/// </summary>
|
||||
ObservableCollection<FolderLocation> AvailableFolders { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The collection for <see cref="MigrationRule" />.
|
||||
/// Items with lower index in collection have higher priority.
|
||||
/// </summary>
|
||||
ObservableCollection<MigrationRule> Rules { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,268 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Windows;
|
||||
using Autodesk.Revit.DB;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.View;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.Migration
|
||||
{
|
||||
/// <summary>
|
||||
/// This is a sample shows how to migrate A360 Teams project to BIM360 Docs
|
||||
/// with Revit Cloud API
|
||||
/// </summary>
|
||||
public class MigrationToBim360 : SampleContext
|
||||
{
|
||||
/// <summary>
|
||||
/// File name to store models' guid info.
|
||||
/// </summary>
|
||||
public const string FModelsGuid = "modelsguid.json";
|
||||
|
||||
/// <summary>
|
||||
/// File name to store linked models' info
|
||||
/// </summary>
|
||||
public const string FLinksInfo = "linkinfo.json";
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor
|
||||
/// </summary>
|
||||
public MigrationToBim360()
|
||||
{
|
||||
Model = new UIMigrationViewModel();
|
||||
View = new ViewMigrationToBim360(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Model for migration case
|
||||
/// </summary>
|
||||
public IMigrationModel Model { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void Terminate()
|
||||
{
|
||||
View = null;
|
||||
}
|
||||
|
||||
private IEnumerable<RevitLinkType> GetLinkInstances(Document document)
|
||||
{
|
||||
var links = new FilteredElementCollector(document);
|
||||
var classFilter = new ElementClassFilter(typeof(RevitLinkType));
|
||||
links.WherePasses(classFilter);
|
||||
foreach (var link in links)
|
||||
if (link is RevitLinkType revitLinkType)
|
||||
yield return revitLinkType;
|
||||
}
|
||||
|
||||
private FolderLocation GetTargetFolderUrn(IList<MigrationRule> rules, string directory, string model)
|
||||
{
|
||||
foreach (var rule in rules)
|
||||
{
|
||||
var models = Directory.GetFiles(directory, rule.Pattern, SearchOption.TopDirectoryOnly);
|
||||
if (models.Contains(model))
|
||||
return rule.Target;
|
||||
}
|
||||
|
||||
// If the given model can not match any pattern in rules, use root folder by default.
|
||||
return Model.AvailableFolders.Last();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// User coroutine to update UI during processing.
|
||||
/// </summary>
|
||||
public IEnumerator Upload(string directory, Guid accountId, Guid projectId,
|
||||
ObservableCollection<MigrationRule> modelRules)
|
||||
{
|
||||
var view = (ViewMigrationToBim360) View;
|
||||
if (!Directory.Exists(directory))
|
||||
{
|
||||
view.UpdateUploadingProgress("Directory doesn't exist.", 0);
|
||||
yield break;
|
||||
}
|
||||
|
||||
view.UpdateUploadingProgress("Ready to start.", 2);
|
||||
|
||||
var models = Directory.GetFiles(directory, "*.rvt", SearchOption.AllDirectories);
|
||||
var count = 0;
|
||||
|
||||
var ops = new OpenOptions
|
||||
{
|
||||
OpenForeignOption = OpenForeignOption.DoNotOpen,
|
||||
DetachFromCentralOption = DetachFromCentralOption.DetachAndPreserveWorksets
|
||||
};
|
||||
|
||||
// Open all documents and analyze if document has links.
|
||||
// If so, save the relationship info into "mapLocalModelPathToLinksName"
|
||||
var mapLocalModelPathToLinksName = new Dictionary<string, List<string>>();
|
||||
foreach (var model in models)
|
||||
{
|
||||
var name = Path.GetFileName(model);
|
||||
var progress = count++ * 100 / models.Length;
|
||||
var modelpath = ModelPathUtils.ConvertUserVisiblePathToModelPath(model);
|
||||
view.UpdateUploadingProgress($"Analyzing {name}", progress);
|
||||
yield return null;
|
||||
|
||||
try
|
||||
{
|
||||
var doc = Application.Application.OpenDocumentFile(modelpath, ops);
|
||||
var links = new List<string>();
|
||||
foreach (var linkInstance in GetLinkInstances(doc)) links.Add(linkInstance.Name);
|
||||
|
||||
if (links.Count > 0) mapLocalModelPathToLinksName[model] = links;
|
||||
doc.Close(false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var msg = $"Failed to analyze {name} - {e.Message}";
|
||||
view.UpdateUploadingProgress(msg, progress);
|
||||
MessageBox.Show(msg);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// All link info should be dump to local file in case something wrong happens during uploading process
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
var jsonString = serializer.Serialize(mapLocalModelPathToLinksName);
|
||||
|
||||
File.WriteAllText(FLinksInfo, jsonString);
|
||||
|
||||
view.UpdateUploadingProgress("Analyzing finished", 100);
|
||||
|
||||
// Begin Uploading
|
||||
count = 0;
|
||||
var mapModelsNameToGuid = new Dictionary<string, string>();
|
||||
foreach (var model in models)
|
||||
{
|
||||
var name = Path.GetFileName(model);
|
||||
var progress = count++ * 100 / models.Length;
|
||||
var modelpath = ModelPathUtils.ConvertUserVisiblePathToModelPath(model);
|
||||
view.UpdateUploadingProgress($"Uploading {name}", progress);
|
||||
yield return null;
|
||||
|
||||
try
|
||||
{
|
||||
var doc = Application.Application.OpenDocumentFile(modelpath, ops);
|
||||
var folderUrn = GetTargetFolderUrn(modelRules, directory, model)?.Urn;
|
||||
doc.SaveAsCloudModel(accountId, projectId, folderUrn, $"Migrated_{Path.GetFileName(model)}");
|
||||
var modelPath = doc.GetCloudModelPath();
|
||||
mapModelsNameToGuid.Add(name, $"{modelPath.GetProjectGUID()},{modelPath.GetModelGUID()}");
|
||||
doc.Close(false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var msg = $"Failed to upload {name} - {e.Message}";
|
||||
view.UpdateUploadingProgress(msg, progress);
|
||||
MessageBox.Show(msg);
|
||||
yield break;
|
||||
}
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
jsonString = serializer.Serialize(mapModelsNameToGuid);
|
||||
File.WriteAllText(FModelsGuid, jsonString);
|
||||
|
||||
view.UpdateUploadingProgress("Uploading finished", 100);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Try to open each cloud model and reload if they have links,
|
||||
/// making that point to cloud path.
|
||||
/// </summary>
|
||||
/// <param name="directory">Transit directory where cloud models exist</param>
|
||||
/// <param name="projectId">not used</param>
|
||||
/// <returns></returns>
|
||||
public IEnumerator ReloadLinks(string directory, Guid projectId)
|
||||
{
|
||||
var view = (ViewMigrationToBim360) View;
|
||||
if (!Directory.Exists(directory))
|
||||
{
|
||||
view.UpdateReloadingProgress("Directory doesn't exist.", 0);
|
||||
yield break;
|
||||
}
|
||||
|
||||
view.UpdateReloadingProgress("Ready to start.", 2);
|
||||
|
||||
var ops = new OpenOptions();
|
||||
var transOp = new TransactWithCentralOptions();
|
||||
var swcOptions = new SynchronizeWithCentralOptions();
|
||||
var count = 0;
|
||||
|
||||
// Read mapping info
|
||||
var jsonString = File.ReadAllText(FLinksInfo);
|
||||
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
var mapLocalModelPathToLinksName = serializer.Deserialize<Dictionary<string, List<string>>>(jsonString);
|
||||
jsonString = File.ReadAllText(FModelsGuid);
|
||||
var mapModelsNameToGuid = serializer.Deserialize<Dictionary<string, string>>(jsonString);
|
||||
|
||||
// Try to open each cloud model and reload if they have links, making that point to cloud path.
|
||||
foreach (var kvp in mapLocalModelPathToLinksName)
|
||||
{
|
||||
var localPath = kvp.Key;
|
||||
var name = Path.GetFileName(localPath);
|
||||
var guids = mapModelsNameToGuid[name].Split(',');
|
||||
var hostModelPath =
|
||||
ModelPathUtils.ConvertCloudGUIDsToCloudPath("US", Guid.Parse(guids[0]), Guid.Parse(guids[1]));
|
||||
|
||||
var progress = count++ * 100 / mapLocalModelPathToLinksName.Count();
|
||||
view.UpdateReloadingProgress($"Reloading {name}", progress);
|
||||
yield return null;
|
||||
|
||||
try
|
||||
{
|
||||
var doc = Application.Application.OpenDocumentFile(hostModelPath, ops,
|
||||
new DefaultOpenFromCloudCallback());
|
||||
foreach (var linkInstance in GetLinkInstances(doc))
|
||||
if (mapModelsNameToGuid.TryGetValue(linkInstance.Name, out var sLinkedGuids))
|
||||
{
|
||||
guids = mapModelsNameToGuid[linkInstance.Name].Split(',');
|
||||
var linkModelPath =
|
||||
ModelPathUtils.ConvertCloudGUIDsToCloudPath("US", Guid.Parse(guids[0]),
|
||||
Guid.Parse(guids[1]));
|
||||
linkInstance.LoadFrom(linkModelPath, new WorksetConfiguration());
|
||||
}
|
||||
|
||||
doc.SynchronizeWithCentral(transOp, swcOptions);
|
||||
doc.Close(false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
var msg = $"Failed to reload {name} - {e.Message}";
|
||||
view.UpdateUploadingProgress(msg, progress);
|
||||
MessageBox.Show(msg);
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
view.UpdateReloadingProgress("Reloading finished", 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.Migration
|
||||
{
|
||||
/// <summary>
|
||||
/// Provide user BIM360 project information and configuration for this sample.
|
||||
/// Can be modified via ViewInputMigrationInfo dialog
|
||||
/// </summary>
|
||||
public class UIMigrationViewModel : IMigrationModel, INotifyPropertyChanged
|
||||
{
|
||||
private string accountGuid;
|
||||
|
||||
private string projectGuid;
|
||||
|
||||
/// <inheritdoc />
|
||||
public ObservableCollection<FolderLocation> AvailableFolders { get; set; } =
|
||||
new ObservableCollection<FolderLocation>();
|
||||
|
||||
/// <inheritdoc />
|
||||
public ObservableCollection<MigrationRule> Rules { get; set; } = new ObservableCollection<MigrationRule>();
|
||||
|
||||
#region INotifyPropertyChanged Members
|
||||
|
||||
/// <inheritdoc />
|
||||
public string AccountGuid
|
||||
{
|
||||
get => accountGuid;
|
||||
set
|
||||
{
|
||||
if (accountGuid != value)
|
||||
{
|
||||
accountGuid = value;
|
||||
NotifyPropertyChanged("AccountGuid");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public string ProjectGuid
|
||||
{
|
||||
get => projectGuid;
|
||||
set
|
||||
{
|
||||
if (projectGuid != value)
|
||||
{
|
||||
projectGuid = value;
|
||||
NotifyPropertyChanged("ProjectGuid");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void NotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicates target folder has been changed in this case.
|
||||
/// </summary>
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
<Window x:Class="Revit.SDK.Samples.CloudAPISample.CS.View.ViewInputMigrationInfo"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
ResizeMode="NoResize"
|
||||
d:DesignHeight="600" d:DesignWidth="800"
|
||||
Height="480" Width="360">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="50" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Grid.Row="0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="90" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="10" Grid.Row="0">
|
||||
<Label Content="Target Account" />
|
||||
<TextBox Width="Auto"
|
||||
Text="{Binding Path=DataContext.Model.AccountGuid, RelativeSource={RelativeSource AncestorType={x:Type Window }}}" />
|
||||
<Label Content="Target Project" />
|
||||
<TextBox
|
||||
Text="{Binding Path=DataContext.Model.ProjectGuid, RelativeSource={RelativeSource AncestorType={x:Type Window }}}" />
|
||||
</StackPanel>
|
||||
<ListView Margin="10" Name="lvFolders" Grid.Column="0" Grid.Row="1"
|
||||
ItemsSource="{Binding Path=DataContext.Model.AvailableFolders, RelativeSource={RelativeSource AncestorType={x:Type Window }}}">
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Header="Name" Width="100">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Name}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="Urn" Width="130">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Urn}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<StackPanel Margin="0,10,0,10" Grid.Column="1" Grid.Row="1">
|
||||
<StackPanel.Resources>
|
||||
<Style TargetType="{x:Type Button}">
|
||||
<Setter Property="Margin" Value="5" />
|
||||
</Style>
|
||||
</StackPanel.Resources>
|
||||
<Button Click="OnBtnAddFolder_Click">Add a folder</Button>
|
||||
<Button Click="OnBtnRemoveFolder_Click">Remove</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Grid Grid.Row="1" Margin="10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Button}">
|
||||
<Setter Property="Margin" Value="5" />
|
||||
<Setter Property="Height" Value="20" />
|
||||
<Setter Property="Width" Value="70" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Button Click="OnBtnImport_Click" Grid.Column="1">Import</Button>
|
||||
<Button Click="OnBtnExport_Click" Grid.Column="2">Export</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Windows;
|
||||
using Microsoft.Win32;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.Migration;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.View
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for ViewInputMigrationInfo.xaml
|
||||
/// </summary>
|
||||
public partial class ViewInputMigrationInfo : Window
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor for ViewSamplePortal
|
||||
/// ViewSamplePortal is a child window aggregating all sample case with tabs
|
||||
/// </summary>
|
||||
public ViewInputMigrationInfo(MigrationToBim360 sampleContext)
|
||||
{
|
||||
DataContext = sampleContext;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void OnBtnAddFolder_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
((MigrationToBim360) DataContext).Model.AvailableFolders.Add(new FolderLocation());
|
||||
}
|
||||
|
||||
private void OnBtnRemoveFolder_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var model = ((MigrationToBim360) DataContext).Model;
|
||||
if (lvFolders.SelectedIndex >= 0 && lvFolders.SelectedIndex < model.AvailableFolders.Count)
|
||||
model.AvailableFolders.RemoveAt(lvFolders.SelectedIndex);
|
||||
}
|
||||
|
||||
private void OnBtnImport_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var openFileDialog = new OpenFileDialog {Filter = "Json file (*.json)|*.json|All files (*.*)|*.*"};
|
||||
if (openFileDialog.ShowDialog() == true)
|
||||
{
|
||||
var model = ((MigrationToBim360) DataContext).Model;
|
||||
var jsonString = File.ReadAllText(openFileDialog.FileName);
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
var info = serializer.Deserialize<SerializableProjectInfo>(jsonString);
|
||||
|
||||
model.AccountGuid = info.AccountGuid;
|
||||
model.ProjectGuid = info.ProjectGuid;
|
||||
model.AvailableFolders.Clear();
|
||||
foreach (var folder in info.AvailableFolders) model.AvailableFolders.Add(folder);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBtnExport_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var saveFileDialog = new SaveFileDialog {Filter = "Json file (*.json)|*.json"};
|
||||
if (saveFileDialog.ShowDialog() == true)
|
||||
{
|
||||
var model = ((MigrationToBim360) DataContext).Model;
|
||||
var info = new SerializableProjectInfo
|
||||
{
|
||||
AccountGuid = model.AccountGuid,
|
||||
ProjectGuid = model.ProjectGuid,
|
||||
AvailableFolders = model.AvailableFolders.ToArray()
|
||||
};
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
var jsonString = serializer.Serialize(info);
|
||||
File.WriteAllText(saveFileDialog.FileName, jsonString);
|
||||
}
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
internal class SerializableProjectInfo
|
||||
{
|
||||
[DataMember] public string AccountGuid { get; set; }
|
||||
|
||||
[DataMember] public string ProjectGuid { get; set; }
|
||||
|
||||
[DataMember] public FolderLocation[] AvailableFolders { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
<UserControl x:Class="Revit.SDK.Samples.CloudAPISample.CS.View.ViewMigrationToBim360"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid Background="#FFE5E5E5">
|
||||
<Grid.Resources>
|
||||
<Style TargetType="{x:Type Control}" x:Key="Space">
|
||||
<Setter Property="Margin" Value="5" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Margin" Value="0,5,0,5" />
|
||||
</Style>
|
||||
<Style TargetType="TextBox">
|
||||
<Setter Property="Height" Value="24" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="10" Grid.Column="0">
|
||||
<Label Content="Step 1. Download" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||
<Label Content="Models" />
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Grid.Column="0" Name="tbLocalFolder" />
|
||||
<Button Width="20" Grid.Column="1" Click="OnBtnBrowseDirectory_Click">...</Button>
|
||||
</Grid>
|
||||
<Button Click="OnBtnReveal_Click">Reveal in explorer</Button>
|
||||
<TextBlock Margin="10" TextWrapping="Wrap">
|
||||
1. Manually download cloud models from anywhere, such as BIM 360 Team via eTransmit package.<LineBreak /><LineBreak />
|
||||
2. Click “...” to select a folder location.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Margin="10" Grid.Column="1">
|
||||
<Label Content="Step 2. Config" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||
<Button Click="OnBtnConfig_Click">Configuration</Button>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label Grid.Column="0" Content="Rules" />
|
||||
<Button Width="20" Grid.Column="2" Click="OnBtnRemoveRule_Click">-</Button>
|
||||
<Button Width="20" Grid.Column="3" Click="OnBtnAddRule_Click">+</Button>
|
||||
</Grid>
|
||||
<ListView MinHeight="120" Name="lvRules"
|
||||
ItemsSource="{Binding Path=DataContext.Model.Rules, RelativeSource={RelativeSource AncestorType={x:Type UserControl }}}">
|
||||
<ListView.View>
|
||||
<GridView>
|
||||
<GridViewColumn Header="Pattern" Width="100">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Pattern}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
<GridViewColumn Header="Target Folder" Width="130">
|
||||
<GridViewColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
ItemsSource="{Binding Path=DataContext.Model.AvailableFolders,
|
||||
RelativeSource={RelativeSource AncestorType={x:Type UserControl }}}"
|
||||
DisplayMemberPath="Name"
|
||||
SelectedValue="{Binding Target}" />
|
||||
</DataTemplate>
|
||||
</GridViewColumn.CellTemplate>
|
||||
</GridViewColumn>
|
||||
</GridView>
|
||||
</ListView.View>
|
||||
</ListView>
|
||||
<TextBlock Margin="10" TextWrapping="Wrap">
|
||||
1. Click “Configuration” to input target cloud information.<LineBreak /><LineBreak />
|
||||
2. Click “+” to add rules to the target folder for models with a specific pattern. The first rule is assigned the highest priority.
|
||||
<LineBreak /><LineBreak />
|
||||
3. A model with no matching pattern will be uploaded to the folder specified by the last rule in the list.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<Grid Margin="10" Grid.Column="2">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0">
|
||||
<Label Content="Step 3. Upload" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||
<Button Click="OnBtnUpload_Click">Upload</Button>
|
||||
<Label Content="Progress" Name="lbUploadStatus" />
|
||||
<ProgressBar Height="20" Name="pbUploading" />
|
||||
<TextBlock Margin="10" TextWrapping="Wrap">
|
||||
1. Ensure you are logged in to your Autodesk Account.<LineBreak /><LineBreak />
|
||||
2. Click “Upload” to upload models to the target cloud folder.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="1">
|
||||
<Label Content="Step 4. Reload" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||
<Button Click="OnBtnRefresh_Click">Refresh</Button>
|
||||
<Label Content="Progress" Name="lbReloadStatus" />
|
||||
<ProgressBar Height="20" Name="pbReloading" />
|
||||
<TextBlock Margin="10" TextWrapping="Wrap">
|
||||
1. Click “Refresh” to direct links to the correct model in the cloud.
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.Coroutine;
|
||||
using Revit.SDK.Samples.CloudAPISample.CS.Migration;
|
||||
using MessageBox = System.Windows.MessageBox;
|
||||
using UserControl = System.Windows.Controls.UserControl;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.View
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for ViewMigrationToBim360.xaml
|
||||
/// </summary>
|
||||
public partial class ViewMigrationToBim360 : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// The view for <see cref="MigrationToBim360" />
|
||||
/// </summary>
|
||||
public ViewMigrationToBim360(MigrationToBim360 sampleContext)
|
||||
{
|
||||
DataContext = sampleContext;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update progress for uploading process.
|
||||
/// </summary>
|
||||
/// <param name="status">Text prompt to indicate the process</param>
|
||||
/// <param name="progress">The percentage progress, from 0 to 100</param>
|
||||
public void UpdateUploadingProgress(string status, int progress)
|
||||
{
|
||||
lbUploadStatus.Content = status;
|
||||
pbUploading.Value = progress;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update progress for reloading process
|
||||
/// </summary>
|
||||
/// <param name="status">Text prompt to indicate the process</param>
|
||||
/// <param name="progress">The percentage progress, from 0 to 100</param>
|
||||
public void UpdateReloadingProgress(string status, int progress)
|
||||
{
|
||||
lbReloadStatus.Content = status;
|
||||
pbReloading.Value = progress;
|
||||
}
|
||||
|
||||
private void OnBtnBrowseDirectory_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
using (var fbd = new FolderBrowserDialog())
|
||||
{
|
||||
var result = fbd.ShowDialog();
|
||||
if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
|
||||
tbLocalFolder.Text = fbd.SelectedPath;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBtnReveal_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!Directory.Exists(tbLocalFolder.Text))
|
||||
MessageBox.Show("Invalid folder path");
|
||||
else
|
||||
Process.Start(tbLocalFolder.Text);
|
||||
}
|
||||
|
||||
private void OnBtnConfig_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var ctx = (MigrationToBim360) DataContext;
|
||||
var viewConfiguration = new ViewInputMigrationInfo(ctx);
|
||||
viewConfiguration.Show();
|
||||
}
|
||||
|
||||
private void OnBtnRemoveRule_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var model = ((MigrationToBim360) DataContext).Model;
|
||||
if (lvRules.SelectedIndex >= 0 && lvRules.SelectedIndex < model.Rules.Count)
|
||||
model.Rules.RemoveAt(lvRules.SelectedIndex);
|
||||
}
|
||||
|
||||
private void OnBtnAddRule_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var model = ((MigrationToBim360) DataContext).Model;
|
||||
model.Rules.Add(new MigrationRule());
|
||||
}
|
||||
|
||||
private void OnBtnUpload_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (DataContext is MigrationToBim360 sampleContext)
|
||||
{
|
||||
if (sampleContext.Model.Rules.Count <= 0)
|
||||
{
|
||||
MessageBox.Show("Please add at least 1 migration rule.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Upload local models to target project
|
||||
var localDir = tbLocalFolder.Text;
|
||||
var sAccountId = sampleContext.Model.AccountGuid;
|
||||
var sProjectId = sampleContext.Model.ProjectGuid;
|
||||
|
||||
if (Guid.TryParse(sAccountId, out var accountId) && Guid.TryParse(sProjectId, out var projectId))
|
||||
CoroutineScheduler.StartCoroutine(sampleContext.Upload(localDir, accountId, projectId,
|
||||
sampleContext.Model.Rules));
|
||||
}
|
||||
}
|
||||
|
||||
private void OnBtnRefresh_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (DataContext is MigrationToBim360 sampleContext)
|
||||
{
|
||||
var localDir = tbLocalFolder.Text;
|
||||
var sProjectId = sampleContext.Model.ProjectGuid;
|
||||
|
||||
if (Guid.TryParse(sProjectId, out var projectId))
|
||||
CoroutineScheduler.StartCoroutine(sampleContext.ReloadLinks(localDir, projectId));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<Window x:Class="Revit.SDK.Samples.CloudAPISample.CS.View.ViewSamplePortal"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
ResizeMode="NoResize"
|
||||
d:DesignHeight="600" d:DesignWidth="800"
|
||||
Height="600" Width="800">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TabControl Name="ContentTabs" />
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// (C) Copyright 2003-2020 by Autodesk, Inc. All rights reserved.
|
||||
//
|
||||
// Permission to use, copy, modify, and distribute this software in
|
||||
// object code form for any purpose and without fee is hereby granted
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both that copyright notice and the limited warranty and
|
||||
// restricted rights notice below appear in all supporting
|
||||
// documentation.
|
||||
|
||||
//
|
||||
// AUTODESK PROVIDES THIS PROGRAM 'AS IS' AND WITH ALL ITS FAULTS.
|
||||
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
|
||||
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
|
||||
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
|
||||
// UNINTERRUPTED OR ERROR FREE.
|
||||
//
|
||||
// Use, duplication, or disclosure by the U.S. Government is subject to
|
||||
// restrictions set forth in FAR 52.227-19 (Commercial Computer
|
||||
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
|
||||
// (Rights in Technical Data and Computer Software), as applicable.
|
||||
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Autodesk.Revit.UI;
|
||||
|
||||
namespace Revit.SDK.Samples.CloudAPISample.CS.View
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for ViewSamplePortal.xaml
|
||||
/// </summary>
|
||||
public partial class ViewSamplePortal : Window
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor for ViewSamplePortal
|
||||
/// ViewSamplePortal is a child window aggregating all sample case with tabs
|
||||
/// </summary>
|
||||
public ViewSamplePortal(UIApplication app)
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add a sample tab
|
||||
/// </summary>
|
||||
/// <param name="title">The sample title</param>
|
||||
/// <param name="control">The root control for this sample</param>
|
||||
public void AddTab(string title, UserControl control)
|
||||
{
|
||||
var item = new TabItem {Header = title};
|
||||
ContentTabs.Items.Add(item);
|
||||
item.Content = control;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user