-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
22 changed files
with
556 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
using Ara3D.Utils; | ||
using Microsoft.Extensions.DependencyInjection; | ||
using Speckle.Importers.Ifc; | ||
using Speckle.Importers.Ifc.Ara3D.IfcParser; | ||
using Speckle.Importers.Ifc.Converters; | ||
using Speckle.Importers.Ifc.Tester2; | ||
using Speckle.Importers.Ifc.Types; | ||
using Speckle.Objects.Geometry; | ||
using Speckle.Sdk.Host; | ||
using Speckle.Sdk.Models; | ||
|
||
// Settings | ||
var filePath = new FilePath(@"C:\Users\Jedd\Desktop\231110AC11-Institute-Var-2-IFC.ifc"); | ||
const string PROJECT_ID = "f3a42bdf24"; | ||
|
||
// Setup | ||
TypeLoader.Initialize(typeof(Base).Assembly, typeof(Point).Assembly); | ||
|
||
var serviceCollection = new ServiceCollection(); | ||
serviceCollection.AddIFCImporter(); | ||
serviceCollection.AddSingleton<Sender>(); | ||
var serviceProvider = serviceCollection.BuildServiceProvider(); | ||
|
||
// Convert IFC to Speckle Objects | ||
var ifcFactory = serviceProvider.GetRequiredService<IIfcFactory>(); | ||
var model = ifcFactory.Open(filePath); | ||
var graph = IfcGraph.Load(new FilePath(filePath)); | ||
var converter = serviceProvider.GetRequiredService<IGraphConverter>(); | ||
var b = converter.Convert(model, graph); | ||
|
||
//Send Speckle Objects to server | ||
var sender = serviceProvider.GetRequiredService<Sender>(); | ||
await sender.Send(b, PROJECT_ID); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
using Speckle.Sdk.Api; | ||
using Speckle.Sdk.Api.GraphQL.Inputs; | ||
using Speckle.Sdk.Api.GraphQL.Models; | ||
using Speckle.Sdk.Common; | ||
using Speckle.Sdk.Credentials; | ||
using Speckle.Sdk.Models; | ||
|
||
namespace Speckle.Importers.Ifc.Tester2; | ||
|
||
public class Sender(IClientFactory clientFactory, IAccountManager accountManager, IOperations operations) | ||
{ | ||
public const string MODEL_NAME = "IFC Import"; | ||
|
||
public async Task<string> Send(Base rootObject, string projectId) | ||
{ | ||
var account = accountManager.GetDefaultAccount().NotNull(); | ||
using var client = clientFactory.Create(account); | ||
|
||
var res = await operations.Send2(new(account.serverInfo.url), projectId, account.token, rootObject); | ||
|
||
var t = await GetOrCreateIfcModel(client, projectId); | ||
|
||
CreateVersionInput input = new(res.RootId, t.id, projectId); | ||
return await client.Version.Create(input); | ||
} | ||
|
||
public async Task<Model> GetOrCreateIfcModel(Client client, string projectId) | ||
{ | ||
ProjectModelsFilter filter = new(null, null, null, null, MODEL_NAME, null); | ||
|
||
var existing = await client.Model.GetModels(projectId, 1, modelsFilter: filter); | ||
if (existing.items.Count != 0) | ||
{ | ||
return existing.items[0]; | ||
} | ||
|
||
CreateModelInput input = new(MODEL_NAME, null, projectId); | ||
return await client.Model.Create(input); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
Importers/Ifc/Speckle.Importers.Ifc.Tester2/Speckle.Importers.Ifc.Tester2.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<OutputType>Exe</OutputType> | ||
<TargetFramework>net8.0</TargetFramework> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\Speckle.Importers.Ifc\Speckle.Importers.Ifc.csproj" /> | ||
</ItemGroup> | ||
</Project> |
307 changes: 307 additions & 0 deletions
307
Importers/Ifc/Speckle.Importers.Ifc.Tester2/packages.lock.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,307 @@ | ||
{ | ||
"version": 2, | ||
"dependencies": { | ||
"net8.0": { | ||
"Microsoft.NETFramework.ReferenceAssemblies": { | ||
"type": "Direct", | ||
"requested": "[1.0.3, )", | ||
"resolved": "1.0.3", | ||
"contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", | ||
"dependencies": { | ||
"Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" | ||
} | ||
}, | ||
"Microsoft.SourceLink.GitHub": { | ||
"type": "Direct", | ||
"requested": "[8.0.0, )", | ||
"resolved": "8.0.0", | ||
"contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", | ||
"dependencies": { | ||
"Microsoft.Build.Tasks.Git": "8.0.0", | ||
"Microsoft.SourceLink.Common": "8.0.0" | ||
} | ||
}, | ||
"PolySharp": { | ||
"type": "Direct", | ||
"requested": "[1.14.1, )", | ||
"resolved": "1.14.1", | ||
"contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" | ||
}, | ||
"Speckle.InterfaceGenerator": { | ||
"type": "Direct", | ||
"requested": "[0.9.6, )", | ||
"resolved": "0.9.6", | ||
"contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" | ||
}, | ||
"GraphQL.Client": { | ||
"type": "Transitive", | ||
"resolved": "6.0.0", | ||
"contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", | ||
"dependencies": { | ||
"GraphQL.Client.Abstractions": "6.0.0", | ||
"GraphQL.Client.Abstractions.Websocket": "6.0.0", | ||
"System.Reactive": "5.0.0" | ||
} | ||
}, | ||
"GraphQL.Client.Abstractions": { | ||
"type": "Transitive", | ||
"resolved": "6.0.0", | ||
"contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", | ||
"dependencies": { | ||
"GraphQL.Primitives": "6.0.0" | ||
} | ||
}, | ||
"GraphQL.Client.Abstractions.Websocket": { | ||
"type": "Transitive", | ||
"resolved": "6.0.0", | ||
"contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", | ||
"dependencies": { | ||
"GraphQL.Client.Abstractions": "6.0.0" | ||
} | ||
}, | ||
"GraphQL.Primitives": { | ||
"type": "Transitive", | ||
"resolved": "6.0.0", | ||
"contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" | ||
}, | ||
"Microsoft.Build.Tasks.Git": { | ||
"type": "Transitive", | ||
"resolved": "8.0.0", | ||
"contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" | ||
}, | ||
"Microsoft.CSharp": { | ||
"type": "Transitive", | ||
"resolved": "4.7.0", | ||
"contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" | ||
}, | ||
"Microsoft.Data.Sqlite": { | ||
"type": "Transitive", | ||
"resolved": "7.0.5", | ||
"contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", | ||
"dependencies": { | ||
"Microsoft.Data.Sqlite.Core": "7.0.5", | ||
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" | ||
} | ||
}, | ||
"Microsoft.Data.Sqlite.Core": { | ||
"type": "Transitive", | ||
"resolved": "7.0.5", | ||
"contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", | ||
"dependencies": { | ||
"SQLitePCLRaw.core": "2.1.4" | ||
} | ||
}, | ||
"Microsoft.Extensions.Configuration": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", | ||
"dependencies": { | ||
"Microsoft.Extensions.Configuration.Abstractions": "2.2.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.Configuration.Abstractions": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", | ||
"dependencies": { | ||
"Microsoft.Extensions.Primitives": "2.2.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.Configuration.Binder": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", | ||
"dependencies": { | ||
"Microsoft.Extensions.Configuration": "2.2.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" | ||
}, | ||
"Microsoft.Extensions.Options": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", | ||
"dependencies": { | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", | ||
"Microsoft.Extensions.Primitives": "2.2.0", | ||
"System.ComponentModel.Annotations": "4.5.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.Primitives": { | ||
"type": "Transitive", | ||
"resolved": "2.2.0", | ||
"contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", | ||
"dependencies": { | ||
"System.Memory": "4.5.1", | ||
"System.Runtime.CompilerServices.Unsafe": "4.5.1" | ||
} | ||
}, | ||
"Microsoft.NETFramework.ReferenceAssemblies.net461": { | ||
"type": "Transitive", | ||
"resolved": "1.0.3", | ||
"contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" | ||
}, | ||
"Microsoft.SourceLink.Common": { | ||
"type": "Transitive", | ||
"resolved": "8.0.0", | ||
"contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" | ||
}, | ||
"Speckle.DoubleNumerics": { | ||
"type": "Transitive", | ||
"resolved": "4.0.1", | ||
"contentHash": "MzEQ1Im0zTja+tEsdRIk/WlPiKqb22NmTOJcR1ZKm/mz46pezyyID3/wRz6vJUELMpSLnG7LhsxBL+nxbr7V0w==" | ||
}, | ||
"Speckle.Newtonsoft.Json": { | ||
"type": "Transitive", | ||
"resolved": "13.0.2", | ||
"contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" | ||
}, | ||
"SQLitePCLRaw.bundle_e_sqlite3": { | ||
"type": "Transitive", | ||
"resolved": "2.1.4", | ||
"contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", | ||
"dependencies": { | ||
"SQLitePCLRaw.lib.e_sqlite3": "2.1.4", | ||
"SQLitePCLRaw.provider.e_sqlite3": "2.1.4" | ||
} | ||
}, | ||
"SQLitePCLRaw.core": { | ||
"type": "Transitive", | ||
"resolved": "2.1.4", | ||
"contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", | ||
"dependencies": { | ||
"System.Memory": "4.5.3" | ||
} | ||
}, | ||
"SQLitePCLRaw.lib.e_sqlite3": { | ||
"type": "Transitive", | ||
"resolved": "2.1.4", | ||
"contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" | ||
}, | ||
"SQLitePCLRaw.provider.e_sqlite3": { | ||
"type": "Transitive", | ||
"resolved": "2.1.4", | ||
"contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", | ||
"dependencies": { | ||
"SQLitePCLRaw.core": "2.1.4" | ||
} | ||
}, | ||
"System.ComponentModel.Annotations": { | ||
"type": "Transitive", | ||
"resolved": "4.5.0", | ||
"contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" | ||
}, | ||
"System.Memory": { | ||
"type": "Transitive", | ||
"resolved": "4.5.5", | ||
"contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" | ||
}, | ||
"System.Reactive": { | ||
"type": "Transitive", | ||
"resolved": "5.0.0", | ||
"contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" | ||
}, | ||
"System.Runtime.CompilerServices.Unsafe": { | ||
"type": "Transitive", | ||
"resolved": "4.5.1", | ||
"contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" | ||
}, | ||
"speckle.importers.ifc": { | ||
"type": "Project", | ||
"dependencies": { | ||
"Ara3D.Buffers": "[1.4.5, )", | ||
"Ara3D.Logging": "[1.4.5, )", | ||
"Ara3D.Utils": "[1.4.5, )", | ||
"Microsoft.Extensions.DependencyInjection": "[2.2.0, )", | ||
"Speckle.Objects": "[3.1.0-dev.234, )", | ||
"Speckle.Sdk": "[3.1.0-dev.234, )" | ||
} | ||
}, | ||
"Ara3D.Buffers": { | ||
"type": "CentralTransitive", | ||
"requested": "[1.4.5, )", | ||
"resolved": "1.4.5", | ||
"contentHash": "SKcQqgtXukyHTlTKFPCaUW4spSkue3XfBU/GmoA7KhH6H995v6TbJxtqjs0EfSgnXEkajL8U7X1NqktScRozXw==", | ||
"dependencies": { | ||
"System.Memory": "4.5.5" | ||
} | ||
}, | ||
"Ara3D.Logging": { | ||
"type": "CentralTransitive", | ||
"requested": "[1.4.5, )", | ||
"resolved": "1.4.5", | ||
"contentHash": "7HPCe5Dq21JoOBF1iclk9H37XFCoB2ZzCPqTMNgdg4PWFvuRsofNbiuMdiE/HKgMHCVhy1C5opB2KwDKcO7Axw==", | ||
"dependencies": { | ||
"Ara3D.Utils": "1.4.5" | ||
} | ||
}, | ||
"Ara3D.Utils": { | ||
"type": "CentralTransitive", | ||
"requested": "[1.4.5, )", | ||
"resolved": "1.4.5", | ||
"contentHash": "yba/E7PpbWP0+RDp+KbKw/vBXnXBSIheScdpVKuDnr8ytRg8pZ2Jd6nwKES+G0FcVEB9PeOVmEW7SGrFvAwRCg==" | ||
}, | ||
"Microsoft.Extensions.DependencyInjection": { | ||
"type": "CentralTransitive", | ||
"requested": "[2.2.0, )", | ||
"resolved": "2.2.0", | ||
"contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", | ||
"dependencies": { | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.Logging": { | ||
"type": "CentralTransitive", | ||
"requested": "[2.2.0, )", | ||
"resolved": "2.2.0", | ||
"contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", | ||
"dependencies": { | ||
"Microsoft.Extensions.Configuration.Binder": "2.2.0", | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", | ||
"Microsoft.Extensions.Logging.Abstractions": "2.2.0", | ||
"Microsoft.Extensions.Options": "2.2.0" | ||
} | ||
}, | ||
"Microsoft.Extensions.Logging.Abstractions": { | ||
"type": "CentralTransitive", | ||
"requested": "[2.2.0, )", | ||
"resolved": "2.2.0", | ||
"contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" | ||
}, | ||
"Speckle.Objects": { | ||
"type": "CentralTransitive", | ||
"requested": "[3.1.0-dev.234, )", | ||
"resolved": "3.1.0-dev.234", | ||
"contentHash": "vM/aRt+t3yB6JOk+2UdgD40yLiZRFlc5+bUf2dQLbgN4AciSMge3vU6cYnfeV/gMPnQM3XR3Lv9UP/VaLYDwkA==", | ||
"dependencies": { | ||
"Speckle.Sdk": "3.1.0-dev.234" | ||
} | ||
}, | ||
"Speckle.Sdk": { | ||
"type": "CentralTransitive", | ||
"requested": "[3.1.0-dev.234, )", | ||
"resolved": "3.1.0-dev.234", | ||
"contentHash": "9MRVpu0bFWeAWE5BFqc+W3eDFmRJPe46TcSFguYcBGebJzdWPgwqyZt4O0vNBXOuM3NSOz8UpZXe1H0vjX4jRg==", | ||
"dependencies": { | ||
"GraphQL.Client": "6.0.0", | ||
"Microsoft.CSharp": "4.7.0", | ||
"Microsoft.Data.Sqlite": "[7.0.5]", | ||
"Microsoft.Extensions.DependencyInjection.Abstractions": "[2.2.0]", | ||
"Microsoft.Extensions.Logging": "[2.2.0]", | ||
"Speckle.DoubleNumerics": "4.0.1", | ||
"Speckle.Newtonsoft.Json": "13.0.2", | ||
"Speckle.Sdk.Dependencies": "3.1.0-dev.234" | ||
} | ||
}, | ||
"Speckle.Sdk.Dependencies": { | ||
"type": "CentralTransitive", | ||
"requested": "[3.1.0-dev.234, )", | ||
"resolved": "3.1.0-dev.234", | ||
"contentHash": "wx++uIHVTiFEiAYoqhsTfN3yJOBiaV2doXP4pttPC52eWwvhOjThKrcRW/Lx2uWlUC8HcyBA3mBV9GaIl7n+1A==" | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.